Bilişim Dünyası 14 KASIM 2015 / 11:50

QA Test Süreçleri

Günümüzde, şirketlerde kayda değer düzeyde mali ve teknik maliyet oluşturan, planlanmış test süreci eksikliği, çevik ekiplerin karşılaştığı önemli sorunlardan biridir. Çevik ekipler, yenileme ve güncellemeler sırasında, test araçlarının yetersizliği, yanlış test koşma döngülerinin kullanılması ve bu döngülerin çevik test ihtiyaçlarından farklı bir zihniyet çerçevesinde gerçekleştirilmesi nedeniyle zorluklar yaşamaktadır. Sonradan fark edilen bu hatalar geri alınamaz sonuçlara yol açarken, üretim ortamlarına verilen zararlar da hem mali kayıplara hem de kullanıcı kayıplarına yol açmaktadır.
Sonuç olarak, kalite analistlerinin (QA'ler) çoğu, test işlemlerini hızlandıracak, QA'lerin çok daha verimli olan Exploratory Test pratiklerine daha fazla zaman ayırabilmesini sağlayacak ve 'insan hatası' olasılığını ortadan kaldıracak test otomasyon sistemlerine odaklanmaya başlamıştır. 
Test otomasyonunun amacı, test sisteminin oluşturulması ve sürdürülmesi sırasında yinelenen tüm faaliyetleri otomatik hale getirerek üretim sürecinin başından sonuna kadar kalitenin korunmasını sağlamaktır. Test otomasyonunun sadece kendi kendilerine sürdürülebilen fonksiyonel testleri ifade ettiğine dair bir yanlış kanı bulunmaktadır; bu tamamen yanlış bir düşünce olmasa da eksiktir; test otomasyonu, aynı zamanda performans testleri, kullanılabilirlik testleri, güvenlik testleri gibi fonksiyonel olmayan işlemleri de içermelidir. Ancak test otomasyonunun yanlış kullanımı, çevik ekiplerin bu süreçten beklentilerinin tamamen karşılanmasının önüne geçmektedir.
Test otomasyonundan mümkün olan en üst düzeyde fayda elde edebilmek için, büyük ve maliyetli test suitlerine yatırım yapmaktansa, QA'lere yatırım yapmak daha akıllıca bir seçim olacaktır. QA, geliştirme safhaları hakkında bilgi sahibi ve proje için doğru test planının geliştirilmesi ile otomatik hale getirilmiş testler oluşturulması konusunda yetkin olmalıdır.
Otomatik testlerin bakım maliyetinin azaltılması ve otomatik testlerin kalitesinin artırılması için temel gereksinimler; anlaşılabilir kodlar ile doğru tasarım şablonlarının kullanılması ve iş birimi isteklerinin uygun şekilde belirlenmesidir. Hataların üretim sürecine ulaşmadan tespit edilmesi için bu otomatik testlerin, Continuous Delivery Pipeline’da doğru noktalarda çalıştırılması büyük önem taşımaktadır; aksi takdirde, test otomasyonu yanlış kullanılan, zaman alan kod yığınlarından ibaret olacaktır. Test otomasyonunun bir amaç değil ancak gerçek amacımız olan kaliteli ve çalışan bir yazılıma ulaşmak için bir araç olduğunu aklımızdan çıkarmamamız gerekir.
Bu Pipeline, aynı zamanda kod kalitesinin her zaman korunmasını sağlamak üzere geliştiriciler tarafından sunulan doğru birim testlerini de içermelidir.
Yukarıda bahsi geçen tüm bu disiplinler biraraya geldiğinde, Continuous Delivery - Test Pipeline adı verilen üstün bir uygulama ortaya çıkmakta.
 
QA'ler, aynı zamanda çevik bir test zihniyetine sahip olmalıdır. Çevik ekiplerde düşük performans görülmesinin en sık gözlemlenen nedenlerinden biri de Waterfall modeli çevresinde şekillenmiş bir QA zihniyetidir. Çevik bir QA, bir proje sırasında birçok farklı rol üstlenmelidir; bazı durumlarda QA'ler tester olarak görülmektedir ancak görevleri ürünü test etmekten çok daha fazlasıdır. Çevik QA'lar, şelalenin ucunda kaleci gibi görev yaparak yazılım işlevlerini test etmek yerine, geliştirici olarak görülmeli ve otomatik testler geliştirerek tüm ekip ve gelişim sürecinin kalitesini ve test edilebilirliğini garanti eden bir elçi ve herhangi bir hatanın üretim sürecine ulaşmasını önlemek için bir 'gözlemci' olabilmelidir.
Özetle, test otomasyonu ve çevik testler tüm çabaların boşa gidebileceği karmaşık bir süreç haline gelebilir. Kaliteli yazılım sunabilmek için temel gereksinimler doğru zihniyetin benimsenmesi ve doğru disiplinlerin uygulanmasıdır. 
 
Yiğit Han Yılmaz
yyilmaz@thoughtworks.com
 
ETİKETLER : 1046