3.1 Podstawy testowania statycznego Flashcards
Zdefiniuj testowanie statyczne
Do testowania statycznego nie jest wymagane uruchamianie oprogramowania. Kod, specyfikacje procesów, specyfikacja architektury systemu czy inne produkty pracy (work products) są oceniane ręcznie (np. poprzez przeglądy) albo z pomocą narzędzi (np. analizy statycznej).
Jakie są cele testowania statycznego?
- Wczesne podnoszenie jakości (ang. improving quality early),
- Wykrywanie defektów związanych z czytelnością, kompletnością, poprawnością, testowalnością i spójnością.
Czy testowanie statyczne wymaga więcej czy mniej wysiłku w porównaniu z testowaniem dynamicznym?
Zwykle mniej, ponieważ nie trzeba przygotowywać przypadków testowych, a do przyspieszenia całego procesu często wykorzystuje się narzędzia.
Jakie produkty pracy (dokumenty) są sprawdzane w testowaniu statycznym?
Praktycznie każdy rodzaj może być poddany testowaniu statycznemu. Przykładami są: dokumenty specyfikacji wymagań, kod źródłowy, plany testów, przypadki testowe, elementy backlogu produktu, chartery testowe, dokumentacja projektowa, umowy oraz modele. Ważne, by dany produkt pracy miał strukturę, którą da się w ten sposób weryfikować (np. formalną składnię).
Jaką wartość wnosi testowanie statyczne?
Pozwala na wykrywanie defektów już we wczesnych fazach cyklu wytwarzania (SDLC), przesuwając całość procesu w lewo i umożliwiając szybsze wyłapywanie błędów.
Umożliwia zidentyfikowanie tych defektów, których testy dynamiczne nie są w stanie wykryć (np. niedostępnego kodu, brakujących wzorców projektowych, błędów w elementach niewykonywalnych).
Analiza statyczna kodu jest zwykle bardziej efektywna, co w konsekwencji zmniejsza liczbę defektów oraz obniża koszty i wysiłek w dalszych etapach rozwoju oprogramowania.
Jakie typy defektów łatwiej wykryć za pomocą testowania statycznego?
- Defekty w wymaganiach: niespójności, niejasności, sprzeczności, pominięcia, nieścisłości, duplikaty,
- Defekty w projekcie: nieefektywne struktury baz danych, słaba modularność,
- Pewne defekty w kodzie: niezdefiniowane zmienne, niedostępny kod, zduplikowany kod, nadmiernie złożony kod,
- Odstępstwa od standardów: błędna składnia, nieprzestrzeganie standardów kodowania czy konwencji nazewniczych,
- Nieprawidłowe specyfikacje interfejsów: niewłaściwa liczba, typ lub kolejność parametrów,
- Niektóre podatności bezpieczeństwa: np. przepełnienia bufora,
- Luki w pokryciu podstawy testów: brakujące testy itp.