Deweloper powinien wykonać wstępne testy, abyśmy wiedzieli, że kodowany przez nas kawałek będzie działał tak, jak powinien, zgodnie z naszymi wymaganiami. Więc wykonujemy normalne testy, a także piszemy testy jednostkowe dla napisanego przez nas kodu.
Następnym krokiem jest zadanie kontroli jakości, aby dowiedzieć się, czego programiści nie widzą, gdy piszemy kod. Deweloper myśli na wyższym poziomie, ale użytkownik może nie myśleć na tym samym poziomie. Gdy programista testuje swój utwór i musi wpisać jakiś tekst w polu tekstowym, zawsze może wprowadzić pełny ciąg znaków, myśląc, że zrobiłby to również użytkownik. Może i użytkownik może to zrobić, ale losowo, gdy wpisze w tekście znak specjalny, taki jak% & $ ^, który łamie aplikację, nie wygląda dobrze dla użytkownika końcowego. Deweloper nie może i nie będzie myśleć o wszystkich możliwościach, które mogą się wydarzyć, ponieważ nie jest wyszkolony do takiego myślenia. Jeśli chodzi o kontrolę jakości (tester), zawsze myślą o tym, co użytkownik może zrobić, aby złamać tę aplikację i wypróbować każdą głupią rzecz z książki, nie użytkownicy są głupi, ale nie powinniśmy pozostawiać nic przypadkowi.
Teraz musimy również zrozumieć, że na ogół wykonanych jest więcej niż jeden kawałek w tym samym czasie i oba będą przeznaczone do produkcji. Deweloper mógł przetestować tylko swój kawałek i pomyśleć, że działa dobrze, ale należy przeprowadzić ogólne testowanie regresji dla wszystkich elementów, które są wypychane, a także dowiedzieć się, że połączenie dwóch różnych elementów może zepsuć aplikację i robi to też nie wygląda dobrze. Musimy również wziąć pod uwagę scenariusze testowania obciążenia i inne rzeczy, z którymi testerzy są bardziej zaznajomieni.
Wreszcie musimy przejść przez UAT (test akceptacji użytkownika), aby zobaczyć, czy zrobiliśmy to, czego się spodziewaliśmy. Ogólnie rzecz biorąc, chociaż wymagania przechodzą przez BA, osoba końcowa może nie wiedzieć dokładnie, jak to wygląda i może pomyśleć, że to nie jest to, czego się spodziewali lub może chcieć dodać coś innego, aby poprawić wygląd lub z jakiegoś powodu mogą zeskrobać cały kawałek, ponieważ uważają, że kawałek nie byłby zgodny z dostępną już funkcjonalnością.
Jak wyjaśniono powyżej, są one bardzo ważne i nie mogą być wykonane przez samego programistę i są absolutnie potrzebne, aby aplikacja działała poprawnie. Kierownictwo może powiedzieć, że jest to podejście konserwatywne, ale jest to lepsze podejście. Możemy wprowadzić kilka drobnych poprawek do powyższego, ale nie możemy tego uniknąć w całości.