Anda di halaman 1dari 10

TESTING

Test Terbagi Menjadi Dua: 2. Automation

1. Manual

AutoMation Terbagi Menjadi dua Functional testing dan Non Functional Testing

1. Functional Testing

Framework Untuk Unit Testing


Ringkasan Functional Testing

White box lebih ke dalam programnya :

 Unit test = itu test pada unit seperti obj, function, dan lain lain
 Integration test = test integrasi, bagaimana aplikasi kita berintegrasi dengan unit lain seperti
SQL , broker dan lain lain.(Biasanya sql dan lain2 diganti be Mockito server)
 End to end Test : End to end test tidak butuh mock.

blacbox lebih kepada functional app :

 Functional test = test pada environment langsung contoh develop mobile app jadi test harus
app mobile juga minimal simulasi

2. Non Functional Testing


Application Perfomance Testing

STRATEGY AUTOMATION TESTING/Flownya Ini Example Testing Automationuseselenium


TDD/Sebelum Melakukan Create yang pertama haruslah Testing

TDD(Test Driven Development)??


Menulis Tes Gagal(RED) : Menulis Kode tanpa memiliki fungsi/fitur, Contoh dibawah

Fungsi calculateCircleArea(){} tidak ada

Buat Tesnya Lolos(HIJAU) : Meluluskan sesuai dengan comment test, Contoh Dibawah

Refactor : Membersihkan Kode Yang tidak dipakai

Skenario AAA Testing on TDD?


Arrange  adalah bagian di mana kita menyiapkan objek dan pengaturan yang akan diuji.

Act  adalah aksi yang ingin dijalankan. Di sini kita memanggil metode yang akan diuji.

Assert adalah di mana kita memverifikasi nilai yang diekspektasikan dengan hasil pemanggilan metode
ketika Act.

Test Double?

kode testing yang bagus adalah cepat dan independent(Local). Dan juga Hanya fungsi yang
diperlukan saja yang ditest seperti viewmodel, repository tidak , Tapi Bagaimana Viewmodel
Bergantung pada repo. Solusinya test double using mock/fake repository

Application Test Double??Mocking, Stubbing, Fake, Spy, Dummy.

 Fake
Merupakan object tiruan yang memiliki implementasi dengan output mirip dengan object
aslinya, tetapi lebih sederhana. Sebagai contoh jika object aslinya kita menggunakan database,
di sini kita hanya menggunakan ArrayList/HashMap/in memory database untuk menyimpan
data. Ini merupakan satu-satunya metode yang tidak memerlukan mocking framework.
 Dummy
Merupakan object yang hanya dibutuhkan sebagai parameter, tetapi tidak digunakan. Biasanya
dibutuhkan untuk memenuhi kebutuhan parameter saja. Jadi object tersebut bisa berisi
sembarang data atau hanya data kosong saja.
 Mock
Mock merupakan object tiruan yang memiliki perilaku (behaviour) seperti object aslinya serta
memiliki ekspektasi akan hasil interaksinya. Pengujian dengan mock akan gagal jika
interaksinya tidak sesuai dengan spesifikasi yang sudah ditentukan.
 Stub
Stub merupakan object tiruan yang memiliki perilaku (behaviour) seperti object aslinya, tetapi
tidak memiliki ekspektasi akan hasil interaksinya. Dengan menggunakan teknik ini, perilaku
dapat diatur guna memenuhi skenario pengujian. Misal ketika mengambil data dari repository,
kita bisa mengatur hasilnya apakah berhasil atau gagal. Pada Mockito kita bisa
menggunakan when(...).thenReturn(...).
 Spy
Metode ini tidak mengubah implementasi fungsinya sehingga behavior fungsi tersebut masih
sama seperti aslinya. Ia hanya merupakan wrapper dari object aslinya, namun terdapat
beberapa informasi tambahan yang dapat diketahui. Layaknya mata-mata, Anda dapat
mengetahui apakah suatu fungsi sudah dipanggil atau tidak. Selain itu, Anda juga dapat
mengetahui berapa kali suatu fungsi dipanggil.

Testing postman End to end test?


//Body tests
pm.test('response body should an object', () => {
const responseJson = pm.response.json(); // from response request send PostMan
pm.expect(responseJson).to.be.an('object');
//Testing Request
pm.sendRequest(`http://localhost:5000/notes/${noteId}`, (error, response) => {
const responseJson = response.json();
const { data: { note } } = responseJson;
}
});
//Result Tests

OTHERS
Pemakaian Logging???

Di Javascript Sudah Tersedia Logging yaittu console.log tapi susah untuk costumize dan transport
lognya ke file, library yang bagus adalah wingston
Ini Salah Implemntasi Wingston Pemindahan Log StackTrace/Exeption Pada file exception.log

Note : ingat biasanya Logging ini sangat diperlukan banget dalam melihat informasi apa pada
application kita serverside dan biasanya di serverside tidak bermain terminal dan harus disimpan
messeganya lognya diantara di database atau mesaage broker/redis

Alur Request In VPS(On Reverse Proxy NGINX)

If tidak allow portnya


client tidak akan bisa
akses portnya

Request Rules Conifguration NodeJS/Java


NGINX
Client UFW
Webserver Webserver

Note : kenapa Webserver nya ada dua karena Webserver dari Nginx Mempunyai banyak service
seperti Configuration Https(443)/SSL/TLS, Load Balancer, Traiffic Monitor
Apa itu Reverse Proxy HTTP?

HTTP(Reverse Proxy) = protocol(http)://IP Proxy(123.0.2.1):Port(8080)

Biasanya Digunakan Untuk Membuka Application Yang harus melewati IP Proxy.

Prinsip Kerja Reverse Proxy di Server = Untuk Mengakses APP Web yang dibatasi oleh Firewall
Seperti Contoh gambar diatas/Sebagai Reverse Proxy(Membalikan Proxy to Acces APP Webserver
Nodejs)

Protocol = Adalah Application Layer Contoh FTP/Http : Biasanya tersedia default portnya

Port = Identitas Apapun Seperti App Website Biasanya Diamankan Oleh firewall

Connection terdapat 3 = Nirkabel(Kabel), Wireless(wifi, bluetooth), tunnelling(Forward Reverse)

Untuk Bedanya Proxy dan Vpn bisa cek link ini = https://www.dewaweb.com/blog/perbedaan-proxy-
dan-vpn/

DNS = Untuk Memfilter/Membatasi Tiap User Request Situs porno/Yang lain.

Msalah Tipe data Date Timestamp dan Timezone??Solusinya gunakan currentmilinutes, Kalo
dijava yaitu System.currentmilles();

Masalah pada Load data XLSX Using Bahasa Pemograman Apapun?


Masalah jika menggunakan XLSX akan load filenya karena bentuknya archieve file, disarankan saveAs
CSV karena bentuknya text file dan pada proses loadnya Stream perbaris pada Bahasa Program
apapun.

Application that use Deveoper Backend

1. Version controller = gihub,gitlab


2. Search engine = elastic search
3. Message broker = kafka
4. Virtualisasi = docker
5. Observation Server = Newrelic

Aplication Anyway
1. Scangear + coreldraw = to replace words on paper That have wrote
2. Visual pardigm untuk membuat(flow) contohnya seperti usecase diagram

Anda mungkin juga menyukai