Bir yazılım ürün şirketinde çalışıyorum. Ürünümüzü uygulayan büyük kurumsal müşterilerimiz var ve onlara destek sağlıyoruz. Örneğin, bir kusur varsa, yamalar vs. sunarız. Başka bir deyişle, oldukça tipik bir kurulumdur.
Son zamanlarda, bir müşterinin, kümelenmiş bir ürün uygulamasında eşzamanlı veritabanı erişimi ile ilgili olması gereken bir günlük dosyasında bulunan bir istisna hakkında bana bir bilet verildi. Bu nedenle, bu müşterinin özel yapılandırması bu hatanın ortaya çıkması için kritik öneme sahip olabilir. Müşteriden gelen tek şey onların günlük dosyasıydı.
Ekibime önerdiğim yaklaşım, hatayı müşterininkine benzer bir konfigürasyon kurulumunda yeniden üretmeye çalışmak ve karşılaştırılabilir bir kayıt tutmaktı. Bununla birlikte, yaklaşımı aşırı derecede zaman alıcı olduğu için hatayı çoğaltmaya ihtiyacım olmadığı ve VM'lerde bir sunucu kümesinin simüle edilmesini gerektireceğimi söylemediğime katılıyorlar. Ekibim, iş parçacığı ve / veya güvenli olmayan kodun nerede olduğunu görmek için basitçe "kodu takip etmemi" önerdi ve meydana geldiği çevre gibi bir küme uygulaması olmayan basit bir yerel gelişimden etkilenen değişikliği uyguladı. hatanın kaynağı.
Bana göre, somut, görünür bir tezahürden ziyade soyut bir plandan (program kodu) çalışmak zor görünüyor, bu yüzden genel bir soru sormak istedim:
Teşhis etmeden ve tamir etmeden önce her kusuru yeniden üretmek ve hata ayıklamakta ısrar etmek mantıklı mıdır?
Veya:
Kıdemli bir geliştiriciysem, çok iş parçacıklı kod okuyabilir ve uygulamanın çalıştırılması, farklı kullanım senaryosu senaryolarının test edilmesi ve uygulama aşamasına geçilmesi yerine tüm kullanım senaryolarında ne yaptığına dair zihinsel bir resim oluşturmalı mıyım? kod satır satır? Yoksa bu tür bir çalışma ortamı talep ettiğim için fakir bir geliştirici miyim?
Sissies için hata ayıklama mı?
Kanımca, olay biletine cevaben yapılan herhangi bir düzeltme, orijinal ortama mümkün olduğunca yakın olacak şekilde simüle edilmiş bir ortamda test edilmelidir. Sorunu gerçekten çözeceğini başka nasıl bilebilirsin? Hava yastıklarının gerçekten işe yaradığını göstermek için kuklalarla test etmeden çarpışma yapmadan yeni bir araç modeli çıkarmak gibi.
Son fakat en az değil, eğer bana katılıyorsanız:
Yaklaşımımın makul, muhafazakar ve kurşun geçirmez olduğuna inandırmak için ekibimle nasıl konuşmalıyım?
new
. Ve bu hataların, Java Bellek Modeli spesifikasyonuna uygun olarak, güvenilir bir şekilde tekrarlanabilir olması garanti edilmez