Prosta odpowiedź brzmi: to zależy od systemu. Jeśli piszesz wbudowane oprogramowanie do monitorowania serca lub narzędzia do monitorowania bezpieczeństwa reaktora jądrowego, standard jest znacznie wyższy niż w przypadku pisania platformy blogowej.
To jest naprawdę pytanie dla dobrego testera systemu (i nie jestem nim), ale dam mu szansę.
Podstawową miarą będzie zasięg testowy: Ile faktycznie przetestowano aplikacji (zarówno testem jednostkowym, jak i funkcjonalnym).
Musisz ocenić każdy potencjalny przypadek użycia (i parametry dla tego przypadku użycia) pod kątem prawdopodobieństwa faktycznego użycia (abyś mógł upuścić przypadki skrajne), złożoności (prostsze rzeczy mają mniejsze prawdopodobieństwo błędów, a raczej mniej prawdopodobne znaleźć błędy), koszty testowania (pod względem czasu) i potencjalny wpływ defektu, jeśli zostanie wykryty w tym obszarze (tutaj pojawia się reaktor jądrowy vs. platforma blogowa).
Na podstawie tej oceny musisz dowiedzieć się, które z nich zostaną przetestowane i jak szczegółowo. Gdy masz już taką listę, zespół (w tym kierownik produktu / kierownik projektu / przedstawiciel użytkownika) może przejrzeć tę listę i ustalić priorytety na podstawie posiadanych ograniczeń.
Jedną z przydatnych technik do przemyślenia jest to, że możesz również zmieniać przypadki użycia testowane z każdym wydaniem. Na przykład możesz mieć listę niekrytycznych przypadków testowych i przetestować połowę z nich w jednym wydaniu, a połowę w kolejnym (potem na przemian). W ten sposób zwiększasz całkowity zasięg testu dla wysiłku (chociaż istnieje ryzyko wprowadzenia błędów regresji).
Może to również obejmować testowanie platformy - jeśli obsługujesz dwa zaplecza bazy danych (lub wiele przeglądarek), przetestuj połowę aplikacji na jednej, drugą połowę na drugiej, a następnie zamień następną wersję.
(Myślę, że to się nazywa rozbierania, ale nie cytuj mnie w tym.)
Ostatnią rzeczą do przemyślenia nie jest to, co testujesz, ale to, co naprawiasz po wykryciu problemów. Często mówi się „napraw wszystkie błędy”, ale w rzeczywistości istnieje presja czasu i nie wszystkie błędy są równe. Ponownie, regularne zarabianie błędów ze wszystkimi odpowiednimi stronami jest najlepszym rozwiązaniem. Jest to szczególnie istotne tam, gdzie naprawa błędu może być szczególnie uciążliwa, ponieważ generowane przez nią dodatkowe prace związane z ponownym testowaniem i testami regresji mogą przewyższać korzyści wynikające z poprawki.