Diyelim ki uygulamanızı her dağıttığınızda manuel olarak test etmek istiyorsunuz. Bunu nasıl yapardın?
Başlangıç olarak, test etmek istediğiniz tüm şeylerin bir listesini oluşturabilirsiniz, böylece daha sonra bir şeyi test etmeyi unutmazsınız. Sonra muhtemelen her seferinde aynı şekilde yaptığınızdan emin olmak için her testin adımlarını yazabilirsiniz. Kullandığınız test işleminin tutarlı olduğundan emin değilseniz, sonuçlarınız tutarlı olmaz.
Böylece, gerçekleştirmeniz gereken testlerin listesine sahip olduğunuza göre, tarayıcınızı açar, ilk testin adımlarını okur, gerçekleştirir ve sonucu not edersiniz. Listenizdeki her test için bu işlemi tekrar edersiniz.
Uygulamanız büyüdükçe ve yeni hatalar bulduğunuzda yaptığınız testlerin sayısı artmaya devam edecektir. Elbette, bu testleri insan hızında yapmakla sınırlı kalacaksınız, bu da onları oldukça yavaşlattı.
Buradaki ironi, mekanik olarak bir operasyonlar listesine adım atarak, hesaplama yaptığınızdır. Bunu bir bilgisayarın yapabileceğinden çok daha yavaş yapıyorsunuz.
Bu, diğer pek çok iyi nedenden ötürü, birim testleri yazmamızın nedeni: bilgisayarın hesaplama işlemini yapmasına izin vermeleri ve böylece yapmanıza gerek yok.
Dağıtımdan önce haftada sadece bir kez değil, geliştirme sırasında sık sık kullanmak için yeterince hızlı kapsamlı bir birim test paketi çalıştırabilirim. Bu, hataları daha hızlı tespit etmeme ve zamandan ve paradan tasarruf etmemi sağlar.
Hatta sistemin davranışını tahmin eden testler yazabilir ve daha sonra Test Güdümlü Geliştirme olarak bilinen bir süreç olan (zaten doğru olduğunu bildiğim için zaten doğru olduğunu bildiğim) bu davranışı yazabilirim.