Başarısız olmadım. Yalnızca işe yaramayacak 10.000 yol buldum.
Thomas A. Edison
Üç şey uzun süre saklanamaz: güneş, ay ve gerçek.
Buda
Tek gerçek bilgelik hiçbir şey bilmediğini bilmektir.
Sokrates
Önce negatif testin benim için ne anlama geldiğini söyleyeyim. Uygunsuz veya uyumsuz senaryolara dayalı her türlü test yürütme faaliyeti olabilir. Bir sistemin düzgün çalıştığını veya çalışmadığını gösterebilir – bu nedenle bu açıdan diğer herhangi bir test faaliyetinden farklı değildir – ancak test eden tarafından gerçekleştirilen eylemlerin türü olumsuz yönde yönlendirilir.
Negatif test tanımının bazı yanlış yorumlarını gözlemliyorum. Elbette her görüşe saygı duyarım, ancak bu test faaliyetinin olumsuzluğu, bazı sistemlerin çalışmadığını gösterme amacından değil, sisteme yaklaşım şeklimizden kaynaklanmaktadır. Bu durumda, test cihazları negatiftir, sistemler değil. Temel olarak geçersiz girdiler giriyorlar veya bazı beklenmedik kullanıcı davranışları yürütüyorlar.
Umarım artık ortak noktadayız. (Olmazsa, yine de fikirlerimi okuyabilirsiniz. En azından fikirlerinizin daha iyi olduğunu kanıtlarlar!)
Bir sonraki konuya geçeyim. İnsanlar, testçilerin doğası gereği karamsar olduğunu söylüyor, ancak senaryoları varsayılan olarak olumlu! Bu nasıl olabilir?
Cevap açık: hepsi test temeli yüzünden. Daha kesin olmak gerekirse, olumlu bir şekilde yazılmış ve hazırlanmış gereksinimleri, analiz çıktılarını, iş süreci diyagramlarını ve işlevsel belgeleri doğal olarak gözlemliyoruz. Mantıklı geliyor çünkü gereksinimlerde doğrudan olumsuz ifadeler beklemiyoruz. Başka bir deyişle, gereksinimler genellikle bize bir sistemin ne yapmayacağından çok ne yapacağını söyler.
Sonuç olarak, test senaryoları, onları yazdığımız temelin doğası gereği olumlu olma eğilimindedir. O halde ne yapabiliriz?
Çalışma ortamımda, insanları test senaryolarının en az yüzde 20-25’ini olumsuz yazmaya teşvik ediyorum. Dürüst olmak gerekirse, bu tür keyfi sayıları sevmiyorum, ancak negatif testlere yeterince dikkat edilmesini sağlamak için bunun gerekli olduğunu düşünüyorum.
Yaşadığım bir olayı anlatayım:
Çok karmaşık bir dönüşüm projesinde, işlevsel testleri bitirmek üzereydik. Birçok hata bulundu ve düzeltildi ve bazı modüller kullanıcı kabul testleri (UAT’ler) için yeterince olgun görünüyordu. UAT aşamasını resmen duyurmadan hemen önce, bazı meslektaşlarım bana bazı yazılı olmayan olumsuz test senaryolarını denerken birçok kusur bulduklarını söylediler.
O ana kadar, herhangi bir olumsuz test faaliyetine ne konsantre olduk ne de teşvik ettik. Ondan hemen sonra, negatif testler hakkında biraz araştırma yaptım ve ilk başta heyecanlanmadım. Bu kadar etkili olamaz dedim kendi kendime.
Ofise döndüğümde, adamlardan bana çalışmalarını göstermelerini istedim. En az sekiz olması gereken bir alana beş karakter girmek, sayısal alanlara harf yazmak, aynı anda birkaç farklı tarayıcıdan sisteme giriş yapmak ve sistem doğrulama/yetkilendirme davranışını kontrol etmek, veri sınırlamalarını kontrol etmek gibi bazı olumsuz senaryolar gösterdiler. ve ek boyutu kontrolleri ve diğer birçok geçersiz eylem.
Açıkçası, tüm test vakaları başarısız oldu! Tek bir koşuda bu kadar yoğun olumsuzluğu görmek gerçekten etkileyiciydi ama gördüğüm şeyler fikrimi tamamen değiştirdi. O andan itibaren, negatif testlerin hayranı oldum.
Ve projeye ne olduğunu merak ediyorsanız, üç ay ertelendi…