Testowanie aplikacji i systemów - Wprowadzenie do testowania
1. Testowalność oprogramowania oznacza, jak łatwo oprogramowanie może być przetestowane.
2. Testowanie to proces wykonywania programu lub systemu z zamiarem znalezienia błędów. Umożliwia ono na wykrycie we wczesnych stadiach rozwoju oprogramowania, co pozwala zmniejszyć koszty usuwania tego błędu.
3. Czynności testowania zarówno przed jak i po wykonaniu testów to m.in.:
- planowanie i nadzór
- wybór warunków testowych
- projektowanie i wykonywanie przypadków testowych
- sprawdzanie wyników
- ocena spełnienia kryteriów zakończenia
- raportowanie procesów testowania i testowanego systemu
- kończenie i zamykanie testów
4. Do alternatywnych metod zapewnienia jakości zaliczamy
- inspekcję (dokładne sprawdzenie kody programowania "na miejscu")
- formalną weryfikację oprogramowania (określenie i weryfikacja systemów oprogramowania poprzez stosowanie technik pochodzących z matematyki i logiki)
- zapobieganie błędom (proces identyfikacji błędów, ich przyczyn oraz działania korygujących i zapobiegawczych po to, aby zapobiec ich ponownemu wystąpieniu w przyszłości)
- odporność na uszkodzenia (zdolność systemów oprogramowania do zapobiegania zakłóceniom, nawet jeśli pojawiają się jakieś lokalne problemy)
5. Błąd oprogramowania występuje, gdy:
- nie wykonuje czegoś, co powinno wykonywać
- gdy wykonuje coś, czego robić nie powinno
- gdy wykonuje coś, o czym specyfikacja nie wspomina
- nie wykonuje czegoś, o czym specyfikacja nie wspomina, ale powinna
- jest trudne do zrozumienia i trudne do użycia, powolne itp.
6. Błąd - niepoprawna konstrukcja znajdująca się w programie, która może doprowadzić do niewłaściwego działania
7. Błędne wykonanie - niepoprawne działanie systemu w trakcie jego pracy
8. Defekt - błąd popełniony przez projektantów lub programistów podczas tworzenia oprogramowania, odkryty jest on w fazie cyklu życia oprogramowania późniejszej od fazy, w której pojawiła się przyczyna
9. Error - niezgodność pomiędzy dostarczonym przez funkcję, zaobserwowanym lub zmierzonym rezultatem jej wykonania, a oczekiwaną wartością.
10. Failure - niezdolność komponentu lub systemu do wykonania operacji w np. określonym w wymaganiach czasie.
11. Exception - nieobsługiwany wyjątek, który powoduje zawieszenie lub przerwanie działania programu. Wyjątek może pojawić się w związku z adresowaniem pamięci, danymi, wykonaną operacją, przepełnieniem zmiennej, itp.
12. Defect, bug, fault - wada modułu lub systemu, która może spowodować, że moduł lub system nie wykona zakładanej czynności. Defekt, który wystąpi podczas uruchomienia programu, może spowodować awarię modułu lub systemu.
13. Deviation, incident - każde zdarzenie występujące w procesie testowania, które wymaga zbadania.
14. Rodzaje błędów:
- Błędy składniowe: błędy ze względu na fakt, że składnia języka nie jest przestrzegana.
- Błędy semantyczne: błędy spowodowane niewłaściwym wykorzystaniem instrukcji programu.
- Błędy logiczne: błędy spowodowane faktem, że specyfikacja nie jest przestrzegana.
Z punktu widzenia etapu wykrycia błędów, wyróżnia się:
- Błędy kompilacji: błędy składniowe i semantyczne wskazane przez kompilator.
- Maszynę uruchomieniową: błędy dynamiczne, błędy semantyczne i błędy logiczne, które nie mogą być wykryte przez kompilator