Bulduğum ve yamaladığım bir hatayı mı kaydetmeliyim?


68

Bunun yaygın bir durum olduğunu varsayalım: Bazı kodları sınar, bir hatayı bulurum, düzeltir ve hata düzeltmeyi depoya koyarım. Bu projede birçok insanın çalıştığını varsayalım, önce bir hata raporu oluşturmalıyım, kendime atamalıyım ve taahhüt mesajına bakmalıyım (örneğin, "Fix bug #XYZ. Hata, X ve Y nedeniyle oldu. S ve R ")? Alternatif olarak, hata raporunu atlayabilir ve "B olduğunda A'ya neden olan bir hata düzeltildi. Hata, X ve Y'ye bağlıydı." Q ve R tarafından düzeltildi.

Daha iyi bir uygulama olarak kabul edilen nedir?


4
Şirketinizin ve ekibinizin büyüklüğüne ve hatanın özelliklerine bağlıdır. Küçük ve hızlı takımlarda bu sadece gerekli değildir, çünkü geliştirici arkadaşlarınızla sadece onlara bağırarak iletişim kurabilirsiniz. Büyük ekiplerde, büyük organizasyonlarda, dağıtılmış geliştirme ortamında, çalışmanızı günlüğe kaydetmeniz iyi olur, ancak birkaç küçük hata üzerinde çalışıyorsanız üretim seviyenizi düşürecek bir ek yükü de olabilir. Ciddi bir hata olmadığı sürece, her zaman belgelenmesi güzel, regresyondan kaçınmak ve kapanmamak için ünite testinden geçirin.
Machado

15
Bazı hatalar olmadığını unutmayın kalın bir süre onları görmezden eğer kendiliğinden reenkarne - sabit. Birisinin geçen sefer onu nasıl düzeltmeye çalıştığını bilmek değerli olabilir. En azından, kodda ne yaptığınızı ve neden sadece koddaki yorumlarda olsa bile, neden bazı belgeler bulunmalıdır .
alephzero

5
Önceki yorumlara ek olarak, hatanın çılgınca ortaya çıkıp çıkmadığına da bağlıdır, ancak herhangi bir müşteriyle karşılaşamayacak kadar şanslıydınız ya da bir piyasaya sürülme döneminde piyasaya sürülüp çözülmediği konusunda şanslısınız.
whatsisname,

3
Şüphe duyduğunuzda, haykırın. Bana göre hata raporunu açıp kapatmak hiç acı vermedi. Bazı durumlarda, böyle şeylerin belgelenmesi ve resmi olması iyidir.
phresnel

1
@ Alephzero'nun yorumuyla ilgili olarak, yakın zamanda başıma gelen bir şey: Kodun bir bölümünde bir hatayı düzeltmek, başka bir yerde bulunan hataları ortaya çıkardı. Dokunmadığım kısımda istemeden birbirlerini iptal ettiler ve bakıcının ilk içgüdüsü düzeltmemi geri almaktı.
Izkata

Yanıtlar:


71

Bir hata raporunun izleyicisinin kim olduğuna bağlı.

Sadece geliştiriciler tarafından dahili olarak bakılıyorsa, neyin düzeltilmesi gerektiğini bilmek, o zaman zahmet etmeyin. Bu sadece ses.

Zaten kayıt olmamak için nedenlerin ayrıntılı listesi:

  • Sürüm notları, sabit hatalarla ilgili bilgileri (bu hatanın karşıladığı bazı eşiklere) içerir - özellikle bu hatanın maruz kaldığı bir güvenlik açığı varsa
  • Yönetim, "Harcanan hata düzeltme zamanı" / "Algılanan hata sayısı" vb. Kavramlarını istiyor.
  • Müşteriler bugtracker'ın şu anki durumunu görebilir (sorunlarının bilinip bilinmediğini görmek için vb.)
  • Test edenler test etmeleri gereken bir değişiklik hakkında bilgi edinirler.

56
Bir hatanın ortaya çıkması için en muhtemel nokta, daha önce bir hatanın meydana geldiği noktadır. Hemen hemen her senaryoda kaydetmenizi tavsiye ederim.
corsiKa

18
# 4: Test edenler testlerini yönlendirmek için hata izleyiciyi kullanır. Düzeltmenin işe yaradığını ve yeni hatalara ya da gerilemelere neden olmadığını test edecekler.
jpmc26

2
@corsiKa İlaç hastalıktan daha kötü olduğunda? ;-)
hBy2Py

1
@ hBy2Py Yeni bir doktor bulun, sonra kaydedin.
corsiKa

2
@BradThomas, sizin alıntılarınızı yeniden ifade etmek için: "Bugtracker bir TODO listesi olarak kullanılmış ve başka bir şey yok" + "Sabit hata" -> "no TODO". Neredeyse tüm diğer durumlarda aynı fikirdeyim, sen bir rekor istiyorsun
Caleth

52

Diyelim ki ürününüzün böcekle birlikte serbest bırakılıp bırakılmadığına bağlı.

Bulduğunuz hatayla birlikte serbest bırakılırsa, evet, bir hata raporu oluşturun. Serbest bırakma döngüleri genellikle uzun olabilir ve zaten düzelttiğinde hatanın yeni bir sorun olarak bildirilmesini istemezsin.

Senin hatan henüz gelmediyse, aynı yolu izlemem. Şimdi insanlar, henüz yayınlanmadıkları için, aslında zamanlarını boşa harcadıkları için, hatayı tekrar oluşturamayacakları bir hacminiz olacak.


2
Bunun ötesinde, iş öğelerine karşı kod yazıyorsanız, bir ürün sürümünde yapmayan hataları düzeltirken, orijinal iş öğesinde yapılan hatayı düzeltmeyi düşünün.
wablab

24

Bunu, bir müşteri tarafından rapor edilmiş olabilecek bir hataysa yapmanız gerekir. En kötü durum: Hatayı düzeltin, ama kimse bilmiyor. Müşteri hatayı bildirir. Meslektaşınız hatayı düzeltmeye çalışıyor, ancak herhangi bir şekilde çoğaltamıyor (çünkü zaten düzelttiniz). Bu yüzden böceğin kaydını istiyorsun.

Kod incelemesi yaparsanız, bazı kodlar için genellikle kodun yazılacağı ve ardından gözden geçirileceği durumlarda da kullanışlıdır. Bu durumda, bu düzeltmeyi izole etmek daha iyidir, bu da görev listenize bir şey koymak ve ardından tüm işleri yapmak isteyebilir.


9

Bu birkaç faktöre bağlıdır.

Hem Pieter B hem de Caleth cevaplarından bazılarını listeler:

  • Hata resmi bir sürümün parçası mıydı?
  • Onlara harcanan böcek / zamanın sayısı özellikle izleniyor mu?

Genellikle bir sertifikasyonun gereklilikleriyle desteklenen, izlenecek iç prosedürler de olabilir. Belirli sertifikalar için, koddaki her değişikliğin, bir sorun izleyicideki bir kayıtta izlenebilir olması zorunludur.

Ayrıca, bazen önemsiz görünen hata düzeltmeleri bile ilk göründüğü kadar önemsiz ve masum değildir. İlişkili olmayan bir sorunun teslimi için sessizce böyle bir hatayı paketlerseniz ve bu hatayı daha sonra sorunlu hale getirirseniz, bu durum izolatı veya geri dönüşü bile bırakmadan izlemenizi zorlaştırır.


2
Elbette, taahhüt mesajındaki hatadan bahsetmeli ve tercihen, hatayı düzelten değişiklik için ayrı bir taahhütte bulunmalısınız. (Ve belki de ayrı bir çekme isteği veya yama serisi, eğer kendi başına duran bir değişiklikse). Bunun tek istisnası, hatanın bir şeyi farklı bir nedenden dolayı değiştirmenin yan etkisi olarak düzeltilmesiyse olur (ancak daha sonra yine taahhüt mesajında ​​da belirtin). Tek sorun, böcek takipçisi ile uğraşmak, değişikliği tek bir taahhütle başka şeylerle birlikte paketlemek değil!
Peter Cordes

3

Bu soru yalnızca proje lideriniz tarafından veya "bilet işleminden" sorumlu olan kişi tarafından yanıtlanabilir.

Ama bana başka bir yol soralım: Neden olur değil sen yamalı bir hata kaydetmek?

Gördüğüm tek makul neden, hata raporunu doldurma, ona karşı koyma ve kapatma çabasının, hatayı düzeltmek için harcadığı zamandan daha büyük siparişler olmasıdır.

Bu durumda, problem, hatanın düzeltilmesi o kadar kolay değildir, ancak evrak işlerinin çok uzun sürmesidir. Gerçekten olmamalı. Benim için, Jira bileti oluşturmak için ek yük tuşuna basıp c, ardından 1 satırlık kısa bir özeti girip tuşuna basın Enter. Bu açıklama ek yük değil, sayıyı ve sipariş mesajını kesip yapıştırabiliyorum. Sonunda . c <Enter>ve konu kapandı. Bu, 5 tuşa kadar kaynamasına neden oluyor.

Seni bilmiyorum, ama küçük hatalarda bile her hatayı bu şekilde kaydetmeyi politika haline getirecek kadar küçük .

Yararı açık - Jira gibi bir bilet sistemiyle kolayca çalışabilen, ancak kaynak koduyla çalışamayan çok az insan var; Bilet sisteminden oluşturulan raporlar da var, fakat kaynaktan değil. Hata düzeltmelerinizin kesinlikle orada olmasını istersiniz, giderek artan küçük 1-satırlı hata düzeltmeleri akışı gibi olası süreçler hakkında bilgi edinmenizi sağlar, bu da size proses problemleri veya her neyse biraz fikir verebilir. Örneğin, neden sık sık bu kadar küçük hata düzeltmeleri yapmak zorundasınız (sık sık olduğunu varsayarak)? Testlerin yeterince iyi değil mi? Hata düzeltme bir alan değişikliği veya bir kod hatası mıydı? Vb.


2

Benim takip ettiğim kural, üzerinde çalıştığınız bölüm daha önce hiç yayınlanmadıysa ve henüz çalışmadıysa ve hiç bir kullanıcı görmediyse, hızlıca gördüğünüz her küçük hatayı düzeltin ve devam edin. Yazılım piyasaya sürüldüğünde ve üretime girdikten ve bazı kullanıcılar tarafından gördükten sonra, gördüğünüz her hata bir hata raporu alır ve incelenir.

Bir hata olduğunu düşündüğüm şeyin başkası için bir özellik olduğunu buldum. Bu hataları gözden geçirmeden hataları düzelterek, düzeltmek yerine bir hata oluşturuyor olabilirim. Hata raporunda, hatayı düzeltmek için hangi çizgileri değiştireceğinizi ve nasıl düzeltilmesi gerektiği konusundaki planınızı belirtin.

Özetle: Eğer bu modül hiç üretim yapmamışsa, gördüğünüz her hatayı hemen düzeltin ve spesifikasyonları izleyin. Modül zaten üretimde ise, düzeltmeden önce her bir hatayı incelenmek üzere bir hata raporu olarak rapor edin.


1

Evet .


Zaten bir hata raporu oluşturmaya değer olduğu durumları ortaya çıkaran bazı cevaplar var. Bazı cevaplar Ve onlar farklı.

Tek cevap kimsenin bilmediğidir. Farklı insanlar, farklı zamanlarda , konuyla ilgili farklı görüşlere sahip olacaklar.

Şimdi bir hatayla karşılaştığınızda iki çözümünüz var:

  • hata raporu açmaya değip değmeyeceğini düşünmek, belki bir meslektaşın görüşüne sormak ... ve daha sonra, bazı durumlarda, sormadığınız için pişman olduğunuz için pişman olun. sadece onları işaret et
  • sadece rapor oluştur

Rapor oluşturma daha hızlı ve eğer değilse ... otomatikleştirin.


Nasıl otomatikleştirilir? İzleyicinizin komut dosyası kodunu desteklediğini varsayalım, yalnızca arayabileceğiniz ve bir hata raporu göndermek ve derhal "uygulandı" olarak kapatmak üzere bir hata raporu göndermek için izleme mesajını (başlık ve gövde) kullanacak bir komut dosyası oluşturun.


0

Diğer cevapların hepsine iyi kurallar getirdiğine ve bu noktaya dokunacaklarına bile değindiğine katılıyorum, ancak burada gerçekten kesin cevap verildiğini düşünüyorum.

Sadece menajerine sor . Peki, yöneticiniz veya alternatif olarak, grubunuzun nasıl yapılandırıldığına bağlı olarak, proje lideri veya scrum ustası vb.

Hakkında iyi ve kötü uygulamaların birçok farklı sistemi vardır, ancak takımınız için doğru şeyi yaptığınızı bilmenin tek yolu sormaktır.

Bir dakikalık bir koridor konuşmasının satırları boyunca bir şeyler yapacak: "Hey (patron), sadece birkaç dakika süren ufak bir hatayı düzeltirsem, bunun için bir bilet yapmaya değecek mi yoksa taahhüt mesajımda mı söylemeliyim? " ve kesin olarak bileceksin. Dünyadaki tüm iyi uygulamalar, eğer bu yöntem ekibinizi ve yöneticinizi rahatsız ediyorsa işe yaramaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.