Seberapa penting bagi penguji untuk melakukan pengujian kotak putih selain pengujian kotak hitam? Sebagai seorang pengembang, saya melihat nilai memiliki orang yang berpikiran QA melalui kode saya dan mencari titik lemah, tetapi juga sepertinya jika penguji non-teknis cukup teliti dan metodis, mereka dapat menutupi aplikasi dengan baik.
Pengujian kotak putih dapat mengungkapkan kasus uji penting yang tidak akan terlihat jelas saat hanya melihat aplikasi dari sudut pandang pengguna, tetapi pengujian kotak hitam secara eksklusif mungkin memakan waktu lebih sedikit, dan secara signifikan meningkatkan jumlah orang yang mampu melakukan pekerjaan itu. . Juga, jumlah pengujian kotak putih nontrivial harus dilakukan oleh pengembang sebelum sampai ke tester, apakah saya benar?
Jawaban:
Pengujian kotak putih dan kotak hitam adalah dua keterampilan yang berbeda - seseorang yang terampil dalam satu hal tidak harus terampil pada yang lain.
Banyak hal yang dilakukan QA adalah pengujian kotak hitam - memastikan sistem bekerja "seperti yang diiklankan" dan dalam hal ini mereka tidak perlu tahu bagaimana sistem bekerja untuk melakukan pekerjaan dengan baik. Bahkan pengetahuan tentang kode dapat membawa mereka ke perangkap yang sama yang menangkap pengembang yang tidak waspada melakukan pengujian mereka sendiri. Jauh lebih baik bahwa mereka tidak memiliki prasangka bagaimana pengembang berpikir sistem seharusnya bekerja.
Itu tidak berarti bahwa tidak boleh ada pengujian kotak putih - yang (sebagian) adalah pengujian unit pengembang. Rangkaian unit pengujian yang baik harus menguji input yang valid, input yang tidak valid, dan input case tepi. Namun, saya tidak berpikir bahwa selalu perlu bagi QA untuk melakukan ini - jika tanpa alasan selain itu adalah tanggung jawab pengembang.
Namun, seperti yang ditunjukkan SnOfus dalam komentarnya pengujian kotak putih yang baik bisa sangat berguna.
sumber
Saya beruntung di tim saya dengan ulasan kode tester. Penguji cenderung melihat kode dengan cara yang sama mereka melihat aplikasi - mereka bertanya pada diri mereka sendiri, "dengan cara apa kode ini tidak berfungsi", dan sering menemukan masalah yang tidak ditemukan oleh pemrogram selama tinjauan kode.
Untuk jawaban yang lebih lama, saya menulis makalah ini .
sumber
Benar
Seperti yang saya katakan dalam menanggapi @ ChrisF: QA ada untuk memastikan bahwa kode produksi selalu bekerja . Tanpa melelahkan, itu berarti mengetahui platform apa yang diharapkan, seperti apa kondisi mesin yang akan digunakan, seperti apa persyaratan kinerja dan memastikan bahwa setiap lini akan berhasil.
IME, tim QA yang baik akan menulis, membaca dan meninjau lebih banyak kode daripada tim dev.
Jika tim fitur dan tim perbaikan bug (utama) Anda tidak memiliki pengembang QA di dalamnya yang bekerja untuk merancang API, alur kerja, keamanan, dan semua aspek lain dari fitur / perbaikan, maka Anda benar-benar kehilangan kekuatan. yang dapat dibawa departemen QA Anda ke produk Anda saat sedang dikembangkan .
sumber
Tidak perlu sama sekali. Daripada meminta orang yang berpikiran QA membaca kode Anda, saya sarankan meminta pengembang membaca kode Anda. Selain itu, jika Anda menulis unit test saat Anda mengembangkan kode Anda, meminta orang yang berpikiran QA membaca kode Anda bukanlah penggunaan waktu QA yang terbaik.
Orang QA tidak boleh fokus pada BAGAIMANA kode itu ditulis, tetapi APA kode itu.
Orang QA harus memfokuskan tidak ada pengujian fungsional dan memanfaatkan persyaratan untuk melakukan tes tersebut. Pada akhirnya, unit test dan tester fungsional QA yang melakukan pengujian black box akan menjadi penggunaan terbaik setiap waktu.
sumber