Hola!!!
Lagi pada ngapain nih? Semoga selalu sehat, ya ☺
Untuk mengisi waktu kosong selama pandemi, karena kalau mau nge-mall harus mikir 2x bahkan 1000x, yuk pilih cara yang lebih ntaps. Apa tuh? Belajar! *uwadu*
Tapi beneran deh. Karena K-Drama Start Up lagi booming akhir-akhir ini, gimana kalau kita cari tahu tentang dunia pengembangan aplikasi. Well, meskipun di filnya engga cuma tentang pengembangan aplikasi aja, tapi sebagai tech enthusiast masa kalian engga penasaran sih?
Jadi mari kita berandai-andai menjadi tim pengembang, kalau di drama mungkin jadi Si Trio Samsan Tech. Kita sudah mengembangkan sebuah aplikasi sesuai dengan kebutuhan yang telah ditetapkan di awal. Semuanya udah dipenuhi mulai dari kebutuhan fungsional sampai non-fungsionalnya. Apakah aplikasi tersebut sudah siap luncur? Tidak semudah itu, Fergusso. Harus ada tahap testing. Meskipun faktanya yaaa kalau kepepet luncurin aja sekalian testing hahaha 😂 Tapi akan lebih baik lagi kalau kita testing dulu yaaa, kangkawan-ku.
Tujuan testing itu bukan untuk membuat aplikasi kita free of errors. Karena itu bakal impossible. Tapi untuk melihat apa yang aplikasi seharusnya dapat lakukan dan yang actually dilakukan. Dengan adanya testing kita juga dapat meng-uncover error sebanyak mungkin. Itu artinya mengurangi kemungkinan error di kemudian hari yang 'oh iya ya... engga kepikiran.'
Ada banyak cara testing aplikasi nih. Ada unit testing, integration testing, system testing, dan acceptance testing.
Unit Testing
Unit testing adalah testing yang berfokus pada single unit atau class. Ada dua pendekatan dalam testing ini. Black-box testing yang sangat umum karena setiap class merepresentasikan encapsulated object. Black-box ini dapat dibuat dari CRC-cards, state machine, atau kontrak yang berasosiasi dengan class tersebut. Bukan dari interpretasi programmer. Pendekatan yang kedua adalah white-box testing yang berdasarkan spesifikasi method yang berasosiasi dengan setiap class.
Terus kapan sih pakai black-box atau white-box? Gunakan black-box kalau testingnya normal atau standar aja. Karena tester akan fokus pada apakah unit tersebut memenuhi kebutuhan di SRS. Gunakan white-box apabila aplikasinya sangat kompleks sehingga harus memeriksa setiap method dalam class di source code. Lebih pusing sih, tapi hasilnya bakal ngelihat kemungkinan yang engga terlihat di black-box.
Integration Testing
Integration testing memastikan apakah himpunan class dapat bekerja bersamaan tanpa adanya error. Testing ini juga memastikan interface dan link antar bagian di aplikasi sudah bekerja secara benar. Tahap ini dilakukan jika unit testing telah passed dan sekarang saatnya melihat class dalam satu kesatuan.
Ada empat pendekatan nih yang dapat dilakukan. Yang pertama ada user interface testing, yang dapat dilakukan untuk noraml testing dan dilakukan dengan menelusurui setiap menu di interface. Yang kedua adalah use scenario testing, ini dilakukan kalau user interface merupakan hal yang penting. Dilakukan dengan cara menyisir usecase scenario dan biasanya merupakan kombinasi user interface testing. Kemudian ada data flow testing, testing yang ini sudah melihat ke DFD-nya. Ini dilakukan untuk aplikasi yang melakukan data processing. Yang terakhir ada system interface testing, sama dengan sebelumnya yang melihat DFD. Ini dilakukan jika aplikasi melakukan pertukaran data antar sistem karena transfer data antar sistem biasanya otomatis dan tidak dimonitor secara langsung sehingga harus benar-benar akurat.
System Testing
System testing sama seperti integration testing tapi dengan scope yang lebih luas. Kalau integration testing fokus kepada apakah class dapat bekerja bersamaan tanpa error, kalau system testing ingin memastikan apakah aplikasi dapat memenuhi kebutuhan fungsional dan non-fungsional.
Ada lima pendekatan untuk system testing. Yang pertama adalah requirement testing, yang dari namanya udah jelas lah ya ini untuk ngetes semua kebutuhan yang sudah ditetapkan di awal itu dapat terpenuhi. Yang kedua ada usability testing, yang akan melibatkan interface design dan skenario penggunaan. Ini digunakan ketika kebutuhan interface sangattt penting. Kemudian ada security testing yang melihat desain infrastruktur dari sistem. Yang keempat ada performance testing yang dilakukan untuk menguji ketahanan dan performa sistem dalam keadaan khusus yang sudah ditetapkan. Misalnya saat terjadi transaksi luar biasa banyak dalam sehari. Terakhir ada documentation testing yang dilakukan oleh analis dengan memeriksa setiap item dalam setiap halaman dalam dokumentasi untuk memastikan item tersebut bekerja secara benar. Ini bisa diambil dari prosedur aplikasi atau tutorial yang sudah didokumentasikan.
Acceptance Testing
Acceptance testing dilakukan oleh user dengan dukungan dari tim pengembang. Tujuannya adalah untuk memastikan sistem aplikasi sudah komplit, memenuhi kebutuhan bisnis dan dapat diterima oleh user. Ada dua pendekatan yang bisa digunakan. Yang pertama adalah alha testing dimana user menggunakan data dummy. Kemudian ada beta testing dimana user menggunakan data asli tapi dengan pengawasan yang teliti.
Nah, jadi udah ada sedikit pencerahan dong ya tentang jenis-jenis testing di dunia pengembangan aplikasi ini. Testing ini penting dilakukan untuk memastikan kualitasi aplikasi yang sudah dikembangkan. Engga mau kan barang yang dibikin asal-asalan? Sebenarnya, kalau ingin kualitas yang bagus keempat jenis testing ini harus dilakukan. Tapi harus dilihat lagi dari kebutuhan organisasi atau tim. Dilihat juga bagian apa yang paling dibutuhkan dari aplikasi itu sendiri.
Kamu tim han ji pyeong atau nam dosan? Kalau aku han ji pyeong sih. ❤
BalasHapus