Çok büyük bir internet şirketinde sürüm yönetimi ekibinde çalışıyorum. Esasen yukarıda özetlediğiniz süreci kullanıyoruz ve bu işlemi bilerek seçtik. Metodolojimizde, evreleme, üretimde son bir test seviyesi için bir dallanma mekanizması işlevi görür.
Üretime gitmeden önce tüm testleri yapmak istersiniz, ancak çok sayıda kullanıcıyla geniş, karmaşık bir ortamda, bu ulaşılması çok zor bir hedeftir. Özellikle, test yazılımını KG'ye yeterli şekilde yüklemek neredeyse imkansızdır. Fonksiyonel testi otomatikleştirmek yük testinden çok daha kolaydır. Sunucularınıza isabet eden binlerce kullanıcı olduğunda, işler garip ve tahmin edilmesi zor bir şekilde başarısız olur.
İşte yaptığımız şey:
- gelişme
- sürekli entegrasyon ve otomatik test içerir
- sürüm testi
- grubum sürümün kendisini analiz ediyor
- yükleme günlüklerini gözden geçirme
- test geri alma
- QA
Evreleme ve üretim arasında daldığımız nokta budur. Birkaç haftada bir başlayan yeni bir trenle, sürümler için bir tren modeli kullanıyoruz. Numaralı trenler bile (üretimde olan) evreleme sunucularına gider. Tek numaralı trenler bunu yapmaz.
Eşit trenler arasında, geliştiriciler hazırlama sunucularına bireysel değişiklikler gönderme yeteneğine sahiptir ( bu değişiklikler elbette KG tarafından test edildikten sonra ). Bu, yazılımlarının gerçek bir üretim ortamında beklendiği gibi çalıştığını doğrulamalarını sağlar. Bu genellikle daha yüksek riskli olduğu düşünülen bileşenler için ayrılmıştır, her küçük parçayı sahnelemeye itmiyoruz.
Daha sonra, herkes bir sonraki tren başladığında, hazırlama sunucularında ne olduğunu sileceğini ve onları tekrar tren taban çizgisine ayarlayacağını anlar. Geliştiriciler, değişikliklerinin trene bindiğinden emin olurlar veya henüz genel kullanıma hazır olmadıklarına karar verirler, bu durumda bu değişiklikler hazırlama sunucularında silinir.
Özetle, kısa cevap (en azından bizim için) KG'deki karmaşık sistemleri tamamen test etmenin imkansız olmasıdır. Evreleme, sınırlı üretim testi yapmak için güvenli bir yol sağlar.
İlgili bir notta, yayınlama sürecimizin nasıl çalıştığına dair verdiğim bir sunumdaki slaytlarım .