1. Manual
AutoMation Terbagi Menjadi dua Functional testing dan Non Functional Testing
1. Functional Testing
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.
Functional test = test pada environment langsung contoh develop mobile app jadi test harus
app mobile juga minimal simulasi
Buat Tesnya Lolos(HIJAU) : Meluluskan sesuai dengan comment test, Contoh Dibawah
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
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.
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
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?
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
Untuk Bedanya Proxy dan Vpn bisa cek link ini = https://www.dewaweb.com/blog/perbedaan-proxy-
dan-vpn/
Msalah Tipe data Date Timestamp dan Timezone??Solusinya gunakan currentmilinutes, Kalo
dijava yaitu System.currentmilles();
Aplication Anyway
1. Scangear + coreldraw = to replace words on paper That have wrote
2. Visual pardigm untuk membuat(flow) contohnya seperti usecase diagram