Saya mengembangkan program menggunakan perpustakaan yang dibuat oleh programmer lain (dia bekerja di perusahaan yang sama). Baru-baru ini saya menemukan kebocoran di perpustakaan, yang terjadi pada kondisi jaringan tertentu setelah beberapa jam berjalan. Saya mengajukan bug dengan deskripsi kondisi untuk membuat kebocoran ini terjadi. Pengembang itu menjawab bahwa "ini tidak cukup", "itu bukan tanggung jawabnya untuk mereproduksi bug" dan saya harus membuat unit test untuk mereproduksi bug ini, kalau tidak dia tidak melakukan apa-apa.
- Apakah dia benar
- Apa yang bisa saya lakukan dalam situasi ini? Membuat unit test tidak mungkin, karena itu tergantung pada beberapa timing jaringan acak.
teamwork
collaboration
pengguna626528
sumber
sumber
Jawaban:
Apakah dia benar mungkin adalah pertanyaan yang tidak dapat benar-benar dijawab tanpa mengetahui perusahaan Anda. Namun, dia tentu saja tidak terlalu membantu.
Saya akan meningkatkan bug dengannya (yang telah Anda lakukan), jika hal itu menyebabkan masalah dengan proyek Anda, maka saya akan meningkatkannya sebagai pemblokir dengan manajer proyek Anda dan membuatnya sangat jelas bahwa Anda telah meningkatkan bug dengan tepat orang tetapi itu akan berdampak pada proyek Anda jika tidak segera diperbaiki.
Saya juga akan pergi dan berbicara dengan pengembang dan menjelaskan mengapa itu tidak layak untuk membuat unit test tetapi Anda akan senang menunjukkannya di mesin Anda (dengan asumsi itu layak?).
sumber
Ia 100% benar bahwa Anda harus memberikan informasi yang cukup untuk membuat bug dapat direproduksi - jika tidak, tidak ada peluang untuk mengetahui apakah perbaikan yang diberikannya akan benar-benar berfungsi.
Tapi - dia IMHO 100% salah bahwa ini harus dalam bentuk unit test. Jika Anda dapat menggambarkan skenario pengujian sedemikian rupa sehingga ia dapat mereproduksi kegagalan (setidaknya dengan probabilitas tinggi dalam jumlah waktu yang wajar, atau dengan pengujian manual), Anda memiliki bukti bahwa masalahnya ada - yang seharusnya mengatur kolega Anda dalam tanggung jawab untuk memperbaikinya. Tentu saja, jika Anda dapat membuat skenario yang mereproduksi bug lebih cepat, itu akan sangat membantu baginya. Idealnya, seseorang akan membuat tes otomatis dari itu, dan itu tergantung pada organisasi Anda yang memiliki tanggung jawab untuk ini.
sumber
Kedua belah pihak harus berusaha.
Pengembang perpustakaan harus melakukan upaya tambahan bahkan tanpa tes unit, karena beberapa masalah tidak dapat direproduksi dengan tes unit. Kadang-kadang perangkat keras, kadang-kadang beberapa urutan tindakan yang benar dari sisa program yang membuat perpustakaan menghasilkan hasil yang buruk.
Anda harus melakukan upaya tambahan, karena bagaimanapun ini saya tidak menjadi bug di perpustakaan, tetapi hasil dari tindakan yang salah dari sisa program (mis. Tumpukan yang rusak dapat membuat perpustakaan berperilaku aneh). Jadi masuk akal untuk mengurangi sebanyak mungkin kode non-perpustakaan yang terlibat dalam mereproduksi bug. Dan Anda mungkin akan melakukan ini lebih cepat dan lebih bersih daripada orang yang tidak terbiasa dengan kode aplikasi Anda.
sumber
Jika penulis perpustakaan tidak dapat mereproduksi bug berdasarkan laporan Anda, maka tidak masuk akal untuk mengharapkan dia menghabiskan banyak waktu untuk bug itu, apalagi memperbaikinya.
Tetapi Anda juga memiliki jumlah terbatas waktu yang dihabiskan untuk mengerjakan suatu produk yang sesuai dengan minat Anda. Sayangnya, ini mungkin berarti bahwa bug terus ada, dan tidak ada pekerjaan yang dilakukan untuk menyelesaikannya.
Untungnya ini belum tentu menjadi bencana - sementara di dunia yang ideal, semua perangkat lunak akan bebas bug, dan bukan itu masalahnya, jadi kami harus memprioritaskan berdasarkan masalah yang disebabkan AS.
Ini berarti bahwa memang Anda bertanggung jawab untuk mengembangkan test case yang dapat direproduksi JIKA ANDA INGIN MEMPERBAIKI. Anda mungkin tidak peduli apakah itu diperbaiki, dan dalam hal ini, Anda telah melakukan semua yang dapat dan seharusnya diharapkan dari Anda. Anda mungkin ingin memperbaikinya, tetapi tidak cukup mencurahkan waktu untuk membuatnya dapat diulang saat ini. Itu bisa diterima.
Melaporkan bug dengan kemampuan terbaik Anda saat Anda harus mengatasinya adalah kewarganegaraan yang baik, Anda tidak perlu melampaui itu kecuali jika diperlukan untuk program Anda. Dan Anda mungkin tidak ingin melakukannya meskipun begitu, mungkin ada perpustakaan lain yang bisa Anda gunakan, atau dimungkinkan untuk menggulung sendiri dalam jangka waktu yang wajar. Pada dasarnya terserah Anda untuk memutuskan apa dan usaha apa yang layak untuk Anda.
sumber
Aku akan cenderung untuk membiarkan anjing tidur berbaring untuk saat ini - Anda sudah mengangkat masalah ini dan ditugaskan kepadanya. Mungkin ada proses di tempat untuk melacak bug yang luar biasa dan mengejar ini?
Jika Anda ingin secara aktif meningkatkan ini lebih lanjut, saya sarankan berbicara dengan manajer Anda untuk melihat apakah ada alat uji yang tersedia yang dapat mereproduksi masalah dengan andal.
Dari sisi pengembang - akan sangat lamban bagi mereka untuk tidak melakukan apa pun mengingat Anda telah memberikan informasi yang diperlukan. Dimungkinkan namun bahwa mereka memiliki beban kerja yang besar sehingga tidak dapat mencurahkan waktu yang dibutuhkan untuk melacak masalah ini melalui.
sumber
Anda menemukan bug, Anda melaporkannya dan dia menyebalkan tentang itu.
Seandainya kalian berdua teman dekat, dia akan melakukan sesuatu untuk membantu, tetapi dia lebih suka hanya mendorong masalah itu kembali.
Anda dapat melakukan lebih banyak, dengan melaporkan detail lebih lanjut dan mencoba mendukung klaim Anda bahwa itu bocor memori. Namun, Anda memiliki tanggung jawab Anda sendiri dan harus menyelesaikan pekerjaan Anda sendiri.
Masuk sebanyak mungkin informasi ke pelacak bug, dan lanjutkan.
Jika Anda melihat orang ini lagi di masa depan. Bersikap ramah, cobalah untuk berbicara tentang minat bersama dan pahami bahwa hubungan yang baik jauh lebih efektif untuk memperbaiki keadaan, maka sejumlah fakta yang dapat Anda berikan untuk mendukung klaim.
sumber
Seringkali, apa yang saya temui dalam situasi yang serupa adalah asumsi bahwa semua bug harus diperbaiki dan walaupun sangat mengagumkan, itu pasti tujuan yang bagus untuk dimiliki (mari kita hadapi bahwa kita tidak pernah memulai untuk menulis bug!) Itu akhirnya tidak realistis di setiap proyek dengan ukuran yang layak untuk memperbaiki bug hanya karena itu adalah bug (jika Anda dapat menemukannya!) Itu sebabnya kami memiliki manajemen proyek dan metodologi pengkodean, pola & praktik dll.
Jadi, satu hal yang akan saya katakan dalam pembelaan pemilik perpustakaan (dan telah menjadi kasus ketika saya telah mengerjakan beberapa proyek besar) adalah bahwa waktu dev memerlukan biaya dan sumber daya yang terbatas sehingga keputusan mengenai bagaimana sebuah laporan ditangani , siapa yang menyelidiki, tes apa yang dihasilkan / dibutuhkan dan pada akhirnya jika (dan jika demikian, kapan) perbaikan dilakukan didasarkan murni pada dampak bisnis. Apa dampak dari memulai kembali proses lama Anda sesekali jika gagal dan dapatkah Anda dengan mudah mengotomatiskannya (dan mungkin sebaiknya Anda tidak menjadi ukuran pemrograman defensif?) Apakah hanya waktu atau ada yang lebih dari itu ?
Juga melihat dari sudut pandang mereka, laporan bug dari satu pengguna dari masalah tak terduga dalam sedikit kode yang terjadi sangat jarang, hanya dalam hubungannya dengan kode mereka, mungkin hanya pada satu mesin dan hanya di bawah satu set waktu yang tidak biasa kondisi tidak akan memiliki pembenaran yang kuat untuk sejumlah besar waktu dev untuk menemukan dan memperbaiki - jika itu mungkin. Tapi kalau itu kasus bisnis yang cukup kuat untuk itu pengguna ingin / perlu meluangkan waktu untuk menyelidiki lebih teliti dan memberikan handal ujian / aplikasi atau deskripsi masalah secara radikal lebih rinci dari satu awal mereka maka itu bisa menjadi ballgame lain .
Ini mungkin masalah komunikasi yang belum dipertimbangkan oleh pemilik perpustakaan dan jika Anda memiliki kasus bisnis yang kuat (seperti kode Anda mahal untuk bisnis, memiliki persyaratan kepatuhan hukum, celah keamanan atau memiliki beberapa efek knock-on utama lainnya) maka saatnya untuk menendang ke manajemen dan membiarkan mereka berkelahi habis-habisan.
sumber
Anda telah menyebutkan bahwa 'Saya mengajukan bug dengan uraian kondisi untuk membuat kebocoran ini terjadi.'
Jika Anda yakin deskripsi itu benar-benar cukup untuk mereproduksi bug, maka Anda sudah tahu persis kondisinya. Sekarang, jika Anda tidak dapat menulis unit test setelah mengetahui kondisinya, maka itu jelas berarti bahwa Anda tidak dapat mengejek beberapa komponen yang terlibat atau beberapa bagian kode terlalu erat digabungkan untuk memungkinkan untuk membuat unit test praktis.
Anda harus meminta pemilik perpustakaan untuk membuat ulang kode untuk memungkinkan Anda membuat tes unit. Anda harus menjelaskan dengan jelas apa yang ada di perpustakaan yang menghentikan Anda untuk membuat unit test. Dia harus memperbaiki kode jika tidak mengakui bahwa unit test tidak mungkin dengan kode saat ini. Kedua cara, Anda menang.
Jika ini tidak berhasil, berikut adalah opsi yang Anda miliki:
sumber