Projekt testu
W inżynierii oprogramowania projektowanie testów polega na wyprowadzaniu i określaniu przypadków testowych z warunków testowych do oprogramowania testowego .
Definicja
Warunek testowy to stwierdzenie dotyczące obiektu testowego. Warunki testowe można określić dla dowolnej części komponentu lub systemu, którą można zweryfikować: funkcji, transakcji, cech, atrybutów jakości lub elementów konstrukcyjnych.
Podstawowym wyzwaniem projektowania testów jest to, że istnieje nieskończenie wiele różnych testów, które można przeprowadzić, ale nie ma wystarczająco dużo czasu, aby przeprowadzić je wszystkie. Należy wybrać podzbiór testów; wystarczająco mały, aby go uruchomić, ale wystarczająco dobrze dobrany, aby testy znalazły błąd i ujawniły inne informacje związane z jakością.
Projektowanie testów jest jednym z najważniejszych warunków jakości oprogramowania. Dobry projekt testu wspiera:
- definiowanie i doskonalenie procesów i procedur związanych z jakością ( zapewnianie jakości );
- ocena jakości produktu pod kątem oczekiwań i potrzeb klienta ( kontrola jakości );
- znajdowanie wad w produkcie (testowanie oprogramowania).
Podstawowymi warunkami wstępnymi projektowania testów są:
- Odpowiednia specyfikacja (podstawy testowe).
- Analiza ryzyka i złożoności.
- Dane historyczne dotyczące Twoich poprzednich projektów (jeśli istnieją).
Bazy testów, takie jak wymagania czy historie użytkowników, określają, co powinno być testowane (obiekty testowe i warunki testowe). Podstawy testów obejmują pewne techniki projektowania testów, których można używać lub nie.
Analiza ryzyka jest nieunikniona przy podejmowaniu decyzji o dokładności testów. Im większe ryzyko wiąże się z użyciem funkcji/obiektu, tym dokładniejsze są potrzebne testy. To samo można powiedzieć o złożoności. Analiza ryzyka i złożoności określa techniki projektowania testów, które należy zastosować dla danej specyfikacji.
Dane historyczne dotyczące wcześniejszych prac rozwojowych pomagają ustalić najlepszy zestaw technik projektowania testów, aby wspólnie osiągnąć optymalny koszt i wysoką jakość. W przypadku braku danych historycznych można przyjąć pewne założenia, które należy udoskonalić dla kolejnych projektów.
W oparciu o te warunki wstępne można wdrożyć optymalną strategię projektowania testów.
Wynikiem projektu testów jest zestaw przypadków testowych opartych na specyfikacji. Te przypadki testowe można zaprojektować przed rozpoczęciem implementacji i powinny one być niezależne od implementacji. Test pierwszy sposób projektowania testów jest bardzo ważny, ponieważ skutecznie wspiera zapobieganie defektom. Na podstawie aplikacji i obecnego pokrycia testowego można tworzyć kolejne przypadki testowe (nie jest to jednak projektowanie testów).
W praktyce w przypadku złożonych specyfikacji należy zastosować łącznie więcej technik projektowania testów.
Ogólnie rzecz biorąc, projekt testu nie zależy od nadzwyczajnych (prawie magicznych) umiejętności osoby tworzącej test, ale opiera się na dobrze rozumianych zasadach.
ISO/IEC/IEEE 29119-4:2015, część 4 zawiera szczegółowe definicje standardowych definicji technik projektowania testów. Witryna projektantów testów oferuje metodologię LEA (Learn-Exercise-Apply) wspierającą efektywne uczenie się, ćwiczenie i stosowanie technik.
Projektowanie testów automatycznych
Całe zestawy testów lub przypadki testowe ujawniające rzeczywiste błędy mogą być automatycznie generowane przez oprogramowanie przy użyciu sprawdzania modelu lub wykonywania symbolicznego . Sprawdzanie modelu może zapewnić wykonanie wszystkich ścieżek prostego programu, podczas gdy wykonanie symboliczne może wykryć błędy i wygenerować przypadek testowy, który ujawni błąd, gdy oprogramowanie zostanie uruchomione przy użyciu tego przypadku testowego.
Jednak, jakkolwiek dobry może być projekt testów automatycznych, nie jest on odpowiedni we wszystkich okolicznościach. Jeśli złożoność staje się zbyt duża, w grę musi wchodzić projektowanie testów przez ludzi, ponieważ jest ono znacznie bardziej elastyczne i może skoncentrować się na generowaniu zestawów testów wyższego poziomu.
- ^ Test Design: A BBST Workbook , Cem Caner i Rebecca L Fiedler, lipiec 2016
- ^ Projektowanie testów praktycznych: wybór tradycyjnych i zautomatyzowanych technik projektowania testów , István Forgács i Attila Kovács, sierpień 2019
- ^ Praktyczny przewodnik po projektowaniu testów oprogramowania , Lee Copeland, styczeń 2004
- ^ István, Forgács; Kovács, Attila (2021). Zmiana paradygmatu w testowaniu oprogramowania . Zmierz to. ISBN 978-615-01-2781-1 .