4.4 Techniki testowania oparte na doświadczeniu Flashcards
Jakie są trzy najpopularniejsze techniki testowania oparte na doświadczeniu?
- Error Guessing – bazuje na wiedzy i doświadczeniu testera,
- Exploratory Testing (Testowanie eksploracyjne) – polega na poznawaniu przedmiotu testów w trakcie projektowania i wykonywania testów,
- Checklist-based Testing (Testowanie oparte na listach kontrolnych) – wykorzystuje listy tworzone na bazie praktyki i analizy błędów zebranych w czasie.
Jakie są trzy rodzaje wiedzy, które mają znaczenie w technice Error Guessing?
- Jak aplikacja zachowywała się w przeszłości (np. problemy historyczne),
- Rodzaje błędów, które zwykle popełniają programiści, oraz typy defektów, jakie z tych błędów wynikają,
- Rodzaje awarii, które wystąpiły w innych podobnych aplikacjach.
Z jakich źródeł najczęściej wynikają błędy, defekty i awarie?
- input (wejście) – np. odrzucanie poprawnych danych wejściowych, błędne lub brakujące parametry,
- output (wyjście) – zły format, niepoprawny wynik,
- logic (logika) – np. pominięte przypadki, niewłaściwy operator,
- computation (obliczenia) – niewłaściwy operand, błędne działanie,
- interfaces (interfejsy) – niespójność parametrów, niekompatybilne typy,
- data (dane) – np. błędna wartość początkowa, nieodpowiedni typ danych.
Czym są Fault Attacks (ataki na defekty)?
Fault attacks to uporządkowane podejście do Error Guessing.
Tester tworzy listę możliwych błędów, defektów i awarii, a następnie projektuje testy mające na celu:
* zidentyfikowanie defektów,
* ujawnienie defektów,
* wywołanie awarii związanych z tymi błędami.
Czym jest testowanie eksploracyjne (Exploratory Testing)?
- Testy są projektowane, wykonywane i oceniane w miarę jak tester poznaje przedmiot testów (test object).
- Pozwala to lepiej zrozumieć system, odkryć nowe obszary do przetestowania i szybciej dostosowywać testy do bieżącej wiedzy.
- Szczególnie przydatne, gdy dokumentacja jest niepełna lub brakuje czasu na formalne techniki testowania.
Na czym polega testowanie sesyjne (Session-Based Testing)?
- To odmiana testowania eksploracyjnego, w której testowanie odbywa się w zdefiniowanym przedziale czasu (time-box).
- Tester korzysta z karty sesji (test charter) zawierającej cele, a po jej zakończeniu często przeprowadza się podsumowanie (debriefing) z udziałem testera i interesariuszy.
Kiedy testowanie eksploracyjne jest najbardziej przydatne?
- Gdy jest duża presja czasu i/lub niewystarczająca dokumentacja do testów.
- Jako uzupełnienie bardziej formalnych technik testowych.
- Im większe doświadczenie testera w danym obszarze, tym skuteczniejsze może być testowanie eksploracyjne.
Na czym polega testowanie oparte na listach kontrolnych (checklist-based testing)?
- Tester projektuje i wykonuje testy na podstawie listy kontrolnej (checklist) zawierającej warunki testowe (test conditions).
- Lista może powstawać w oparciu o doświadczenia, oczekiwania użytkowników lub analizę, jak i dlaczego oprogramowanie może ulec awarii.
- Na liście nie powinno być pozycji automatyzowalnych, zbyt ogólnych, służących za kryteria wejścia/wyjścia itp.
Jak formułować elementy listy kontrolnej, by były maksymalnie skuteczne?
- Najczęściej w formie pytania, np. „Czy [wymaganie/cecha GUI] została zachowana?”.
- Każdy punkt powinien dać się sprawdzić oddzielnie, w prosty sposób i odnosić się do konkretnego wymagania, cechy GUI, atrybutu jakości, itp.
Czy testowanie oparte na listach kontrolnych dotyczy testów funkcjonalnych czy niefunkcjonalnych?
- Może być efektywnie używane w obu obszarach.
- Listy kontrolne można tworzyć do sprawdzenia funkcjonalności (np. konkretne wymagania) lub cech niefunkcjonalnych (np. wydajność, użyteczność).
Czy wpisy w listach kontrolnych pozostają skuteczne wraz z upływem czasu?
- Nie zawsze. Niektóre punkty mogą z czasem być mniej przydatne, gdy zespół nauczy się unikać tych samych błędów.
- Konieczne jest regularne aktualizowanie list (np. na podstawie analizy znalezionych defektów), dodawanie nowych wpisów dotyczących istotnych błędów i usuwanie nieaktualnych.
- Warto też uważać, by lista nie stała się zbyt długa (problem w zarządzaniu/przeglądaniu).