Definicja testowania oprogramowania. Cz. 1 powstającej książki "Zapewnienie jakości w procesie wytwarzania oprogramowania".

 

Testowanie to jedna z wielu czynności (subprocesów) w procesie SDLC, która ma zapewnić nam najwyższą jakość dostarczanego produktu. Testowanie oprogramowania ma wiele definicji i każda z nich wypycha testowanie w zupełnie inne obszary. Autor zakłada dwie pseudodefinicje testowania...

 

Poniższa publikacja jest częścią powstającej właśnie, nowej książki Radosława Smilgin o roboczej nazwie "Zapewnienie jakości w procesie wytwarzania oprogramowania. Proces testowy."

 

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 SQA 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 SQA 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.

 

Autor prosi o komentowanie i recenzowanie fragmentów książki na forum >>

 

 

Najbliższe terminy szkoleń

Partnerzy

Narzędzia testerskie