Bagaimana menangani bug yang saya pikir sudah saya perbaiki, tetapi saya tidak sepenuhnya yakin

13

Ada beberapa jenis bug yang sangat sulit untuk diperbanyak, jarang terjadi dan tampaknya secara acak. Itu bisa terjadi, saya menemukan kemungkinan penyebabnya, memperbaikinya, menguji program, dan tidak dapat mereproduksi bug. Namun, karena tidak mungkin untuk mereproduksi bug secara andal dan itu jarang terjadi, bagaimana saya bisa menunjukkan ini dalam bugtracker? Apa cara yang umum untuk melakukannya?

Jika saya mengatur statusagar diperbaiki, dan solutionuntuk diperbaiki, itu akan berarti sesuatu yang benar-benar diperbaiki, bukan?

Apakah praktik umum untuk mengatur statusagar tetap dan solutionterbuka, untuk menunjukkan kepada penguji, bahwa "itu mungkin diperbaiki, tetapi perlu lebih banyak perhatian untuk memastikan"?

Sunting: sebagian besar (jika tidak semua) bugtrackers memiliki dua properti untuk status bug, mungkin namanya tidak sama. Dengan statusMaksudku baru, ditetapkan, tetap, ditutup, dll , dan dengan solutionmaksud saya terbuka (baru), tetap, tak terpecahkan, tidak direproduksi, menduplikasi, bukan bug , dll

vsz
sumber
3
Ini agak spesifik untuk pelacak bug Anda. Nilai lain apa yang dapat Anda tetapkan untuk status dan solusi ?
scarfridge
Di beberapa pelacak bug, ada status yang diselesaikan dan status lain ditutup. Hanya orang-orang QA yang diizinkan untuk mengatur status ditutup, tetapi pengembang dapat mengatur status untuk diselesaikan.
Brian

Jawaban:

8

Apakah praktik umum untuk menetapkan status tetap dan solusi terbuka, untuk menunjukkan kepada penguji, bahwa "itu mungkin diperbaiki, tetapi perlu lebih banyak perhatian untuk memastikan"?

Biasa atau tidak, ini adalah hal yang benar untuk dilakukan, dan Anda menjelaskan sendiri: tidak peduli bagaimana, itu adalah pendekatan yang baik untuk

menunjukkan kepada penguji, bahwa "itu mungkin sudah diperbaiki, tetapi perlu lebih banyak perhatian untuk memastikan"


Catatan samping meskipun pelacak bug tertentu tidak memiliki bidang seperti yang Anda gambarkan solution, pengembang setidaknya dapat menambahkan komentar bentuk-bebas yang menjelaskan di atas.

... dan jika pelacak bug tidak memungkinkan untuk menambahkan komentar ke masalah maka itu harus diganti dengan yang tidak. Kemampuan untuk menambahkan klarifikasi bentuk-bebas adalah fitur yang sangat penting karena masalah terlalu beragam untuk masuk ke dalam formulir yang telah ditentukan sebelumnya.

agas
sumber
6

Tim uji akan memutuskan apakah masalah telah diatasi dan apakah itu dapat ditutup. Jika ada lagi regresi, efek samping dari perbaikan, atau jika perbaikan itu sendiri tidak efektif dalam skenario lain, masalah akan dibuka kembali. Tetapi jika Anda telah melakukan cukup pengujian pengembang, maka lebih baik untuk menandainya sebagai sudah diperbaiki.

keunggulan
sumber
+1 - Ini adalah jawaban paling sederhana. Jika Anda telah berusaha paling keras, dan test suite tim uji cukup kuat, apa lagi yang bisa Anda lakukan?
ozz
3

Ada beberapa jenis bug yang sangat sulit untuk diperbanyak, jarang terjadi dan tampaknya acak. Itu bisa terjadi, saya menemukan kemungkinan penyebabnya, memperbaikinya, menguji program, dan tidak dapat mereproduksi bug.

Sebenarnya, jika saya tidak ada skenario pengujian yang dapat direproduksi, saya bahkan tidak akan mencoba untuk memperbaiki bug seperti itu sebelumnya. Jika Anda ingin tester lebih memperhatikannya, beri mereka kesempatan untuk membuat skenario yang dapat direproduksi.

Misalnya, katakan Anda mengubah program, dan seorang penguji menginvestasikan 1 jam untuk mencoba mereproduksi bug, dan bug tidak muncul - apakah satu jam cukup? Atau menguji lebih lanjut buang-buang waktu karena bug sudah diperbaiki?

Di sisi lain, ketika Anda tidak mengubah program, dan bug tidak muncul dalam 1 jam, kemungkinan besar tester harus menginvestasikan satu jam lagi untuk mencoba hal-hal yang berbeda. Dan ketika tester berinvestasi suatu hari dan tidak dapat mereproduksi bug lagi - apakah benar-benar layak untuk memperbaikinya?

Mengatakan itu, Anda dapat berpikir tentang bagaimana Anda memodelkan proses itu dalam sistem pelacakan bug Anda: tidak mencoba untuk memperbaikinya dan menyerahkannya kepada penguji mungkin status bug seperti "terbuka". Jika penguji tidak dapat mereproduksi, itu jelas "tidak dapat direproduksi". Semoga ini tidak terjadi, mereka menemukan skenario yang dapat direproduksi, Anda dapat menemukan akar penyebab bug Anda, memperbaikinya dan mengatur status ke "diperbaiki". Cobalah untuk menghindari masuk ke sesuatu seperti "tidak tahu apakah sudah diperbaiki".

Doc Brown
sumber
4
Untuk jenis bug tertentu, skenario pengujian yang dapat direproduksi sama sekali tidak ada. Misalnya, bug terkait waktu dapat terjadi 1 kali dalam sejuta rata - rata - tetapi tidak mungkin untuk memperkirakan apakah bug tersebut akan berada di jalankan ke-3 atau 532454. Namun demikian, bug tersebut adalah bug dan harus diperbaiki.
Joonas Pulakka
3
@Joonas Pulakka: Saya setuju. Dan bug semacam itu dapat bergantung pada keadaan eksternal. Dalam kasus tertanam, mereka dapat bergantung pada lonjakan daya yang disebabkan oleh sesuatu di luar kendali Anda. Tidak mencoba untuk memperbaikinya tidak selalu merupakan solusi terbaik, terutama jika saya kebetulan menemukan kode bau yang saya duga dapat menjadi penyebab bug itu. Dalam hal ini, mengapa saya tidak memperbaikinya?
vsz
2
@JoonasPulakka: menurut pengalaman saya tentang skenario yang dapat direproduksi, dalam banyak kasus di mana orang mengatakan "itu tidak mungkin", mereka hanya kehilangan ide yang tepat untuk membuat semuanya menjadi mungkin. Dalam contoh Anda, seseorang dapat membuat skenario dengan loop "10 juta jalankan", membuatnya setidaknya sangat mungkin untuk menampilkan bug dalam jumlah waktu yang wajar.
Doc Brown
2
@ vsz: Anda harus memperbaikinya, tentu saja, tetapi apa yang saya sarankan adalah yang pertama harus membuat tes (atau memberi penguji petunjuk apa yang harus diuji), dan kemudian memperbaikinya, bukan sebaliknya.
Doc Brown
2
@DocBrown benar, cara lain untuk memikirkannya adalah bahwa terkadang bug memerlukan pendekatan statistik untuk "mereproduksi" mereka. Mungkin sekali ada set input / keadaan yang sangat spesifik yang mereproduksi bug, tetapi Anda mungkin TIDAK tahu apa input ini dan set input yang mungkin mungkin terlalu besar untuk diulangi. Dalam kasus ini, satu pendekatan adalah mengumpulkan statistik tentang kemunculan bug setiap kali Anda mencoba mengatasinya. Mungkin butuh waktu lama, dan hasilnya mungkin tidak memberi Anda 100% "kepercayaan" dalam arti statistik, tetapi kadang-kadang hanya itu yang Anda miliki.
Angelo
0

Kadang-kadang satu-satunya bukti yang Anda miliki adalah murni statistik, misalnya itu terjadi sekali atau dua kali sebulan, tetapi sebaliknya tampaknya tidak berhubungan dengan apa pun. Ini adalah keseluruhan jenis bug terburuk untuk didiagnosis dan diselesaikan yang pernah saya temui, karena Anda tidak dapat memastikan apakah perbaikan Anda memiliki efek dengan kepastian. Yang terakhir yang harus saya selesaikan diakhiri dengan perbaikan statistik: frekuensi gejala turun menjadi 10% yang kami mulai dengan. Potongan terakhir tidak pernah ditemukan, atau mungkin itu, tetapi tidak ada yang punya cara untuk mengatakannya.

Dua saran yang saya miliki adalah (1) berasumsi beberapa penyebab bisa berlaku sampai Anda tahu sebaliknya, dan (2) berhipotesis bagaimana gejala-gejala itu mungkin ada, kemudian hancurkan setiap baris logika yang bahkan jauh terlibat. Panduan mendalam terkadang merupakan satu-satunya cara untuk mencapai tujuan yang memuaskan.

Chris Cochran
sumber