Czy oprogramowanie jest gotowe do testów? Heurystyki Jamesa Bacha

Czy oprogramowanie jest gotowe do testów? Heurystyki Jamesa Bacha
Heurystyki testowania oprogramowania to rodzaj list kontrolnych, pozwalających nam definiować i redefiniować obszary aplikacji i procesu wytwórczego bazując na dobrych praktykach. Taką heurytykę znajdziemy również w odniesieniu do gotowości oprogramowania do bycia przetestowanym.

Poniższy tekst jest omówieniem pracy Jamesa Bacha (Satisfice, Inc.). Zdefiniował on cechy oprogramowania, których spełnienie potwierdza gotowość oprogramowania do testów.
 

Oprogramowanie przekazane do testów musi mieć następujące cechy:

Kontrolowalność (Controllability) – jako testerzy im lepiej kontrolujemy oprogramowanie, tym więcej możemy zautomatyzować i zoptymalizować.

  • Istnieje możliwy do oskryptowania interfejs lub środowisko testowe umożliwiające sterowanie testowanym oprogramowaniem;
  • Stany oprogramowania, stany sprzętu i zmienne mogą być kontrolowane przez testera;
  • Moduły, obiekty, warstwy funkcjonalne oprogramowania mogą być testowane oddzielnie.
     

Obserwowalność (Observability) – co widzimy jest tym, co może być przetestowane.

  • Wcześniejsze stany systemu i zmiennych są widoczne lub możliwe do znalezienia (np. logi transakcji);
  • Zróżnicowany wynik jest generowany dla każdej informacji wejściowej;
  • Stany systemu i zmienne są widoczne lub możliwe do wyszukania podczas uruchamiania testów;
  • Wszystkie czynniki wpływające na wynik są widoczne;
  • Niepoprawny wynik jest łatwy do zidentyfikowania;
  • Wewnętrzne błędy są automatycznie wychwytywane i raportowane poprzez samotestujący mechanizm.
     

Dostępność (Availability) - aby testować, musimy mieć gotowy obiekt testów.

  • System ma niewiele defektów;
  • Błędy nie blokują uruchamiania testów;
  • Produkt jest rozwijany w cyklach funkcjonalnych (co pozwala na jednoczesne tworzenie oprogramowania i jego testowanie);
  • Istnieje dostęp do kodu źródłowego.
     

Prostota (Simplicity) - im prostsze oprogramowanie, tym mniej testów.

  • Projekt oprogramowania jest wewnętrznie spójny;
  • Aplikacja jest prosta funkcjonalnie (np. minimalna ilość funkcjonalności, aby spełnić wymagania);
  • Aplikacja jest prosta strukturalnie (np. moduły są spójne i luźno sprzężone);
  • Kod jest prosty (na tyle prosty, że zewnętrzny obserwator może go efektywnie zrewidować).
     

Stabilność (Stability) - im mniej zmian, tym mniej problemów w testowaniu.

  • Zmiany w oprogramowaniu nie są częste;
  • Zmiany w oprogramowaniu są kontrolowane i komunikowane;
  • Zmiany w oprogramowaniu nie powodują konieczności zmiany automatów testowych. 
     

Informacja (Information) - im więcej informacji mamy, tym mądrzej testujemy.

  • Projekt oprogramowania jest podobny do innych produktów, które już znamy;
  • Technologia użyta do wytworzenia produktu jest możliwa do zrozumienia (w skończonym czasie - przyp. red.);
  • Zależności pomiędzy wewnętrznymi, zewnętrznymi i współdzielonymi komponentami są możliwe do zrozumienia;
  • Cel działania oprogramowania jest zrozumiały;
  • Użytkownicy oprogramowania mogą być łatwo zrozumiani;
  • Środowisko, w którym aplikacja będzie używana jest zrozumiałe;
  • Dokumentacja techniczna jest dokładna i dostępna.

 

James Bach wyróżnia również 5 obszarów testowalności i o nich możecie poczytać w jego publikacji >>

Dowiedz się więcej o heurystykach >>

 

 

9968

Powiązane szkolenia

05-06
czerwca
2023
Jarosław Hryszko
online
Praktyka testowania
1 750PLN
Testowanie aplikacji internetowych
12
Wolnych miejsc
Rezerwuj
06-07
marca
2023
Arnika Hryszko
online
Praktyka testowania
1 770PLN
Testowanie użyteczności
9
Wolnych miejsc
Rezerwuj
20-21
kwietnia
2023
Rafał Stańczak
online
Dobre praktyki testowania
1 700PLN
Testowanie w metodykach Agile
12
Wolnych miejsc
Rezerwuj
23-24
marca
2023
Krzysztof Kołodziejczyk
online
Praktyka testowania
1 770PLN
Testowanie aplikacji mobilnych - Android
9
Wolnych miejsc
Rezerwuj
12-13
czerwca
2023
Krzysztof Skarbiński
online
Automatyzacja testowania
1 800PLN
Testowanie REST API dla początkujących w języku python
10
Wolnych miejsc
Rezerwuj
27-28
lutego
2023
Krzysztof Kołodziejczyk
online
Języki programowania dla testerów
1 800PLN
JavaScript dla testerów oprogramowania
9
Wolnych miejsc
Rezerwuj
24-26
kwietnia
2023
Krzysztof Kołodziejczyk
online
Praktyka testowania
3 000PLN
Tester gier
11
Wolnych miejsc
Rezerwuj
13
marca
2023
-09
kwietnia
2023
Krzysztof Kołodziejczyk
online
Automatyzacja testowania
5 500PLN
Praktyka automatyzacji testowania
5
Wolnych miejsc
Rezerwuj

To powinno Cię zainteresować