Geliştirici ilk testini yapmalıdır, böylece kodladığımız parçanın, ihtiyaç duyduğumuz şartlara göre çalışması beklendiği gibi çalışacağını bilmeliyiz. Bu yüzden normal sınamayı yaptık, yazdığımız kod için Birim Sınamalarını yazdık.
Bir sonraki adım, QA'ların, geliştiricilerin kodu yazarken ne göremediklerini bulma görevidir. Bir geliştirici daha yüksek düzeyde düşünüyor, ancak kullanıcı aynı seviyede düşünmeyebilir. Geliştirici parçasını test ederken ve bir metin kutusuna bir metin girmek zorunda kaldığında, kullanıcının da bunu yapacağını düşünerek her zaman tam bir dize girebilir. Kullanıcı da yapabilir, ancak rastgele, metinde% & $ ^ gibi özel bir karakter girdiğinde ve uygulamayı sonlandırdığında son kullanıcıya iyi görünmüyor. Bir geliştirici, bu şekilde düşünmek için eğitilmediği için olabilecek tüm olasılıkları düşünemez ve düşünmeyecektir. Bir Kalite Güvence (test cihazı) söz konusu olduğunda, her zaman kullanıcının bu uygulamayı kırmak için ne yapabileceğini düşünür ve kitaptaki her aptal şeyi dener, kullanıcılar aptal değildir, ancak hiçbir şeyi şansa bırakmamalıyız.
Şimdi ayrıca aynı anda yapılan birden fazla parçanın olduğunu ve her ikisinin de üretime gireceğini de anlamalıyız. Geliştirici yalnızca parçasını test edebilir ve iyi çalıştığını düşünebilirdi, ancak itilen tüm parçalar için genel regresyon testi yapılması ve iki farklı parçanın kombinasyonunun uygulamayı bozabileceğini ve ya iyi görünmüyor. Ayrıca, yük testi senaryolarını ve test uzmanlarının daha fazla tanıdığı diğer şeyleri de göz önünde bulundurmalıyız.
Sonunda, yaptığımız parçanın beklenenin ne olduğunu görmek için UAT (Kullanıcı Kabul Testi) yapmamız gerekiyor. Genel olarak gereksinimler BA'ları yerine getirse de, nihai kişi nasıl göründüğünü tam olarak bilemeyebilir ve beklediklerinin olmadığını düşünebilir veya daha iyi görünmesi için başka bir şey eklemek isteyebilir ya da bir nedenle hurdaya ayırabilirler. Parçanın, mevcut işlevsellik ile birlikte olmayacağını düşündükleri gibi.
Yukarıda açıklandığı gibi, bunlar çok önemlidir ve yalnızca geliştirici tarafından yapılamaz ve uygulamanın iyi çalışması için kesinlikle gereklidir. Yönetim bunun muhafazakar bir yaklaşım olduğunu söyleyebilir, ancak daha iyi bir yaklaşımdır. Yukarıda belirtilenlere biraz tweaks yapabiliriz ancak bir bütün olarak kaçınamayız.