Apakah penguji harus melihat kode sumber?

8

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?

Tuan Jefferson
sumber
7
Ulasan kode tidak sedang diuji.
Pekerjaan
Untuk beberapa jenis perangkat lunak, ada pemutusan kecil antara kode sumber dan fungsionalitas aplikasinya. Dalam jenis perangkat lunak lain, pemutusan bisa sangat besar.
rwong

Jawaban:

15

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.

ChrisF
sumber
Ini sudah merupakan jawaban yang bagus, tetapi sebagai tambahan, saya akan merekomendasikan menonton video GTAC ini: youtube.com/watch?v=cqwXUTjcabs
Alvin
1
Ini sepertinya sudut pandang QA yang cukup sempit dan saya benar-benar tidak setuju dengannya. Peran QA bukan hanya "menulis ujian, tidak lulus, itu masalah dev sekarang, tanganku bersih". Mengidentifikasi bug dan penyebabnya adalah aspek penting dari tanggung jawab QA. Pada akhirnya, QA ada untuk memastikan bahwa kode dev bekerja, selalu . Itu membutuhkan, terkadang pengetahuan yang lebih intim tentang cara kerjanya daripada yang dimiliki dev.
Steven Evers
Mungkin ketidaksepakatan dalam "tidak perlu tahu cara kerja sistem". Yang dimaksud @ChrisF adalah pengujian kotak hitam dapat dilakukan tanpa harus melihat kode sumber, tetapi @SnOrfus menganggap ini berarti "tidak perlu memiliki pemahaman yang baik tentang persyaratan sistem".
rwong
@ rwong: Tidak. Bukan itu yang berarti.
Steven Evers
1
Saya tidak berpikir itu adalah tanggung jawab pengembang individu - itu adalah tanggung jawab tim pengembangan .
4

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 .

Alan
sumber
+1 untuk ulasan kode penguji, dan berharap saya bisa memberi +1 lagi untuk makalah yang luar biasa!
Ethel Evans
3

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 .

Steven Evers
sumber
1

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.

Dakotah Utara
sumber