Bölüm 4) Test aşamasına geçiş
Geliştirme süreçlerinde özellikle yazılımın kodunun paylaşılması ve gözden geçirilmesi yazılımın kararlılığı açısından önemlidir, söz dizimi kurallarından, problemlerin çözümleri için izlenen yollara kadar, yazılımın gözden geçirilmesi gelişim sürecinin ve büyümenin bir parçasıdır. Özgür yazılımlar kamu'nun desteği ile bu problemleri geniş bir zamana yayarak geliştirme süreci ile aynı anda yapmaktadır, ancak eğer uygulamanız kamuya açık değil ise bu süreç için kaynak ve zaman ayırmalısınız. Bu ayrılan zaman gözünüzde zaman kaybı olarak görülebilir ancak hata tespiti ve düzeltmesi süreçlerini hızlandırdığı bir gerçektir, dolayısı ile zaman kaybı değil bir kazançdır.
Uygulamaların geliştiriciden çıkıp son kullanıcıya ulaşma süreci bir dizi işlemi de yanında getirir bunlar; test, bugfix, ve kurulum işlemleridir. Buradaki en zor işlem ise kaynak kodun "derlenerek" test veya ürün sistemine girmesidir. Genel olarak bu işlem 3 adım içermektedir, depodan testi yapılacak uygulamanın kaynak kodunun alınması, paketlenmesi, test sistemine kurulması.
En çok hata ise kurulum sırasında yaşanmaktadır. Tüm bu süreçleri otomatikleştirmek ve tek bir noktadan yönlendirmek, kaynak kodun ürün sistemine girerken kurulum aşamasında yaşanan problemlerin önüne geçecektir.
Geliştirilme yapılan deponun depo yöneticisi veya sürüm yöneticisi tarafından dondurulması sonrasında kaynak kod içerisinde yer alan derlenmesi gereken uygulamalar derlenmeli, oluşan kütüphane ve dosyalar paketlenmeli ardından test sistemine gönderilerek paketin kurulması işlemleri tek bir buton'a tıklama ile veya bir komut çalıştırılarak yapılabilmelidir.
Bu sistemin oluşturulması ve tasarlanması tamamen uygulamaya bağımlıdır, sadece web sayfası için, örneğin geliştiricilerin yazdıkları javascript dosyaları birleştirildikten sonra minifiy edilmesi, css dosyalarının minify edilmesi işlemleri gibi. Günümüz koşullarında bir web uygulaması basit bir web sayfası olmaktan çıkmış yüzlerce ve hatta binlerce bilgisayar tarafından işlenen verilerin biz kullanıcılara anlaşılır bir dil ile gösterilmesi haline dönüşmüştür. Bu noktada sadece web arayüzü için bir script dili değil, arka planda çalışan pek çok farklı dil ile hazırlanmış uygulama söz konusudur. Bu uygulamalarında derlenerek sırası ile paketlenmesi, test sistemine kurulması ve ardından ürün sistemine aktırılması gerekmektedir. Uygulamanın paketlenmesinden kastım, örneğin sisteminizde linux kullanıyor, dağıtım olarak ise debian seçmişseniz tüm kaynak kodun derlendikten sonra deb paketi haline getirilmesidir. Böylece kurulum öncesinde veya sonrasında yapılması gereken işlemler paket yönetim sistemi tarafından yapılacaktır. (örneğin kurulum sonrası cache sisteminin temizlenmesi)
Test ortamı üzerine kurulan yeni uygulama sadece hata düzeltmeleri içerebildiği gibi yeni özelliklerde içerebilir. Test takımı bu değişikliklerin neler olduğunu hata yönetim sistemi üzerinden bilgilendirildikten sonra test etmeli, bulunan hatalar hata takip sistemi üzerinden geliştiricilere bildirilmelidir. tespit edilen hatalar geliştirici takım tarafından düzeltildikten sonra tekrar test takımına teslim edilmeli ve her hangi bir hataya rastlanmamış ise ürün sistemine geçiş süreci başlatılmalıdır.
Uygulama geliştiricileri her ne kadar unit test yazmaktan pek fazla hoşlanmasa da, bu unit testler sayesinde uygulamanın test ortamından ürün ortamanına geçişini hızlandırabilirler, ve eğer bir geliştirici iseniz emin olun unit testler sayesinde proje lideriniz yazılım hataları konusunda başınızı ağrıtamayacaktır