Haruskah penguji menyetujui rilis, atau hanya melaporkan tes?

20

Apakah masuk akal untuk memberikan otoritas penandatanganan kepada penguji? Haruskah tim uji

  1. Cukup uji fitur, masalah, dll, dan cukup laporkan lulus / gagal, serahkan kepada orang lain untuk bertindak atas hasil tersebut, atau
  2. Memiliki wewenang untuk menahan rilis sendiri berdasarkan hasil itu?

Dengan kata lain, haruskah penguji diharuskan untuk benar-benar keluar saat rilis? Tim pengujian yang saya kerjakan merasa bahwa mereka melakukannya, dan kami mengalami masalah dengan ini karena "pengujian cakupan creep" - penolakan untuk menyetujui rilis terkadang didasarkan pada masalah yang secara eksplisit tidak ditangani oleh rilis yang dimaksud.

Ernest Friedman-Hill
sumber
2
Harap ulangi pertanyaan Anda sehingga ini bukan polling. Apa masalah yang Anda coba selesaikan?
M. Dudley
5
"seharusnya" sangat tergantung pada struktur organisasi perusahaan. Jika mereka diukur pada bug yang ditemukan dalam produksi, bisa menahan rilis kereta adalah alat yang penting.
Poin luar biasa, @MichaelT. Dalam organisasi saya, pengujian adalah peran daripada deskripsi pekerjaan, dan evaluasi lebih bersifat ad-hoc dan sama sekali tidak kuantitatif. Penerapan yang berhasil akan menjadi masukan untuk ulasan positif, tetapi bug dalam produksi tidak akan menjadi negatif khusus, tidak seperti orang lain di tim.
Ernest Friedman-Hill
5
Jika Anda memiliki masalah yang penguji menolak untuk menyetujui rilis berdasarkan masalah yang tidak direncanakan untuk ditangani, daripada Anda memiliki masalah komunikasi (mereka tidak tahu masalah tidak direncanakan untuk ditangani) atau masalah orang (mereka membuat diri mereka penting; apakah untuk melepaskan pada akhirnya adalah keputusan bisnis).
Jan Hudec

Jawaban:

27

Sebagian besar tempat saya pernah bekerja, orang-orang QA memang memiliki semacam langkah keluar, tetapi tidak memiliki otoritas final tentang apakah rilis akan dilanjutkan atau tidak. Sign-off mereka menyatakan bahwa mereka menyelesaikan pengujian yang diharapkan oleh rencana rilis, bukan bahwa rilis itu sempurna.

Pada akhirnya QA! = Bisnis dan bisnis perlu memutuskan apakah mereka boleh menggunakan kode dalam kondisi saat ini atau jika manfaatnya melebihi kerugian atau apa pun. Ini sering dilakukan oleh klien atau pemangku kepentingan segera sebelum disebarkan dan sering disebut Penerimaan Pengguna.

Jika QA Anda juga merupakan grup Penerimaan Pengguna Anda, maka ada potensi bahwa mereka memiliki wewenang untuk menentukan kandidat rilis Anda sebagai tidak dapat diterima, tetapi jika Anda menyelesaikan masalah ini yang berada di luar ruang lingkup untuk perbaikan bug / iterasi / sprint / perubahan meminta / apa pun yang Anda masukkan dalam waktu Anda, maka Manajer Proyek atau pemangku kepentingan lini bisnis perlu mengadakan pertemuan Yesus dengan tim QA.

Baik-baik saja untuk melaporkan cacat yang sudah ada sebelumnya atau hasil yang tidak diinginkan dari persyaratan baru, tetapi jika itu di luar ruang lingkup dan non-bencana, umumnya tidak dapat diterima untuk menandainya sebagai masalah pemblokiran. Ini masuk dalam jaminan bagi pemilik produk untuk memprioritaskan seperti yang lainnya.

Tagihan
sumber
Siapa yang memutuskan apakah Anda akan mengundang pelanggan untuk melakukan tes penerimaan pada build 1234 atau tidak cukup baik untuk pengujian penerimaan?
Bart van Ingen Schenau
3
@ BartartIngenSchenau: Pemilik produk / manajer proyek harus memiliki kata terakhir tentang ini. Karena bahkan tes penerimaan sering akan menonjol jika perlu (apakah Anda ingin fitur X sekarang meskipun kami tidak dapat membuat Y bekerja dengannya, atau apakah Anda ingin menunggu 2 bulan lagi hingga kami memperbaikinya?) Dan pemilik produk sedang menegosiasikan itu.
Jan Hudec
selain apa yang dikatakan Jan, dalam banyak metodologi akan ada jadwal atau irama di sini. beberapa orang menyebarkan setiap kandidat yang selamat dari tes asap awal ke UAT, beberapa otomatis menyebarkan apa pun yang diperiksa ke cabang kandidat, beberapa segala sesuatu yang diperiksa ke dalam main. idealnya Anda telah menunjukkan kemajuan para pemangku kepentingan saat Anda melangkah sehingga tidak ada kejutan di bagian akhir. dalam beberapa kasus ini Anda pada akhirnya menunjukkan kepada para pemangku kepentingan tentang apa yang telah diseret oleh orang-orang QA melalui bara dan mereka hanya mengatakan "siapa yang peduli" dan semuanya sudah berakhir.
Bill
Dalam SaaS modern dengan penyebaran berkelanjutan, siklus penerapan kode (layanan) dapat dipisahkan dari siklus rilis fitur (bisnis). Siklus rilis fitur ini dapat diimplementasikan menggunakan flag atau toggle fitur, misalnya dari alfa (internal) ke beta (keikutsertaan) ke ketersediaan umum. Itu adalah salah satu cara untuk melibatkan lebih banyak bisnis formal yang terpisah dari dan terlepas dari penerapan kode atau layanan tertentu. Sebaliknya, rilis fitur mengikat untuk penyebaran layanan, memperkenalkan kopling dan risiko ke dalam proses yang dapat dihindari dengan teknik flag fitur.
Will
@ tidak akan saya tidak setuju, tetapi seseorang masih membuat keputusan jika fitur tersembunyi itu cukup tersembunyi untuk tidak diketahui oleh pengguna selain tim beta pada penerapan awal dan akhirnya di mana pun saya telah menggunakan pendekatan bermain urutan kurang lebih sama, tetapi dengan label yang berbeda pada bagian yang bergerak dan risikonya bergeser sedikit. Saya lebih suka situasi yang Anda gambarkan, tetapi tim QA yang menemukan sesuatu yang sudah ada sebelumnya atau manajer produk memutuskan untuk melanjutkannya adalah hal yang sama banyaknya dalam model ini sebagaimana yang lain dalam pengalaman saya.
Bill
6

Seseorang membutuhkan otoritas itu . Apakah itu penguji, tim penguji, pemimpin tim penguji, atau pemimpin organisasi pengembangan agak tidak relevan. Atau mungkin lebih akurat, itu tergantung pada organisasi.

Pada akhirnya, pilihan untuk merilis perangkat lunak adalah fungsi bisnis. Bisnis harus memutuskan apakah kualitasnya sesuai. Dapat diperdebatkan, direktur penjaminan mutu harus membuat keputusan itu, atau memasukkan keputusan itu ke unit bisnis yang sesuai. Itu semua tergantung pada ukuran perusahaan, kepentingan relatif dari kualitas, dll.

Semua yang dikatakan, informasi yang digunakan untuk membuat keputusan dimulai dengan tester . Apakah mereka memiliki kekuatan untuk menghentikan rilis atau tidak, mereka harus merasakan tanggung jawab untuk memberi tahu para pembuat keputusan ketika mereka melihat sesuatu yang mereka pikir harus menyebabkan keterlambatan rilis.

Bryan Oakley
sumber
6

Memberikan otoritas sign-off (yaitu hak veto) untuk rilis kepada penguji sama artinya dengan memberikan hak itu kepada pengembang: tidak ada sama sekali.

Penguji dan pengembang terutama adalah orang-orang teknis, sehingga mereka cenderung membuat keputusan sebagian besar alasan teknis. Namun, kekhawatiran yang perlu dipertimbangkan ketika membuat rilis adalah masalah teknis dan bisnis. Jelas, pelanggan tidak akan senang jika Anda mengirimkan produk yang dipenuhi bug, tetapi pelanggan akan sama-sama tidak senang jika Anda terus menunda rilis karena masih ada masalah terbuka pada produk.

Seseorang perlu menemukan keseimbangan yang tepat antara produk yang bagus dan menjaga jadwal yang dijanjikan kepada pelanggan. Untuk melakukan itu, Anda tidak boleh terlibat dalam proyek dalam peran teknis semata, melainkan dalam peran yang lebih berorientasi bisnis / manajemen seperti manajer proyek atau pemilik produk dan mengambil masukan dari penguji dan pengembang.

Bart van Ingen Schenau
sumber
1
Saya memilih ini karena saya pada dasarnya tidak setuju dengan beberapa poin dan asumsi yang Anda buat. Saya tidak setuju bahwa QA seharusnya tidak memiliki wewenang untuk memveto rilis karena banyak grup QA juga beroperasi dalam peran Penerimaan Pengguna. Lebih lanjut, saya tidak setuju dengan asumsi bahwa penguji adalah orang teknis. Tidak selalu demikian, tidak setiap kelompok yang merilis perangkat lunak dapat membeli tim QA lengkap, sehingga perannya dapat jatuh pada analis bisnis yang mungkin tidak teknis sama sekali.
maple_shaft
1
selain poin maple_shaft, saya sering melihat panggilan terakhir untuk siapa pun yang ada dalam peran pelanggan kecuali ada sesuatu yang mengerikan yang diidentifikasi. pada akhirnya itu adalah hasil kerja mereka dan kemungkinan besar mereka memiliki sudut pandang yang benar tentang risiko dengan asumsi Anda memberi mereka informasi yang akurat.
Bill
5

Keputusan untuk 'melepaskan' atau 'tidak melepaskan' pada akhirnya adalah keputusan bisnis, di mana analisis risiko / imbalan yang ketat perlu dilakukan.

Gila bagi organisasi mana pun untuk meminta tim penguji mengambil tanggung jawab ini atau meminta tim penguji menyetujui tanggung jawab ini.

Peran tim uji adalah memberikan analisis kualitas perangkat lunak, kesiapannya untuk dirilis, dan risiko apa pun yang diidentifikasi sebagai input pada keputusan bisnis untuk dirilis atau tidak dirilis.

Seperti yang orang lain catat, _ seseorang _ (dan saya percaya ini adalah seorang individu) memang membutuhkan otoritas untuk membuat keputusan 'melepaskan' atau 'tidak melepaskan'. Orang yang sama dapat mendelegasikan keputusan itu dalam kondisi tertentu (mis. Tidak ada Bug P1 atau P2)

Jordan
sumber
3

Saya telah bekerja dengan situasi yang sama dengan penguji yang terlalu banyak menjangkau dan menemukan cara yang lebih kreatif untuk menghancurkan suatu sistem yang, ketika risiko dinilai, sangat tidak mungkin terjadi dalam produksi.

Sementara saya memahami dan memuji tim uji karena tidak ingin mengirimkan rilis yang tidak sempurna, itu memang membutuhkan kepemilikan produk yang kuat untuk mendefinisikan apa yang merupakan "risiko yang dapat diterima".

Dalam pengalaman saya, tim uji harus diberi veto pada rilis perangkat lunak tetapi veto ini harus ditimpa oleh pemilik produk tetapi hanya setelah diskusi dengan penguji utama.

Perangkat lunak tidak akan pernah sempurna, jika Anda menderita tes creep maka Anda tidak akan pernah merilis apa pun sampai ada masalah produksi utama (yang tidak akan diuji dengan benar) dan bergegas keluar.

Michael
sumber
1
Itu adalah masalah nyata tetapi saya tidak yakin apakah itu harus menjadi masalah OP. Interpretasi saya adalah bahwa bagaimanapun para penguji menginterpretasikan persyaratan baru yang awalnya tidak didefinisikan.
maple_shaft
2
pengalaman saya dengan tim pengujian telah membuat saya jatuh di sisi lain ini. Bagi saya QA seharusnya tidak memiliki harapan untuk dapat memblokir penyebaran tanpa membuat kasus mereka ke seluruh tim atau membuat pemilik untuk menimpa tim.
Bill
1
Benar - saya mungkin tidak cukup eksplisit, masalah yang sama terjadi ketika penguji meningkatkan cacat, dan saya kutip, "dalam percikan cerita" yang mengarah ke masalah yang sama - tidak ada yang pernah dirilis.
Michael
Dalam kasus saya, ini lebih dari interpretasi @maple_shaft; tidak terlalu licik dalam menemukan cara untuk merusak perangkat lunak, seperti melaporkan kegagalan untuk menangani kasus yang tidak didukung secara eksplisit.
Ernest Friedman-Hill
1
@ ErnestFriedman-Hill Sepertinya Anda menggambarkan Persyaratan Negatif dan ini adalah apa yang hilang dari dokumen persyaratan fungsional Anda. Persyaratan Negatif adalah pernyataan eksplisit tentang apa yang TIDAK akan dilakukan sistem , dan dapat diterima sebagai persyaratan biasa. Jika ini dinyatakan maka kasus pengujian mereka terhadap Persyaratan Negatif tidak valid.
maple_shaft