Mengenal Black Box Testing, Uji Software Yang Penting Bagi Developer
Berlawanan dengan namanya, pengujian black box bukanlah pengujian black box pesawat terbang melainkan sebuah metode pengujian perangkat lunak. Cara pengujian ini dikenal cukup menarik.
Pengertian Black box testing
Black box testing alias behavioral testing adalah metode pengujian fungsionalitas atau kegunaan perangkat lunak. Black box testing adalah pengujian yang dilakukan secara keseluruhan dengan menilai kebutuhan dan spesifikasi perangkat lunak. Black box testing hanya akan mencakup input dan output dari sistem perangkat lunak tanpa mengetahui program internal. Black box testing dilakukan sedemikian rupa sehingga dapat menggambarkan sudut pandang penguji, tampak seperti black box sederhana.
Sedangkan untuk black box sendiri bisa berupa sistem atau software apa saja yang ingin Anda uji nanti, seperti Linux, sistem operasi Windows atau website seperti Google, Facebook atau bahkan data dasar seperti Oracle atau bahkan aplikasi yang Anda buat sendiri. Metode pengujian black box ini digunakan oleh sebagian besar aplikasi yang dapat Anda temukan saat ini. Pengujian ini juga penting agar Anda dapat menemukan masalah atau bug apa pun di aplikasi sebelum rilis resmi.
Ciri-Ciri Black Box Testing
- Black box testing berfokus pada persyaratan fungsional perangkat lunak, berdasarkan persyaratan spesifikasi software.
- Black box testing bukanlah pengganti white box testing. Selain itu, ini merupakan pendekatan tambahan untuk menutupi bug dengan metode white box testing jenis lain.
- Black box testing melakukan pengujian tanpa pengetahuan rinci tentang struktur internal sistem atau komponen yang diuji juga disebut sebagai behavioral testing, specification-based testing, input/output testing atau functional testing.
Fungsi Black Box Testing
- Menemukan fungsi-fungsi yang salah atau hilang di dalam suatu software.
- Mencari kesalahan interface yang terjadi pada saat software dijalankan.
- Untuk mengetahui kesalahan dalam struktur data atau akses database eksternal di dalam suatu aplikasi.
- Menguji kinerja dari software tersebut.
- Menginisialisasikan dan mencari kesalahan dari terminasi software itu sendiri.
Tipe Black Box Testing
1. Functional Testing
Functional testing adalah proses pengujian fitur atau fungsionalitas perangkat lunak tertentu. Tujuan sederhana dari pengujian ini adalah untuk dapat memverifikasi kemampuan pengguna aplikasi untuk masuk atau kemahiran mereka dalam menggunakan kata sandi, email, dan nama pengguna.
Pengujian ini juga dapat dilakukan untuk memastikan bahwa pengguna memang dapat login tanpa informasi tersebut guna menjaga keamanan program. Biasanya pengujian jenis ini juga lebih fokus pada pengujian berbagai aspek penting aplikasi dan integrasi antar masing-masing komponen utamanya. Functional testing juga dapat dilakukan untuk menguji keseluruhan sistem.
2. Non-functional Testing
Non-functional testing adalah proses pengujian yang dilakukan dengan banyak tambahan aspek non-functional. Non-functional testing dilakukan untuk mengetahui bagaimana perangkat lunak dapat melakukan suatu perintah atau tugas. Selain itu, pengujian ini juga dilakukan untuk melihat apakah aplikasi yang dibuat dapat digunakan dengan benar di seluruh perangkat dan ukuran layar serta pada sistem operasi yang berbeda.
3. Regression Testing
Jenis pengujian ini akan memeriksa apakah terjadi kerusakan atau regresi tertentu saat sebuah aplikasi di upgrade. Dalam regression test akan dilakukan pengujian terhadap aspek fungsional dan non fungsional. Beberapa contoh aspek fungsional yang dapat diuji dalam hal ini adalah fitur-fitur yang sudah tidak berfungsi dengan baik pada versi terbaru. Misalnya, untuk aspek non-fungsional yang diuji, kinerjanya lambat pada versi perangkat lunak terbaru.
Jenis Desain Testing
Dalam black box testing, terdapat banyak jenis teknik desain pengujian yang dapat dipilih berdasarkan jenis pengujian yang akan digunakan. Jenis-jenis desain percobaan adalah sebagai berikut:
- Equivalence Class Partitioning
Merupakan teknik pengujian perangkat lunak atau pengujian Black Box yang membagi domain masukan ke dalam kelas-kelas data dan menggunakan kasus uji kelas-kelas data tersebut dapat diturunkan. - Boundary Value Analysis
BVA adalah teknik pengujian Black Box yang digunakan untuk memeriksa kesalahan pada batas domain masukan. Namanya berasal dari Boundary yang artinya batas suatu wilayah. Jadi BVA terutama berfokus pada pemeriksaan parameter input yang valid dan tidak valid untuk sejumlah komponen perangkat lunak tertentu. - State Transitions Testing
Merupakan teknik Black Box testing dimana perubahan kondisi masukan menyebabkan perubahan keadaan atau perubahan keluaran pada aplikasi yang diuji (AUT). Pengujian ini memungkinkan Anda menganalisis perilaku aplikasi Anda untuk berbagai kondisi masukan. - Cause-Effect Graphing
Merupakan teknik Black Box testing yang secara grafis menunjukkan hubungan antara hasil tertentu dan semua faktor yang mempengaruhi hasil tersebut. Diagram ini juga dikenal sebagai diagram tulang ikan yang diciptakan oleh Kaoru Ishikawa atau diagram tulang ikan karena bentuknya yang mirip ikan.
Kelebihan Black box testing
Untuk dapat melakukan black box testing, Anda tidak memerlukan sumber daya dengan latar belakang teknis. Anda hanya memerlukan sumber daya yang dapat memahami pengguna dan melihatnya dengan jelas saat menguji perangkat lunak. Selain itu, tes ini bahkan lebih cepat dalam hal menganalisis jarak dari awal tes. Faktanya, hal ini dapat dilakukan dengan lebih efisien untuk pengujian yang sangat kompleks. Karena pengujian ini bisa Anda lakukan setelah tahap pengembangan selesai.
Kekurangan Black Box Testing
Karena sumber daya pengujian tidak memiliki pengetahuan teknis, maka tidak mungkin mengabaikan atau meremehkan berbagai aspek potensi kerusakan. Selain itu, jika Anda harus bekerja dalam waktu singkat dan memenuhi tenggat waktu, kemungkinan besar tes yang salah akan terjadi karena banyak tes input dan output yang terlewat.
Langkah Black Box Testing
- Analisa kebutuhan dan spesifikasi
Hal ini dilakukan untuk memastikan persyaratan apa saja yang terpenuhi saat melakukan pengujian, misalnya fungsi A harus mampu mengeksekusi instruksi B dan menghasilkan output C. - Pemilihan input
Pemilihan input dilakukan untuk memastikan bahwa semua input yang tersedia telah diuji, sehingga pengujian black box dapat menguji semua kemungkinan skenario input pada perangkat lunak. Misalnya, kita memilih untuk memasukkan login sebagai nama pengguna dan kata sandi. - Pemilihan output
Tester akan menentukan hasil seperti apa yang diharapkan dari perangkat lunak. Misalnya, apakah perlu memastikan hasil cetakan memungkinkan laporan yang benar dicetak dari perangkat lunak? dan sebagainya. - Seleksi input
Pada titik ini penguji akan menentukan kasus uji atau skenario dari data yang dipilih. Skenario seperti apa yang akan dilakukan pada input? Misalnya, apakah kita mencoba memasukkan nama pengguna yang salah dan melihat apa yang terjadi? dan sebagainya. - Pengujian
Kasus uji yang berbeda telah diidentifikasi melalui analisis kebutuhan, spesifikasi, pemilihan input, ouput, serta test case seleksi input yang telah dilakukan dilaksanakan pada tahap ini. - Review hasil
Pengujian yang dilakukan dievaluasi pelaksanaannya, sehingga menghasilkan berbagai catatan dan dokumen mengenai kesalahan, kelalaian, kesalahan, dan berbagai fungsi yang berjalan sebagaimana mestinya.
Black box testing merupakan proses pengujian yang dilakukan agar input dan output aplikasi dapat diamati tanpa harus mengetahui berbagai struktur kode kompleks yang ada pada aplikasi. Tes ini memiliki beberapa teknik jelas yang dapat Anda gunakan. Selain itu, black box testing memiliki kelebihan tersendiri karena penguji tidak perlu memahami bahasa pemrograman untuk membangun aplikasi dan tidak perlu menguji semua kode yang dihasilkan oleh pemrogram.
Namun tes ini masih mempunyai kelemahan. Karena penguji tidak perlu mengetahui cara menguji kode, ada kemungkinan bug tidak terdeteksi di bagian kode tertentu. Selain pro dan kontra dari pengujian di atas, sangat penting untuk menguji aplikasi sebelum benar-benar merilisnya kepada pengguna sehingga tidak ada masalah yang dapat membuat mereka frustrasi dan merugikan pengguna. Namun kerugian tidak hanya terjadi pada perusahaan yang tidak mengelola operasionalnya dengan baik, namun juga pada perusahaan yang tidak mengelola keuangannya dengan baik dan tidak menyajikan laporan keuangannya dengan benar.