Tworzenie oprogramowania komputerowego wymaga wielu godzin kodowania i testowania. Testy te zazwyczaj obejmują wiele poziomów walidacji i weryfikacji między aplikacją a klientem. Nakład pracy na testowanie odnosi się do pełnego zestawu testów, które są wymagane dla oprogramowania. Ten pełny wysiłek zazwyczaj obejmuje testowanie jednostkowe, testowanie systemowe, testowanie wydajności i testy akceptacyjne użytkownika.
Testowanie dzieli się na testy pozytywne lub negatywne. Nakład pracy związany z testowaniem określa, jakiego rodzaju testy będą miały miejsce w fazie testowania. Powinna uwzględniać pełne testowanie wszystkich obszarów aplikacji. Pozytywny przypadek testowy polega na prawidłowym wprowadzeniu danych testowych do systemu. Negatywne przypadki testowe wymagają od testera wprowadzenia złych danych. W przypadku większości aplikacji zazwyczaj zalecana jest kombinacja testów pozytywnych i negatywnych.
Testowanie jednostkowe to testowanie, które odbywa się podczas tworzenia kodu oprogramowania. Ten wysiłek testowy jest wykonywany przez programistów aplikacji. Testy jednostkowe to wstępna faza testowania modułów oprogramowania w programie. Ta forma testowania zapewnia, że system będzie działał bezbłędnie, zanim zostanie wysłany do zespołu testowego w celu sprawdzenia.
Wiele aplikacji na dużą skalę obejmuje testy integracyjne z wieloma systemami zewnętrznymi. Te testy integracyjne to wysiłek testowy mający na celu sprawdzenie integracji aplikacji zewnętrznych. Testy integracyjne są zwykle wykonywane przed testowaniem funkcjonalności, ponieważ pomyślna integracja jest wymagana przed weryfikacją funkcjonalności.
Testowanie funkcjonalności to testowanie, które weryfikuje funkcje systemu zgodnie z zamierzeniami. Ten rodzaj testowania wymaga stworzenia określonych danych testowych, które są wykorzystywane podczas prac testowych. Testowanie funkcjonalności to weryfikacja wymagań do rzeczywistej funkcjonalności aplikacji. Nieprzejście tej fazy testów zazwyczaj oznacza, że system nie zostanie zaakceptowany przez użytkowników.
Testowanie wydajności ma kluczowe znaczenie dla aplikacji, które są zaprojektowane do obsługi tysięcy użytkowników. Ta forma testowania wymaga dużej ilości przetwarzania, zaprojektowanego tak, aby obciążać system aż do całkowitej awarii. Prace testowe powinny obejmować pewne podstawowe testy wydajności. Zapewni to, że system będzie obsługiwać przetwarzanie wielu użytkowników bez awarii.
Testy akceptacyjne użytkownika to kolejna forma testowania weryfikacyjnego systemu. Ten wysiłek testowy obejmuje użytkowników aplikacji, z określonymi testami w celu sprawdzenia funkcjonalności systemu. Testy akceptacyjne użytkownika to kluczowy krok w celu zapewnienia satysfakcji klienta. Ten wysiłek związany z testowaniem zwykle odbywa się pod koniec cyklu programistycznego, przed wdrożeniem aplikacji w środowisku produkcyjnym.