Definicja wąska: testowanie jest sprawdzeniem poprawności i zgodności implementacji oprogramowania z założeniami spisanymi w formie dokumentacji lub też z założeniami zlecającego wytworzenie oprogramowania.
Definicja szeroka: testowanie jest zapewnieniem poprawności i zgodności implementacji oprogramowania z założeniami spisanymi w formie dokumentacji lub też z założeniami zlecającego wytworzenie oprogramowania poprzez sprawdzenie poszczególnych, lub wszystkich produktów i półproduktów procesu wytwarzania oprogramowania.
Definicja wąska wpada więc do koszyka definicji szerokiej uwzględniając testy jedynie końcowego produktu oprogramowania. Definicja szeroka jest już znacznie bliżej definicji zapewnienia jakości w procesie wytwarzania oprogramowania (ang. Software Quality Assurance). Zakładamy jednak, że istnieje pewna ważna granica oddzielająca te dwa zestawy czynności. Testowanie oprogramowania zapewnia jakość na poziomie pojedynczego projektu lub też produktu, zapewnienie jakości w rozumieniu QA zapewnia jakość w całej organizacji. W wielu publikacjach pojawi się również stwierdzenie, że na zapewnienie jakości oprogramowania składają się czynności raczej prewencyjne niż wykrywające, z kolei testowanie oprogramowania bardziej stawia na detekcję niż zapobieganie. Praktyk testowania oprogramowania może jedynie z politowaniem pokiwać głową na takie sformułowanie. Procesy QA i testowanie mają zarówno cele detekcyjne, jak i prewencyjne i trudno byłoby przy pomocy tak nieprecyzyjnego stwierdzenia narysować czytelną granicę.
Testowanie oprogramowania | Zapewnienie jakości oprogramowania |
Zapewnie jakości pojedynczego produktu w ramach jednego lub wielu projektów | Zapewnienie jakości produktu na poziomie procesu |
Odpowiedzialność testera oprogramowania lub kierownika do spraw testów | Odpowiedzialność inżyniera lub kierownika zapewnienia jakości |
Aktywności operacyjne na poziomie wytwarzania oprogramowania | Aktywności definiujące na poziomie organizacyjnym |
Aktywności monitorowania na poziomie produktu | Aktywności monitorowania na poziomie procesu, standardu lub modelu |
Przed rozpoczęciem projektu: szczątkowe czynności weryfikujące testowalność założonych wymagań | Przed rozpoczęciem projektu: rozbudowane czynności definiujące proces wytwarzania oprogramowania i inne procesy z nim powiązane w tym: definiowanie czynności, wzorców dokumentacji projektowej |
Przed rozpoczęciem projektu: szczątkowe czynności prewencyjne mające na celu wykrycie defektów typowych w danej organizacji lub dla danego typu projektu/produktu | Przed rozpoczęciem projektu: pełne czynności prewencyjne mające na celu zapewnienie wiedzy i umiejętności uczestników procesu w wytworzeniu oprogramowania |
W czasie trwania projektu: prewencyjne działania mające na celu eliminację defektów zanim zostaną one przeniesione z wymagań na inne dokumenty | W czasie trwania projektu: prewencyjne działania sprawdzenia w jakim stopniu projekt posuwa się do przodu zgodnie ze zdefiniowanym wcześniej procesem |
W czasie trwania projektu: weryfikacja poprawności implementacji poszczególnych produktów i półproduktów (np. poprawność implementacji względem wymagań) | W czasie trwania projektu: weryfikacja zgodności poszczególnych produktów i półproduktów za zgodność z procesem (np. zgodność dokumentu wymagań z dokumentem wzorcowym) |
Po zakończeniu projektu: czynności zamykające testowaniu i podsumowujące jakość wytworzonego oprogramowania. | Po zakończeniu projektu: czynności zamykające projekt i podsumowujące jego zgodność z procesem. Analiza wyniku projektu (zakończony sukcesem, częściowym sukcesem lub zakończony niepowodzeniem) i usprawnienie procesów dla dalszych projektów. |
Wąska definicja opisana powyżej może zostać dodatkowo rozdzielona na dwie części. W takim przypadku mówimy o testowaniu jako o procesie weryfikacji jakości i walidacji wymagań.
Testowanie - podobnie jak ziemia - nie jest płaskie. Co więcej, jest wielowymiarowe, a poszczególnych składowych możemy wyróżnić wiele:
- wymiar czasowy – ile mamy czasu na testowanie?
- wymiar finansowy – jakie mamy środki finansowania testowania?
- wymiar produktowy lub subproduktowy – jaki produkt testujemy i w jaki sposób?
- wymiar ludzki – w jaki sposób pozyskujemy siły do testowania?
- itd.
Oryginalna publikacja pochodziła z 19/08/2011 i została zaktualizowana.