Evreleme ortamında tanımlanmayan üretimde "ince" hatalar bulunur - bu tür sorunlara sahip projelerden birinde bunun çift konular olarak adlandırdığım taktik tarafından oldukça başarılı bir şekilde ele alındığını gördüm. Yani bu tür hatalar için, çocuklar sorun izleyicide iki bilet oluşturdular : biri kodu düzeltmek için geliştiricilere, diğeri ise test ediciyi regresyon testi veya gelecekte tekrarlamayı önleyecek evreleme ortamını tasarlamak ve değiştirmek için atandı. Bu, sahnelemeyi üretecek kadar yakın tutmaya yardımcı oldu.
üretim ortamındaki sorunlar geri alma gerektirir - bunlar sıksa , haftalık sürümleriniz gerçekten sahtedir - frekansı gerçekten işe yarayacak seviyeye ayarlamayı düşünün. By sahte Yani iki haftalık bültenleri söyledikleriyle bir rulo geri kullanıcıların iki haftada bir yeni (çalışma) salınımını karşıya anlamına geliyorsa - bütün bu sayımları, dağıtmak kez değil numarası olan.
heyecanla zorlanan özellik dalları - bu, daha önce bir süre önce, tek dal üzerinde çalışmayı denediğiniz ve daha düşük bulduğunuz anlamına mı geliyor? Evet ise, geri kalanını atlayın. Aksi takdirde, tek dal üzerinde çalışmayı deneyin (gerekirse, ayrıntılar için dallanma stratejisi "geliştirme dalı" veya dallanma stratejisi "kararsız gövde" için google ). Veya, Performce kullanıyorsanız, dallanma ve birleştirme ile ilgili Microsoft yönergelerini arayın. Bunu denedim mi? üzgünüm uygun kelime test edilmelidir : Yani, 1) tek bir dalın şu anda sahip olduğunuzdan daha iyi olup olmadığını nasıl ve nasıl ölçeceğinizi planlayın ve 2) bu durumda ne zaman ve nasıl özellik dallarına geri döneceğinizi planlayın test başarısız .
PS.
Muhtemelen web'de yazılım projeleri risk yönetimi gibi bir şey arayarak bunun gibi daha fazla numara bulabilirsiniz.
Güncelleme
<yorumlardan kopyala>
Sık sık düzeltmeleri kırık bir test hattının belirtisi olarak algılarım - durum böyle değil mi? Her iki durumda da, ops ekibi için daha fazla iş yapmak için düzeltmeleri almak için tekrarlanan sürümlere ihtiyaç duyarlar. Ek olarak, sıcak düzeltmeler genellikle aşırı zaman baskısı altında kodlanır, yani normal çalışmadan daha düşük kalitede olacaktır.
</ yorumlardan kopyala>
- son dakika hot-fixes - yukarıdaki endişeler benim için yanı sıra kırık test boru hattı referans için makul görünüyor. Bu güncelleme ile, yeni kod entegrasyonu Pazartesi günü engellendiğini sizin önceden not kırık biri daha semptomu gibi geliyor (Ben daha hassas kelime olacağını düşünüyorum iddia boru hattı). Çekişme ile şunu kastediyorum: aynı anda iki amaca hizmet etmek için tek dal kullanıyorsunuz: entegrasyon ve serbest bırakma. Serbest bırakma yaklaşımları söz konusu olduğunda, bu iki amaç birbiriyle çatışmaya başlar ve çelişkili gereksinimler için iter: entegrasyon amacı en iyi şekilde sürekli açık dalla ( Erken ve Sık Birleştir ) hizmet edilirken, serbest bırakma kararlılığı dalın mühürlenmesinden yararlanır(izole edilmiş). A-ha bulmaca parçaları eşleşmeye başlıyor gibi görünüyor ...
Bakın, Pazartesi günkü donma, şimdi çelişkili amaçlara hizmet etmek için yapılan bir uzlaşma gibi görünüyor: geliştiriciler yeni kod entegrasyon bloğundan muzdaripken, testçiler bu bloğun çok kısa olmasına maruz kalıyor, herkes biraz mutsuz ama her iki amaca da az ya da çok hizmet ediliyor.
Biliyorsunuz, yukarıda verilen en iyi bahsinizin özel şubeden (entegrasyon hariç) serbest bırakmayı denemek olduğunu düşünüyorum . Bu dal uzun süre entegrasyon gibi mi, yoksa kısa özellik unsurlarınız gibi mi ("özellik" olmakla, iyi, serbest bırakma) - tamamen size bağlı, sadece ayrı olmak zorundadır.
Sadece düşün. Şu anda bir gün, serbest bırakmayı uygun şekilde stabilize etmek için yeterli değil, değil mi? yeni dallanma stratejisi ile, serbest bırakmadan 2 gün önce bir sorun yerine çatal yapabilirsiniz. İki günün bile yeterli olmadığını fark ederseniz, 3 gün önce çatallanmayı deneyin. Şey, serbest bırakma dalını istediğiniz kadar erken ayırabilirsiniz, çünkü bu artık entegrasyon dalına yeni kodun birleştirilmesini engellemez. Bu modelde, entegrasyon şubesini dondurmanıza gerek yoktur - geliştiricileriniz , Pazartesi, Salı, Cuma günleri ne olursa olsun sürekli olarak kullanabilir.
Bu mutluluk için ödediğiniz fiyat, düzeltmelerin komplikasyonudur. Bunlar bir yerine iki dalda birleştirilmelidir (yayınlama + entegrasyon). Yeni modeli test ederken odaklanmanız gereken şey budur. İlişkili olan her şeyi takip edin - ikinci şubeyle birleşmek için harcadığınız ekstra çaba, ikinci şubeyle birleşmeyi unutabilme riskiyle ilgili çabalar - ilgili her şey.
Testin sonunda, izlediğinizi bir araya getirin ve bu ekstra çabanın miktarının kabul edilebilir olup olmadığını öğrenin. Kabul edilebilir ise, işiniz bitti. Aksi takdirde, mevcut modelinize geri dönün, neyin yanlış gittiğini analiz edin ve başka nasıl geliştirebileceğinizi düşünmeye başlayın.
Update2
<yorumlardan kopyala>
Amacım, hikayeleri bir yineleme içinde test edilmiş ve teslim edilebilir hale getirmektir (bir yapılandırma duvarının arkasında veya önünde), bu sadece testçilerin yinelemede yapılan işi test ediyorlarsa (ve önceki yinelemedeki kodu stabilize etmiyorsa) elde edilebilir.
</ yorumlardan kopyala>
Anlıyorum. Bu şekilde doğrudan deneyimim yok, ancak bizimkiyle ilgili bir projede yinelemeli tür testlerinin başarıyla yapıldığını gördüm . Projemiz tam tersi bir yol izlediğinden, bu karşıt yaklaşımlar için yüz yüze karşılaştırma lüksüm oldu.
Benim açımdan, yineleme dışı test yaklaşımı bu yarışta daha üstün görünüyordu. Evet, projeleri iyi gitti ve testçileri hataları bizimkinden daha hızlı tespit ettiler, ancak bir şekilde bu yardımcı olmadı. Projemiz de iyi gitti ve bir şekilde onlardan daha kısa iterasyonlar yapabiliriz ve onlardan daha az (çok daha az) kaymış serbest bıraktık ve yanımızda geliştiriciler ve testçiler arasında daha az gerilim vardı.
Btw onların yanında daha hızlı saptanmasına karşın, biz (ömür giriş arasındaki zamanı aynı ortalama hata ömrünün hakkında sahip başardı düzeltme değil tanıtımı ve algılama arasındaki). Muhtemelen burada bile küçük bir avantajımız vardı, çünkü daha kısa tekrarlamalar ve daha az kayma sürümleri ile, düzeltmelerimizin ortalama olarak kullanıcılara onlardan daha hızlı ulaştığını iddia edebiliriz.
Özetlemek gerekirse, yayın kodunun izole edilmesinin ekip verimliliğinizi artırmak için daha iyi şansı olduğuna inanıyorum.
başka bir düşüncede ...
- sürüm kodlamasının izolasyonu daha iyi şansa sahiptir - yeniden okuma üzerine bunun tekrarlama testini denemekten vazgeçirdiğim izlenimini yaratabileceğini hissediyorum . Yapmadığımı mükemmel bir şekilde ortaya koymak istiyorum.
Sizin durumunuzda yineleme testi yaklaşımı denemek güvenli görünüyor (er ... test ) çünkü bunu nasıl başaracağınızı (pürüzsüz test boru hattı ) ve önemli engelleri açık olarak biliyorsunuz . Ve sonuçta, bu boru hattını doğru yapmak için çok zor bulursanız, her zaman alternatif yaklaşıma geri dönme seçeneğiniz vardır.
BTW engellerle ilgili, bu durumda izlemeye değer ek olanlar , test tarafındaki düzeltmeyi doğrulamak için hatayı geliştirmede ve geç bulmak için geç / geç / geç gibi sorunlar olacaktır . Bunlar , artık düzeltmelerle olduğu gibi boru hattınızı da sıkıştırabilir .