Exploratory Testing ve Süreçleri

Göknur BATI
4 min readMar 23, 2020

Merhabalar;

Manuel test süreçlerinde çoğunlukla kullandığımız, ancak tanım ve süreçleri net olmasına rağmen, çoğu kez kavramsal kargaşaya yol açan exploratory testing (ET) ile ilgili paylaşımda bulunmak istiyorum.

Çalıştığım birçok projede ya ET kavramının bilinmediği ya yanlış tanımlandığı ya da farklı test teknikleri ile karıştırıldıklarına şahit oldum. Test süreci, test ekibi, proje talep durumu değerlendiril- meden test yaklaşımına karar vermek ya da bu faktörler göz önüne alınmaksızın ET uygulamak test sürecinin başarısız sonuçlanmasına neden olduğunu da gördüm.

ET kullanmak için ilk dikkat edilmesi gereken ve analiz edilecek olan durum test ekibinin yeterlilik, yetkinlik ve tecrübe seviyesidir. ET uygulayacak olan test ekibinin hem test süreçlerinde hem de uygulamada yeterli bilgi ve deneyime sahip olması gerekmektedir.

Önemli kritik bulguların hızlı bir şekilde bulunması/tespit edilmesi, başlangıçtaki testler için lead edilen zamanın azalması, planlama ve dokümantasyon için uzun süreler ayrılmaması normal test teknikleri ile belki de bulunması güç, uygulama içerisinde gizlenmiş bulguların ortaya çıkması ET’in bize kazandırdıkları olarak söyleyebiliriz.

Ve tabii ki her test sürecinin hazırlanışı gibi ET sürecini de özel kılan bazı adımlar mevcuttur. Bu adımlara dikkat edildiği sürece daha efektif ve daha kaliteli bir test süreç geçirilecektir. ET test sürecinin tanımlanması, bug taxonomy’nin gerçekleştirilmesi, session bazlı zamanın belirlenmesi, sonuçların gözden geçirilmesi ve raporlanması ET sürecindeki önemli noktalardır. Zaman konusunda session süreleri ve session sayıları belirlenirken, eğer test uzmanları arasında pair bir çalışma söz konusu ise session süresi 90 dakikadan az olmayacak şekilde, eğer bireysel session düzenliyorsak maximum süre 45 dk’yı aşmayacak şekilde düzenlenmelidir.

ET test sürecinde, test sınırlarının belirlenmesinde dikkat edilmesi gereken bir diğer faktör. Neler test edilecek, nasıl test edilecek, test edilirken nelere dikkat edilecek, test edilirken nelere ihtiyaç duyulacak gibi önemli faktörler göz önüne alınacaktır.

Sürecin önemli bir diğer parçası da bug taxonomy’nin oluşturulmasıdır. Burada kök nedenin analizi, risklerin tespit ve geçmiş projelere göre genel bulguların gruplandırılması çok önemli olacaktır. Session sonunda bulguların değerlendirilmesi, test coverage area’nın yapılandırılması mutlaka gereklidir. Ve en son aşamada ET sürecinin raporlanması gerekmektedir. Raporlamada sonuçların yani bulguların derlenmesi gerekli ise, analizlerinin yapılıp eklenmesi, ek bir test sürecine, session’a ihtiyaç var mı, bulguların gruplandırılması (functional, cosmetic, severity) doğru bir şekilde yapılmalıdır. Raporlama sürecinin efektif ve doğru bir şekilde yapılması çok önemlidir. Çünkü ileride departman olarak alınacak bir değişiklik kararında bizlere yol gösterecek önemli bir kaynak olacaktır.

ET’nin kullanılmasında, uygulamanın ve sistemin öğrenilmesi, bulguların reproduce edilmesi, tool ihtiyacı olup olmadığına karar vermek, eğer tool kullanılacak ise doğru tool seçim, dokümantasyonun test koşum esnasında oluşturulması, test çıkış kriterlerinin belirlenmesi ET için zor olan noktalardır.

ET sürecinde dokümantasyon oluştururken mutlaka test coverage, test risk ve test koşum logları, sistem ile ilgili notlar, scriptler muhakkak eklenmelidir. Ayrıca koşum sürecinde nelere ihtiyaç olacağı nedenleri ile not edilmelidir.

ET uygulanırken dikkat etmemiz gereken bazı noktalar mevcut. Bu noktalar, testi daha kaliteli hale getirerek, verimli sonuç almamızı ve işlerimizi kolaylaştırmamızı sağlarken ET sürecini de tam anlamıyla doğru bir şekilde uygulamamızı sağlayacaktır.

Öncelikle uygulamayı, projeyi ya da talebi küçük parçalar haline bölüp, test sürecini kolay yönetilebilir hale getirmeliyiz. Herhangi bir bugfix, bug reporting ya da data hazırlama sürecinde de işi küçük parçalara bölüp, session bazlı çalışmalar yapmak, daha hızlı ve daha düzenli ilerlememizi sağlayacaktır.

ET’in sürecinde yapılacak işlerin test edilecek fonksiyonların bir check-listini oluşturmak hem büyük resmi görmek, hem de herhangi bir noktayı atlamama adına önemli olacaktır. Daha sonra oluşturulan bu check-list maddeleri test planımızda belirterek ve check-list de sessionlara bölerek ilerleyebiliriz.

ET sürecimizi bu şekilde sağlıklı olarak kurguladıktan sonra küçük basit senaryolarla teste başlamak daha doğru olacaktır. Bununla birlikte uygulama için gerekli bütün inputlar, ilk etapta test edilmeli, ve eğer bir sorun varsa fixlenerek teste devam edilmelidir. Muhakkak negatif senaryolar test edilmelidir ve bütün bilgilendirme, uyarı ve hata mesajları kontrol edilmelidir. Uygulamaya ait GUI detaylı olarak dokümana bağlı kalarak incelenmelidir. Burada sayfa kaynağını görüntüleyerek detaylı bir test daha doğru olacaktır.

Tabii ki ET sürecinde de verilen/var olan business logic’e bağlı kalmak ve testleri bunu göz önünde bulundurarak yapmak gerekecektir. Ayrıca uygulamanın diğer uygulama ve sistemler ile entegrasyonu göz önünde bulunmalı ve bu noktaları da ET sürecine mutlaka dahil edilmelidir.

ET sürecini başarılı bir şekilde uygulayabilmek ET’i etkileyen, etkileyecek faktörleri bilmek ve uygun olmadığı noktada ET sürecini değiştirmek için bu faktörleri bilmek önemlidir. Uygun olmayan bir proje, ortam, ekip, …vb ile ET uygulamak başarı ile sonuçlanacak bir projeyi fail ettirebilir.

ET sürecini etkileyecek faktörleri şu şekilde söyleyebiliriz; test stratejisi, testin hedefleri (ve bu hedefleri parçalar halinde ele alınması) kullanılan test araçları ve bunların etkili ve doğru bir şekilde kullanılması, test ekibinin yeterliliği (test uzmanı sayısı, test uzmanı knowhow seviyesi, test tecrübesi), yönetim desteği, kaynak (cihaz…vb) yeterliliği ürünün tanınması, geçmiş test sonuç ve bulguları, test data yönetimi, ayrılan test süresi önemli faktörler arasındadır.

Neyi test edersen et aşk ile test et 😊

--

--