W czasie tworzenia oprogramowania ważne jest sprawdzanie poprawności na każdym z etapów. W przypadku zaawansowanego oprogramowania tworzonego przez wiele zespołów z pewnością warto testować całość po dołączaniu kolejnego modułu.
Często w firmach znajdują się stanowiska testerów, którzy mogą testować na bieżąco kolejne kompilacje. Kontrola jakości oprogramowania obejmuje wiele zagadnień może być to przetestowania wyglądu aplikacji, jej nawigacji i wszystkich aspektów związanych z obsługą. Większość doświadczonych programistów rozumie, że testowanie oprogramowania nie jest działaniem jednorazowym. Jest to raczej cała strategia i wiele różnych testów na różnych poziomach, które dotyczą różnych aspektów oprogramowania. Trzeba wykonywać także testy krzyżowe, których celem jest ustalenie, czy aplikacja działa tak, jak powinna i czy można oczekiwać. Zasadniczo testowanie oprogramowania ma na celu upewnienie się, że wszystkie koła zębate pracują płynnie i współpracują jak dobrze naoliwiona maszyna. Istnieje wiele podejść do testowania oprogramowania, z których wszystkie są równie ważne w całym procesie. Warto sprawdzić czy aplikacja jako działa poprawnie jako całość. Czy działa zgodnie z oczekiwaniami i wytycznymi klienta. Trzeba sprawdzić jak aplikacja zachowuje się w czasie dużego obciążenia.
Nie jest to jednak kwestia przeprowadzenia kilku testów, istnieje proces dogłębnego testowania oprogramowania, który polega na zdiagnozowaniu odpowiednich przypadków testowych, upewnieniu się, że obejmuje ono odpowiednie funkcje.
Można stworzyć kilka grup testerów mogą być to doświadczeni programiści, którzy wiedzą które elementy oprogramowania mogą najczęściej powodować błędy. Z drugiej strony mogą potrzebni być laicy, którzy nie do końca znają się na wszystkich aspektach oprogramowania. Wykorzystanie obu tych grup będzie istotne. Z pewnością testy oprogramowania mogą odzwierciedlać zachowania zwykłych użytkowników, którzy przykładowo mogą popełniać błędy i dopiero uczyć się obsługi programu. Na podstawie ich doświadczeń można sprawdzić czy oprogramowanie jest przyjazne dla użytkownika. Będzie to dość istotne przykładowo dla procesu wdrażania oprogramowania u klienta.