Test Edilebilirlik
Rob Meany en basit anlamıyla test edilebilirliği, herhangi bir şeyi test etmenin ne kadar kolay olduğu anlamına geldiği şeklinde tanımlar. Test edilebilirlik düşük olduğunda, geri bildirim yavaşlar, testin kalite ve derinliği azalır. Bu durum da maliyet artışına, motivasyon düşüklüğüne ve ürün kalitesinin düşmesine neden olur. Test edilebilirliğe odaklanmak daha hızlı geliştirme, daha kapsamlı test ve daha emin adımlarla ilerlenen bir otomasyon yaklaşımı sağlar.
Bu doğrultuda organizasyonların test yeteneklerini belirleyen tüm faktörlerin tanımlanmasına yardımcı olmak içi test edilebilirliğin 10 P’si modeli esas alınır.
1- People
Takımı oluşturan kişilerin ortak hedefi kalite olmalıdır. Kişiler, kaliteli bir iş üretmek için yeterli bilgi ve beceriye sahip olduktan sonra ortak bir bakış açısı oluşturabilirler.
Bu noktada ortak bir anlayışın benimsenmesi önemlidir. Ekibin her üyesi motive bir şekilde yüksek kalitede ürün çıkarmaya odaklanmış olmalıdır. Kalitenin tüm ekip üyelerinin sorumluluğunda olduğu bilinmeli, testin kritik derecede geri bildirim sağladığını ve bunun değerli olduğu benimsenmelidir. Bu doğrultuda işlevini gerçekleştiren bir ekip daha iyi test etmeyi kolaylaştırmak için çaba gösterir, geri bildirim süresini kısaltır ve hataları bulmaktan çok önlemeye yönelik çaba sarf eder.
Ekip üyelerinin, gerekli olan her türlü beceriye ihtiyacı vardır. Herkes ortaya uzmanlıkları çerçevesinde farklı yeteneklerini koyarken aynı zamanda her üyenin risk analizi, keşif testi, entegrasyon ve uçtan uca testleri gerçekleştirmek için gerekli beceri ve deneyime sahip olması gerekmektedir.
Ekip üyelerinin test edilen sistem hakkında gereken teknik bilgi ve hakimiyete sahip olmaları gerekmektedir.
Ekipte içerisinde kalite, tek bir kişinin sorumluluğunda değildir. Ortak bir kalite vizyonu vardır. Kaliteyi oluşturmak, testleri kolaylaştırmak ve ekibin hatalı, eksik bir çalışma durumu varsa bunu iyileştirmek için birlikte çalışıp birlikte hareket etmesi gerekir.
2- Philosophy
Ekibin felsefesi, ekibin kendi arasında, iş ve müşteri arasında iş birliğine dayalı ilişkiler kurarken kalite yaklaşımı ile tüm ekibi teşvik eder.
Kalite tüm ekibin sorumluluğundadır. Ekibin tüm üyeleri riskleri tanımlar ve bunları azaltmak üzerine aksiyon alır. Mimari açıdan karar aşamasında test edilebilirliği dikkate alır ve bunun üzerine birlikte çalışır. Hataların çözümlenmesini önceliklendirir, müşteriyi etkileyebilecek durumları mümkün olduğunca daha fazla öğrenerek bunları önlemeye yönelik çalışır.
Ekip üyeleri test etmeyi ve otomasyon görevlerini kolaylaştırmak, birbirlerine yardımcı olmak için kodda değişiklik yaparak beraber çalışır. Ayrıca her ekip üyesi, müşteri ihtiyaçlarını daha iyi anlamak ve net sonuçlar çıkarmak için düzenli bir şekilde müşteri ile görüşmeler düzenleyerek iş birliğine dayalı ilişkiler kurar.
3- Product
Ürün, geliştirme aşamalarının her seviyesinde testi ve otomasyonu kolaylaştıracak biçimde dizayn edilir. Test edilebilir ürün dizayn etmek ürünün sınırlarıyla ilgili daha geniş bilgi almamızı sağlar.
Ekip üyeleri, incelemek istediği senaryoları, durumları hızlı ve kolay bir şekilde kurabilir, sistemin istenildiği gibi çalışıp çalışmadığı hakkında değerlendirme yapabilir.
4- Process
Süreç, ekibin riski tanımlamasına, test edilebilir küçük parçalara ayırmasına yardımcı olur. Sürdürülebilir biz hızda çalışmayı sağlarken test borçlarının birikmesini engeller.
Ekip üyeleri, riskleri azaltabilmek için riskleri mümkün olduğunca erken belirmeye odaklanır.
Ekip, neyin yapılması gerektiğine dair ortak bir anlayış, bakış açısı oluşturmak için birlikte çalışır, işi açık ve anlaşılır kabul kriterleri belirlenmiş test edilebilir küçük parçalara böler.
Ekip, bir sonraki iterasyona test borcuyla birlikte geçmemek için yapılması gereken tüm test faaliyetlerinin tamamlandığından, bulguların üzerinden geçildiğinden emin olmak için birlikte çalışırlar.
Ekip yeni bir işe geçmeden önce her bir parçanın yeterli derecede test edildiğini birlikte doğrular. Fazla mesai ve mesai saatleri dışında çalışma önerilmez.
5- Project
Testleri kaliteli ve doğru biçimde yapmak için ekibe kaynak, zaman ve bağımsızlık sağlanır.
Ekip, tanımlanan riskleri azaltmak için gerekli görülen tüm test faaliyetlerini zaman baskısı altında kalmadan tasarlar, hazırlar ve bu faaliyetleri gerçekleştirir.
Ekip, test hedeflerine ulaşmak için gerekli kaynaklara yani; detaylı teknik bilgiler, test verileri, test araçları, gerekli alt yapı gibi imkanlara sahip olmalıdır.
Ekibin test zorluklarına karşın kendi çözümlerini üretebilmesi ve yaratabilmesi için bağımsızlık verilir.
6- Problem
Ekip, çözülen herhangi bir sorunu derinlemesine anlayarak aktif olan bu riski doğru tanımlayıp analiz eder ve azaltır.
Ekip üyelerinin her biri, müşterinin kim olduğunu, neye değer verdiğini, yaşadıkları zorlukları, ihtiyaçlarını ve hedefleri konusundaki bakış açılarını sürekli olarak takip edip güncellemektedir. Bu bilgi her zaman potansiyel tehditlerin daha iyi tanımlanmasını ve ekibin doğru çözüme ulaşmasını sağlar.
Ekip, doğru risk analizlerini yaparak, bir hata oluştuğunda potansiyel etkilerini göz önünde bulundurmalarına ve bunları en uygun teknikleri kullanarak azaltmalarına olanak tanıyan bir anlayışa sahiptir.
7- Pipeline
Ekibin pipeline’ı, yapılan her değişiklik sırasında herhangi bir ortamdan canlı ortama doğru ilerlerken, bu değişiklik hakkında hızlı, güvenilir ve erişilebilir bir geri bildirim sağlar.
Ekip üyeleri, çeşitli otomasyon testleriyle geniş bir test kapsamının sağlandığından, fonksiyonel etkilerinin tespit edildiğinden, güvenilir ve zamanında geri bildirim sağlandığından emin olmalıdır.
Ekip, gelen talep üzerine canlı ortama benzer bir ortamda yapılan değişiklikleri uygulayarak çeşitli test faaliyetlerini gerçekleştirebilir.
8- Productivity
Ekip, riskleri doğru tanımlayıp, azaltmak için farklı test tekniklerini kullanarak bütünsel bir yaklaşım belirlemek için birlikte çalışır. Hataları olabildiğince hızlı keşfetmek için entegrasyon, uçtan uca, keşif veya işlevsel olmayan testlerin bir kombinasyonunu kullanır. Bu yaklaşımlar günlük loglama, monitörleme, uyarı sistemi ile desteklenir.
Ekip, otomasyon veya manuel test görevlerini test edilebilir küçük parçalara böler ve paydaşlara mümkün olabildiğince erken geri bildirim sağlar.
9- Production Issues
Ekibin müşteriyi etkileyen çok az sorunu olmalıdır. Herhangi bir sorun oluştuğunda hızlıca çözümü bulunup düzeltilmelidir.
Ekip, hataların müşteri etkilenmeden önce bulunup çözülmesi sağlayan veya hatanın önlenmesini sağlayan bir test stratejisi kullanır.
Eğer sorun tespit edilirse hatanın nedeni hemen bulunarak çözümü sağlanır. Çözülen hataların bir daha müşteriyi etki etmemesi için gerekli çalışmaları yapar ve gerekli önlemleri alır.
10- Proactivity
Ekip, hatalarından ders çıkarır ve yeni araç ve teknikleri kullanarak pro-aktif olarak test yaklaşımlarını sürekli iyileştirmeye çalışır.
Ekip, test yaklaşımının ne kadar etkili olduğunu sürekli olarak değerlendirir. İyileştirme gereken durumlar var ise bunlar üzerine tartışarak hızlıca aksiyon alır.
Tüm ekip, süreçlerde herhangi bir eksiklik, boşluk, hatalı uygulama var ise tespit edip, üzerinde çalışılarak bir daha oluşmaması için aksiyon planlarının oluşturulması sağlar.
Ekibin her üyesi, test araçları ve teknikleri konusunda bilgi edinmeye teşvik edilir ve ekibe fayda sağlayabilecekleri yeni fikirlerin denenmesi konusunda desteklenir.