kami menggunakan proses pengembangan berbentuk V klasik. Kami kemudian memiliki persyaratan, arsitektur, desain, implementasi, tes integrasi, tes sistem dan penerimaan.
Penguji sedang mempersiapkan kasus uji selama fase pertama proyek. Masalahnya adalah, karena masalah sumber daya (*), fase pengujian terlalu panjang dan sering diperpendek karena kendala waktu (Anda tahu manajer proyek ...;)). Pengembang melakukan tes unit sebagaimana mestinya.
Jadi pertanyaan saya sederhana: apakah pengembang harus terlibat dalam fase pengujian dan bukankah terlalu 'berbahaya'. Saya khawatir itu akan memberikan manajer proyek perasaan palsu kualitas yang lebih baik karena pekerjaan telah dilakukan tetapi apakah orang yang ditambahkan. Hari akan bernilai? Saya tidak terlalu yakin pengembang melakukan tes (jangan tersinggung di sini, tetapi kita semua tahu itu cukup sulit untuk istirahat dalam beberapa klik apa yang telah Anda buat dalam beberapa hari).
Terima kasih telah berbagi pemikiran Anda.
(*) Untuk alasan yang tidak jelas, meningkatkan jumlah penguji bukanlah suatu pilihan pada hari ini.
(Hanya dimuka, itu bukan duplikat Haruskah programmer membantu penguji dalam merancang tes? Yang berbicara tentang persiapan pengujian dan bukan pengujian pelaksanaan, di mana kita menghindari implikasi dari pengembang)
sumber
Jawaban:
Melihat pertanyaan Anda secara harfiah ("terlibat dalam") Satu-satunya jawaban saya adalah mutlak tegas
IYA
Devs seharusnya tidak pernah memiliki keputusan akhir pada kode mereka sendiri .
Tapi, Devs harus terlibat dalam pengujian pekerjaan devs lain. Ia melakukan dua hal:
Akhirnya, mengapa Anda tidak menggunakan mata sebanyak mungkin? Anda jarang bisa melewati proses perekrutan dan on-boarding untuk membawa orang-orang QA tambahan untuk waktu krisis. Jadi, di mana Anda menemukan mata ekstra yang Anda butuhkan? Atau apakah Anda mencoba untuk melewati waktu krisis dengan jumlah QA yang sama dengan yang pernah Anda alami? Bahkan jika para pengembang menghabiskan 20% dari waktu pengujian mereka dan 80% memperbaiki bug apa pun yang muncul, masih lebih banyak penglihatan pada aplikasi daripada yang Anda miliki sebelumnya. Pengujian otomatis hanya memberi Anda tingkat jaminan tertentu dan tidak akan pernah 100%.
http://haacked.com/archive/2010/12/20/not-really-interested-in-lean.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+haacked+%28you%27ve+been+HAACKED%29
sumber
Untuk apa pun kecuali pengujian Unit, sama sekali tidak. Pengembang hanya tahu terlalu banyak tentang aplikasi dan bagaimana "seharusnya" bekerja menjadi penguji obyektif.
sumber
Perbedaan mendasar dalam filosofi pengujian antara pengembang dan Qs adalah ini: programmer biasanya menguji programnya untuk membuktikan bahwa kodenya berfungsi (pengujian "positif"). QA dapat dan memang melakukan ini, tetapi juga memiliki fokus tambahan untuk mencari tahu apa yang tidak berhasil dengan mencoba memecahkan perangkat lunak (menggunakan pengujian "negatif").
Sejauh staf QA berpotensi rusak oleh pengujian programer yang "membuktikan" bahwa perangkat lunak bekerja, harus ada isolasi antara pengujian pengembang dan pengujian QA. Pengembang pasti dapat membantu pengujian QA bersama dengan menunjukkan apa yang berhasil, tetapi terserah QA untuk memverifikasi secara independen bahwa perangkat lunak tidak rusak.
Hal terbaik yang dapat dilakukan oleh programmer untuk membantu upaya pengujian adalah menyediakan rangkaian pengujian unit yang komprehensif, berkualitas tinggi, dan dapat diverifikasi, yang berisi tes yang selaras dengan kebutuhan individu dalam dokumen persyaratan.
sumber
Nah dari segi pengujian, ada 3 jenis.
Kotak hitam, kotak abu-abu, dan kotak putih.
Kotak hitam mengacu pada pengguna yang menguji produk, tanpa pengetahuan tentang bagaimana produk bekerja secara internal.
Kotak abu-abu mengacu pada pengguna yang memiliki pengetahuan tentang pemrograman komputer, tetapi tidak berada di tim pengembangan. Orang-orang ini akan menguji apakah produk mengalami kebocoran memori, masalah persyaratan sistem, dan sebagainya.
Inilah bagian utamanya: Kotak putih mengacu pada pengembang yang menguji produk pada level kode. Ini berarti mengatakan bahwa mereka melakukan pengujian unit, debugging, ... dll.
Oleh karena itu baik bahwa pengguna dan tim pengembangan semua terlibat dalam fase pengujian, tetapi masing-masing pengujian memerlukan tingkat komitmen yang sesuai dari pengguna dan tim pengembangan, tergantung pada apa yang diuji.
sumber
UNIT TESTING adalah keharusan bagi semua pengembang
Untuk informasi tentang bagaimana ini dapat digunakan untuk keuntungan Anda, baca tautan berikut jika Anda tertarik pada pengembangan C ++:
TIDAK ADA CARA ORANG QA BISA MELAKUKAN UJI INI. TIDAK MUNGKIN.
sumber
Dengan asumsi bahwa proyek tersebut memiliki sejumlah pengembang yang signifikan, maka tentu saja para pengembang harus mengerjakan pengujian. Satu peringatan adalah bahwa pengembang tidak mengerjakan pengujian (ini tidak termasuk pengujian unit) untuk kode mereka sendiri.
sumber
Saya lebih suka melihat staf administrasi (atau pengguna potensial aktual) melakukan pengujian QA daripada pengembang. Seseorang yang tidak tahu bagaimana produk itu dirancang untuk bekerja, perlu mencoba menggunakannya. Pengembang cenderung sangat terbatas dalam cara mereka mendekati pengujian dan terus terang mereka terlalu mahal per jam untuk digunakan untuk pengujian QA juga.
sumber
Anda menulis:
Ini seperti memiliki pekerja konstruksi membangun rumah Anda, tetapi memiliki tim yang berbeda memastikan bahwa bangunan itu benar-benar berdiri, pintu-pintu terbuka dan tertutup, pendingin udara berfungsi dll. Mungkin perlu waktu x10 untuk membangun gedung, dan sebagian besar akan berakhir tidak bisa diandalkan.
sumber