Halo, guys! Kali ini kita akan belajar mengenai basic testing pada pengembangan perangkat lunak. Tahukah temen-temen, software testing merupakan sebuah metode untuk memeriksa apakah aplikasi sudah sesuai dengan persyaratan yang diharapkan atau belum. Tak hanya itu, software testing juga dilakukan untuk memastikan bahwa produk bebas dari cacat. Metode tersebut melibatkan proses pemeriksaan komponen dalam sistem software menggunakan alat manual atau otomatis. Meskipun istilah ini sudah lama digunakan, beberapa developer lebih suka menganggap software testing sebagai white hat dan black hat testing.
Tujuan dari software testing sendiri adalah supaya bisa mengidentifikasi kesalahan atau fitur yang tidak sesuai dengan persyaratan yang sebenarnya. Jika ada bug atau kesalahan dalam software yang tidak teridentifikasi, kita harus memulai kembali ke proses development. Tak hanya itu, juga mengalami kerugian sumber daya dan keuangan karena perilisan software yang harus diundur. Perangkat lunak yang diuji dengan benar dapat memastikan keandalan, keamanan, dan kualitas yang selanjutnya bisa menghasilkan penghematan waktu, efektivitas biaya, dan kepuasan user.
1. Unit Test
Unit testing dilakukan untuk menguji setiap unit atau komponen perangkat lunak secara terpisah. Unit dapat berupa fungsi, metode, atau modul kecil dalam perangkat lunak. Tujuan utama unit testing adalah untuk memastikan bahwa setiap unit berfungsi dengan benar secara individual. Biasanya, pengujian ini dilakukan oleh pengembang perangkat lunak.
2. Integration Test
Integration testing dilakukan untuk menguji interaksi antara komponen-komponen yang terhubung atau saling bergantung dalam sistem. Pengujian ini bertujuan untuk mengidentifikasi masalah yang mungkin muncul saat komponen-komponen tersebut bekerja bersama. Fokusnya adalah pada kesesuaian antarmuka dan aliran data antar komponen.
3. System Testing
System testing dilakukan untuk menguji sistem secara keseluruhan, setelah komponen-komponen diintegrasikan. Pengujian ini bertujuan untuk memverifikasi bahwa sistem berfungsi sebagaimana yang diharapkan dan memenuhi persyaratan yang ditetapkan. Seluruh fungsionalitas sistem diuji dengan menggunakan skenario pengujian yang mencakup situasi penggunaan nyata.
4. Acceptance Testing
Acceptance testing dilakukan oleh pengguna atau pihak yang berkepentingan untuk memverifikasi apakah sistem memenuhi persyaratan bisnis dan siap digunakan. Pengujian ini bertujuan untuk memastikan bahwa sistem telah memenuhi ekspektasi pengguna dan memberikan nilai yang diharapkan. Terdapat dua jenis acceptance testing: User Acceptance Testing (UAT) yang melibatkan pengguna akhir, dan Business Acceptance Testing (BAT) yang melibatkan pihak bisnis.
5. Performance Testing
Performance testing dilakukan untuk menguji kinerja sistem dalam kondisi beban kerja yang nyata atau yang diantisipasi. Pengujian ini bertujuan untuk mengevaluasi kecepatan, skalabilitas, dan responsivitas sistem dalam menghadapi situasi beban tertentu. Contoh pengujian kinerja termasuk load testing, stress testing, dan endurance testing.
6. Security Testing
Security testing dilakukan untuk menguji keamanan sistem dan mengidentifikasi celah keamanan yang dapat dimanfaatkan oleh pihak yang tidak berwenang. Pengujian ini melibatkan pengujian kerentanan, enkripsi, otentikasi, dan pengendalian akses sistem. Tujuan utamanya adalah untuk melindungi data sensitif dan menjaga keamanan sistem dari ancaman.
7. Regression Testing
Regression testing dilakukan setelah perubahan atau pembaruan pada sistem untuk memastikan bahwa perubahan tersebut tidak mempengaruhi fungsionalitas yang sudah ada sebelumnya. Pengujian ini bertujuan untuk mengidentifikasi potensi "regresi" atau kemunduran dalam sistem akibat perubahan yang dilakukan.
1. Black Box Testing
Metode Black Box Testing melibatkan pengujian sistem tanpa memperhatikan struktur internal atau logika implementasinya. Pengujian dilakukan berdasarkan input dan output yang diharapkan, tanpa mengetahui detail bagaimana sistem mencapai output tersebut. Penguji memperlakukan sistem sebagai kotak hitam yang mengambil input dan menghasilkan output yang diuji untuk kesesuaian. Keuntungannya yaitu tidak memerlukan pengetahuan tentang struktur internal sistem dan dapat dilakukan oleh orang yang tidak terlalu terbiasa dengan kode sumber. Sementara keterbatasannya yaitu tidak mengungkapkan kesalahan atau cacat dalam struktur internal sistem dan cakupan pengujian mungkin terbatas jika tidak ada akses ke kode sumber.
2. White Box Testing
Metode White Box Testing melibatkan pemahaman dan pengujian struktur internal sistem, termasuk aliran program, cabang kondisional, dan logika implementasinya. Penguji menggunakan pengetahuan tentang kode sumber untuk merancang test case yang efektif. Keuntungannya yaitu dapat mengungkapkan kesalahan atau cacat dalam struktur internal sistem dan memungkinkan cakupan pengujian yang lebih detail dan mendalam. Sementara keterbatasannya yaitu membutuhkan pengetahuan tentang bahasa pemrograman dan struktur internal sistem, waktu dan usaha yang lebih besar untuk merancang dan melaksanakan test case.
3. Gray Box Testing
Metode Grey Box Testing merupakan kombinasi dari Black Box Testing dan White Box Testing. Penguji memiliki sebagian pengetahuan tentang struktur internal sistem dan menggunakan pengetahuan tersebut untuk merancang test case yang lebih efisien. Meskipun tidak mengetahui semua detail implementasi, penguji memiliki pemahaman yang lebih baik daripada Black Box Testing. Keuntungannya yaitu memadukan keuntungan dari Black Box Testing dan White Box Testing dan memungkinkan pengujian yang lebih efisien dengan pengetahuan terbatas tentang struktur internal sistem. Sementara keterbatasannya yaitu masih memerlukan beberapa pengetahuan tentang struktur internal sistem cakupan pengujian mungkin terbatas jika pengetahuan yang tersedia terbatas.
Pertama menentukan perencanaan meliputi menentukan lingkup test, tujuan, dan rencana pengujian. Selanjutnya membuat Desain Test Case meliputi membuat skenario pengujian yang mencakup langkah-langkah yang harus dilakukan, data yang digunakan, dan hasil yang diharapkan. Selanjutnya melakukan Eksekusi meliputi menjalankan test case dan mencatat hasilnya. Selanjutnya melakukan Pemantauan meliputi memantau proses testing untuk mengidentifikasi masalah dan mencatat temuan. Terakhir, melakukan Pelaporan meliputi membuat laporan hasil pengujian yang mencakup temuan, masalah yang ditemukan, dan rekomendasi perbaikan.