2013 yılı biterken son olarak bu yıl içerisinde yazılım testi ile ilgili bazı noktalar hakkında yazmak istedim. Benim açımdan bir yıl boyunca neler gelişti, neler değişti ve ne gibi değişimleri 2014 yılında görebiliriz. Kısa kısa değinmek istedim.
Testlerin başarını her zaman kontrol etmeliyiz. Zaman-zaman kendimizi özeleştiriye çekmeliyiz ve yapılan hataları, gözden kaçanları, eksiklerimizi tekrar hatırlayarak gidermeliyiz. Mesala mesleğe girerken veya bir süre sonra aldığımız sertifikalarımız uygulama aşamasında gerçekten sektörle ilgili yeterince bilgi ve beceri verebiliyor mu? Veya bizler bu sertifikanın verdiği bilgilerdeki eksiklikleri veya hataları bulabildik mi? Eğer sorulara "evet" yanıtını verebiliyor isek ozaman aslında doğru yoldayız diyebiliriz. Mesala dünyada en yaygın durumda olan ISTQB sertifikalarıyla ilgili bu linkteki açıklamalar hiçte yabana atılacak gibi değil. Sertifikayı veriyosunuz ama testlerdeki değerlendirme kriterleri, içerik, ve testlerin tutarlılığı 3. kişiler tarafından denetleniyor mu? Sorusu gerçekten önemli.
Testler herzaman önemlidir fakat gelişen veya değişen teknolojilerde yeni ürünün testlerini yapabilmek için öncelikle ürünün ne işe yaradığını bilmek gerekir. Yani ürünün fonksiyonlarından bahsetmekteyim bu yüzden aslında genel söylemin ötesinde, gelişen ve "cevikleşen" yazılım dünyasında teknik testlerin daha önemli olduğu kanısı, farklı birşeyi vurgulamak gerekiyor. Teknoloji nereye giderse gitsin fonksiyonel testler herzaman en önemli testlerdir. İyi bir fonksiyonel test için ise iyi bir "test analizi" yapmak gerekir. Yani kısacası testlerin önem sırası: fonksiyonel testler daha sonra fonksiyonel olmayan testler şeklinde kesin bir kanıya varmak mümkündür. Doğru çalışmayan bir ürünün performansından, güvenliğinden veya kullanılabilirliğinden bahsetmek saçma bir yöntem olacaktır.
Peki diğer bir önemli nokta ise "daha iyi nasıl test analisti olunabilir?" bunun cevabının verilmesi gerekebilir. Tabiki analizden bahdesiyor isek bir çok analiz yöntemi var bunları öğrenmekle başlanabilir. Fakat burada en önemli nokta ise "gerçekten test ettiğimiz ürünü tanıyor muyuz?" veya "ürünün bulunduğu teknolojiye nekadar hakimiz?" bu soruları kendimize sormamız gerekecek. Örneğin telekom sektöründe test uzmanı olarak çalışan birisinin iletişim protokollerini bilmemesi o kişinin mesleğine verdiği önemle ile ilgilidir ve böyle bir kişiden nekadar iyi test bekler iseniz okadar hataya düşersiniz. Öncelikle eğitim verilmesi gerekmektedir. Bu tabiki farklı bir alanda test uzmanı olan birisinin telekom alanında test yapamayacağı anlamına gelmiyor fakat yeni ürünü bilmemesi testlerininin başarısını mutlaka etkileyecektir. Bu sebepten nasıl ki ürünü geliştirenler ürünü çok iyi biliyor ise ürünü test edenler de bir okadar ürüne hakim olmalıdır.
Peki bir de alan uzmanları (SME - subject-matter expert), en iyi test uzmanı mıdır? Sorusu akla gelir. Örneğin banka şubesinde yıllarını geçirmiş ve tüm bankacılık süreçlerine hakim bir banka çalışanını geliştirme ortamında test uzmanı olarak kullanılmaktadır. Bu durum çok başarılı test sonuçlarını verir mi? Bu da tabiki hayır. Hiçbir alan uzmanı en iyi testci değildir. Test eğitimi almamış birisinin başarılı test tekniklerini uygulamasını beklemek doğru olmayacaktır fakat süreci baştan-sona başarı kriterlerince (happy path) test etmesi onun için kolay olacaktır.
Vurgulamam gereken özeleştiri noktası ise: teknik testler önemlidir ama fonksiyonel testler başarılı olduktan sonra önemlidir. Bu anlamda daha iyi test edebilmek için ürünü daha iyi öğrenmeliyiz, bununla birlikte şunun üzerine de kafa yormakta fayda var "peki ben bu ürünü geliştirmiş olsaydım nasıl bir tasarım, fonksiyon, sorgu, ... , kullanmak isterdim?" sorusunu sormak gerekir. Yani kendini yazılımcı yerine koymak ve tabiri yerindeyse hataları koklamak gerekir. Bu açıklama aslında "teknik test analizi" ile ilgili cevaplar verecektir. Bir diğer açıdan ise "acaba ben kullanıcı olsaydım böyle bir ürünü nasıl kullanmak isterdim?" sorunu sorarak aslında ürünün "test analizi" ile ilgili bilgiler elde etmiş oluyoruz. Özetle çalıştığınız sektörle ilgili bilgiler toplayın mesala yazılım geliştirici, sistem uzmanı, analistler ve tabiki kullanıcılar hangi teknolojiler kullanıyor, bu teknolojilerin iyi çalışan ve hataya meyilli yanları nelerdir, benzer firmalar ne gibi sıkıntılar yaşamış bu gibi konular üzerine bilgi toplamalı ve sadece başkaları tarafından verilen bilgiler ile teste başlanmamalıdır.
Pek yeni yıl kutlamak adetim değil ama yeri gelmişken "Herkese mutlu, başarılı, hayırlı bir yıl diliyorum".
Pek yeni yıl kutlamak adetim değil ama yeri gelmişken "Herkese mutlu, başarılı, hayırlı bir yıl diliyorum".