Znajdziecie tu podstawowe informacje zaciągnięte z darmowej skarbnicy wiedzy zwanej Wikipedia.org
Testowanie oprogramowania – proces związany z wytwarzaniem oprogramowania. Jest to jeden z procesów zapewnienia jakości oprogramowania. Testowanie ma na celu weryfikację oraz walidację oprogramowania. Weryfikacja oprogramowania pozwala skontrolować, czy wytwarzane oprogramowanie jest zgodne ze specyfikacją. Walidacja sprawdza, czy oprogramowanie jest zgodne z oczekiwaniami użytkownika. Testowanie oprogramowania może być wdrożone w dowolnym momencie wytwarzania oprogramowania (w zależności od stosowanej metody). W podejściu kaskadowym zgodnym z modelem V wysiłek zespołu testerskiego zaczyna się wraz z definicją wymagań i jest kontynuowany po zaimplementowaniu zdefiniowanych wymagań. Nowsze metody wytwarzania oprogramowania (np. Agile) rozkładają wysiłek testerski równomiernie na poszczególne iteracje i skupiają się na testach jednostkowych oraz automatyzacji weryfikacji wykonywanych przez członków zespołu.
Testowanie nie jest w stanie wykryć wszystkich defektów oprogramowania, jednak może dostarczyć informacji o jego zgodności z wymaganiami klienta, czy też z jego oczekiwaniami. Trzeba pamiętać, że testowanie nie sprawdza oprogramowania pod kątem wszelkich możliwych warunków początkowych, lecz jedynie w wyselekcjonowanych warunkach. Testowanie może we wczesnych fazach projektu wykryć defekty nie tylko oprogramowania, ale i specyfikacji wymagań czy projektu. Wczesne wykrycie defektu jest ważne z ekonomicznego punktu widzenia, ponieważ gwarantuje niższe koszty jego naprawy. Defekty oprogramowania nie wynikają jedynie z błędów kodowania. Duża część defektów jest wynikiem błędów popełnionych podczas definicji wymagań. Testowanie oprogramowania sprowadza się również do analizy statycznej i testowania wymagań.
Glenford J. Myers(ang.) zaproponował odróżnienie debugowania od testowania w publikacji z 1979 r., chociaż jego uwaga była poświęcona testom na złamanie –
„A successful test case is one that detects an as-yet undiscovered error”,
czyli
„Udany przypadek testowy to taki, który odkrywa dotąd nieznany błąd”.
Zilustrował chęć społeczności inżynierów oprogramowania do oddzielenia podstawowych działań rozwojowych, takich jak debugowanie, od weryfikacji.
Testy możemy podzielić na kilka sposobów
Częstym błędem jest stawianie znaku równości między testami funkcjonalnymi, a testami czarnej skrzynki. Testy funkcjonalne mogą wymagać umiejętności czytania kodu źródłowego, czego nie wymaga się przy testach interfejsów zewnętrznych.
Dodatkowo można wyróżnić testy wykonane w określonym celu:
Testy dzieli się na pięć poziomów:
W testowaniu zdefiniowano kilka standardów, ale żaden z nich nie odgrywa poważniejszej roli w formalizowaniu testowania, ani nie został powszechnie przyjęty za obowiązujący.
Przykładowe standardy w testowaniu:
dział normy zbiera najpopularniejsze i najbardziej znane normy dotyczące jakości i testowania
Standard for Software and System Test Documentation
w których możemy wyróżnić również specyficzne dla oprogramowania komercyjnego testy alfa i testy beta
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sapiente esse necessitatibus neque.
Standard for Software Quality Assurance Processes
Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models
Nr. tel. kom. +48 666 666 666
Nr. tel. stac. +48 58 666 66 66
Nr. fax. +48 58 666 66 66
Adres e-mail: 666@666.pl
Europa, Polska, Gdańsk, 80-666
ul. Testowa 666/666