Untuk membuat sebuah software atau perangkat lunak yang berkualitas dan memenuhi kebutuhan pengguna, sebuah perusahaan atau pembuat software harus melakukan yang namanya pengujian atau testing sebelum produk di luncurkan secara bebas atau komersial ke pasar/market.  Testing sendiri sangat bermanfaat untuk mendeteksi adanya bugs atau error, entah itu bugs dalam kode maupun dalam flow bisnis.

Pengertian, Perbedaan Black Box, White Box & Grey Box Testing

Black Box Testing


Tes “Kotak Hitam atau Black Box” hanya terdiri dari meninjau fungsi fungsi aplikasi, yaitu jika melakukan apa yang seharusnya, tidak peduli bagaimana melakukannya. Struktur dan fungsi internalnya tidak dipelajari. Penguji dengan demikian perlu mengetahui apa peran sistem itu, dan fungsinya, tetapi tidak tahu mekanisme internalnya. Dia memiliki profil "pengguna".

Jadi metode ini bertujuan untuk memeriksa, setelah tahap akhir proyek, apakah perangkat lunak atau aplikasi berfungsi dengan baik, dan melayani penggunanya secara efisien. Biasanya, penguji mencari fungsi yang hilang atau salah; antarmuka, kinerja, inisialisasi program dan kesalahan keluar; struktur data atau kesalahan akses basis data eksternal.

Untuk ini, mereka menyiapkan scenarii berdasarkan jalur pengguna yang berbeda yang dapat diikuti pada sistem yang diuji. Semua fungsi harus diperhitungkan, agar semuanya telah diuji pada akhir operasi. Setiap tes mengikuti skenario, dan memeriksa, untuk setiap fungsi, jika input yang valid diterima, yang tidak valid ditolak, dan tentu saja, setiap waktu, jika output atau hasil yang diharapkan memang diperoleh. Itu adalah metode “coba-coba”.

Jadi untuk melakukan Black Box Testing seseorang tidak harus memiliki kemampuan koding atau TDD coding, Test ini bisa dilakukan oleh di Produk, tim marketing bahkan user sebagai quisionernya.

Manfaat dari metode Black Box ini adalah sebagai berikut:
Kesederhanaan: tes ini mudah dilakukan, karena seseorang berfokus pada input dan output. Penguji tidak perlu tahu bagaimana sistem bekerja secara internal, atau kode sumbernya, yang tidak dapat diakses. Dengan demikian, metode ini juga tidak mengganggu.
Kejelasan: waktu persiapan tes ini sangat singkat, karena sedikit pengetahuan tentang sistem yang dibutuhkan. Membuat dan menguji scenarii membutuhkan sedikit waktu, karena ia mengikuti jalur pengguna, yang relatif sedikit, tergantung pada ukuran sistem.
Ketidakberpihakan: kita di sini mengikuti sudut pandang "pengguna" dan bukan sudut pandang "pengembang". Hasil pengujian netral: sistem berfungsi, atau tidak. Tidak ada kemungkinan kontestasi, seperti penggunaan satu proses daripada yang lain, tergantung pada pendapat pengembang.


Kelemahan Black Box Testing
Dangkal: mengingat fakta bahwa kode tersebut tidak ditinjau, tes tidak memungkinkan untuk melihat bagian mana dari kode yang menjadi penyebab masalah potensial. Selain itu, penguji dapat melewatkan masalah mendasar atau kerentanan. Beberapa masalah juga sulit dikenali dengan metode ini, seperti yang terkait dengan kriptografi, atau disebabkan oleh kualitas acak yang buruk. Ini adalah salah satu tes yang kurang lengkap.
Redundansi: jika tes lain dilakukan, tes ini bisa kehilangan manfaatnya, karena rentangnya cenderung dimasukkan dalam tes lain.
Dalam hal pengujian penetrasi

Dalam kasus khusus pengujian penetrasi, prinsipnya tetap sama: penguji tidak tahu apa-apa tentang cara kerja aplikasi, dan mereka tidak memiliki akses ke kode sumbernya. Mereka mendapati diri mereka pada posisi pengguna Internet yang normal: yang biasanya adalah keadaan yang sama di mana peretas, yang membuat tes ini benar-benar realistis. Namun, beberapa pengetahuan dalam pemrograman dapat berguna atau bahkan diperlukan untuk tester (atau untuk peretas), karena itu akan membantunya mengidentifikasi tes yang relevan untuk dilakukan.


Pengujian "Kotak Putih Atau White Box"


Tes “Kotak Putih” terdiri dari peninjauan fungsi aplikasi dan struktur internalnya, prosesnya, dan bukannya fungsi fungsinya. Di sini, semua komponen internal perangkat lunak atau aplikasi diuji melalui kode sumber, basis kerja utama tester.

Untuk membuat tes "kotak putih", maka tester harus memiliki kompetensi dalam pemrograman, untuk memahami kode sumber yang ia pelajari. Ia juga harus memiliki pandangan global tentang fungsi aplikasi, elemen-elemen yang dibuatnya, dan tentu saja, kode sumbernya. Tidak seperti dalam pengujian "kotak hitam", tester memiliki profil "pengembang", bukan profil "pengguna".

Dengan membuat tes "kotak putih", tester dapat melihat baris kode mana yang dipanggil untuk setiap fungsi. Hal ini memungkinkan untuk menguji aliran data, dan penanganan pengecualian dan kesalahan. Ketergantungan sumber daya, serta logika dan kebenaran internal kode juga dipelajari. Itulah sebabnya tes ini terutama berguna selama pengembangan aplikasi, bahkan jika itu dapat dilakukan selama beberapa fase kehidupan proyek. Metode "kotak putih" dapat diterapkan untuk (terutama) tes unit, tes integrasi, dan tes sistem.

Pengujian "Kotak Putih" menggunakan skenarii uji, yang dibuat oleh tester tergantung pada apa yang ia ketahui tentang kode sumber lingkungan. Menguji semua scenarii ini bertujuan untuk memeriksa semua baris kode. Yang dilihat adalah proses yang dilakukan oleh aplikasi setelah input, untuk mendapatkan hasil tertentu. Penguji hanya memeriksa jika kode menghasilkan hasil yang diharapkan.

Metode ini memiliki beberapa keunggulan:
Antisipasi: melakukan tes ini selama pengembangan program memungkinkan untuk menemukan titik pemblokiran yang dapat berubah menjadi kesalahan atau Icone Amélioration et travail d'équipeissues di masa mendatang (misalnya selama peningkatan versi, atau bahkan selama integrasi komponen yang diuji ke dalam main sistem).
Optimalisasi: mengingat fakta bahwa ia bekerja pada kode, tester juga dapat memanfaatkan aksesnya untuk mengoptimalkan kode, untuk membawa kinerja yang lebih baik ke sistem yang dipelajari (belum lagi keamanan ...).
Kelelahan: penguji bekerja pada kode, dengan demikian ia memiliki kesempatan untuk sepenuhnya memeriksanya. Itu adalah jenis tes yang memungkinkan, jika dilakukan dengan baik, untuk menguji semua sistem, tanpa kehilangan apa pun. Ini memungkinkan untuk menemukan bug dan kerentanan yang mungkin disembunyikan dengan sengaja (misalnya, backdoors). Itulah mengapa ARJEL menuntut audit kode "kotak putih" kepada operator game online, untuk memastikan bahwa tidak ada mekanisme tersembunyi yang dapat menghukum pemain.
Karena seseorang tidak dapat memiliki segalanya, tes ini juga memiliki kelemahan.

Kompleksitas: tes ini menuntut kompetensi dalam pemrograman, dan pengetahuan yang kuat tentang sistem yang dipelajari.
Durasi: panjang kode sumber dapat membuat tes ini bertahan lama.
Otomasi: untuk membuat tes "kotak putih", seseorang memerlukan alat seperti penganalisa kode, pengadu ... Mereka dapat memiliki dampak negatif pada kinerja sistem, atau bahkan berdampak pada hasil pengujian.
Skalabilitas: penskalaan proyek bisa sangat rumit. Kode sumber suatu program seringkali sangat panjang, sehingga sulit untuk mengetahui apa yang diuji, apa yang dapat disisihkan ... Memang, seseorang tidak dapat selalu menguji semuanya, itu akan terlalu lama. Mungkin juga bagi penguji untuk tidak menyadari bahwa suatu fungsi, yang direncanakan dalam program, dilupakan dan tidak terintegrasi. Penguji, dengan demikian, tidak perlu memeriksa apakah semuanya ada di sana: ia hanya menguji apa yang sudah ada dalam kode.
Intrusion: metode ini sangat mengganggu. Memang, memang bisa berisiko membuat kode seseorang tersedia untuk orang lain, di luar perusahaan seseorang: ada risiko kerusakan, pencuri, atau bahkan integrasi pintu belakang ... Selalu pilih penguji profesional!


Pengujian "Kota Abu Atu Grey Box"


Pengujian "kotak abu-abu" mengkompilasi dua pendekatan sebelumnya: mereka menguji kedua fungsi dan fungsi suatu situs web. Itu berarti bahwa seorang tester memberikan input ke sistem, memeriksa bahwa jika hasilnya sesuai dengan yang diharapkan, dan memeriksa melalui proses mana hasil ini diperoleh.

Dalam jenis tes ini, tester mengetahui peran sistem dan fungsionalitasnya, dan juga mengetahui (meskipun tidak ekstensif) mekanisme internalnya (terutama struktur data internal dan algoritma yang digunakan). Namun, dia tidak memiliki akses ke kode sumber!

Tes-tes ini hampir tidak dapat dilakukan selama fase pengembangan suatu proyek, karena ia menyiratkan tes pada fungsi-fungsi program: dengan demikian harus dalam keadaan dekat dengan yang terakhir agar tes ini menjadi relevan. Memang, selama pengujian "kotak abu-abu", penguji terutama menggunakan metode "kotak hitam", karena kode sumber tidak dapat diakses. Namun, scenarii berorientasi pada dampak proses yang mendasarinya, dan dengan demikian mengujinya juga.

Tentu saja, metode "kotak abu-abu" terutama menggabungkan keuntungan dari metode "kotak putih" dan "kotak hitam". Kami masih bisa menyebutkan dua manfaat besar dari metode ini:

Ketidakberpihakan: tes "kotak abu-abu" menjaga batas antara pengembang dan tester, karena yang terakhir tidak mempelajari kode sumber dan dapat bersandar pada hasil yang diperoleh dengan menguji antarmuka pengguna.
Kecerdasan: dengan mengetahui struktur internal program, seorang penguji dapat membuat skenario yang lebih bervariasi dan cerdas, untuk memastikan untuk menguji semua fungsi, tetapi juga semua proses program yang sesuai.
Pada saat yang sama, salah satu kelemahan utama dari tes ini adalah sebagai berikut:

Contoh penggunaan tools untuk grey testing adalah : Detox

Sekian semoga tutorial ini dapat bermanfaat dan membantu kamu yang sedang mempelajari mengenai jenis-jenis testing untuk sebuah software untuk menghasilkan produk yang berkualitas. Apabila ada kesalahan saya mohon maaf dan terimakasih.

Baca Juga :
Pengertian Agile dan Scrum Serta Manfaatnya
Apa Itu Programmer? (Penjelasannya Lengkap)
7 Situs Terbaik Untuk Programer Terbaik Sedunia