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