Elfriede Dustin z Innovative Defense Technologies (IDT) twierdzi, że zdolność przypadku testowego do bycia zautomatyzowanym nie jest wystarczającym powodem, by dokonać automatyzacji. Jej badania nad tym co automatyzować, a co pozostawić testerom manualnym, doprowadziły do kilku interesujących wniosków. Niby każdy wie, ale nie każdy powie:
- analiza co zautomatyzować powinna uwzględniać ograniczenia zasobów, budżet, plan czasowy i dostępność ekspertów,
- nie wszystkie możliwe kombinacje i permutacje zachowań aplikacji mogą zostać przetestowane (testy nie mogą trwać wiecznie), więc i nie wszystkie testy mogą zostać zautomatyzowane,
- automatyzacja wymaga priorytetyzacji.
W konsekwencji zdefiniowany został Indeks Automatyzacji (AI) definiowany zarówno dla prowadzonych już projektów, jak i dla zupełnie nowego projektu:
TFA
AI (%) = -------
TC
gdzie:
AI = Indeks Automatyzacji (ang. Automation Index)
TFA = Ilość przypadków testowych możliwych do automatyzacji (ang. Number of test cases feasible to automate)
TC = Ilość wszystkich przypadków testowych (ang. Total number of test cases).
Aby w odpowiedni sposób wybrać przypadki testowe do automatyzacji, Dustin proponuje przykładową listę pytań. Odpowiedzi TAK wskazują odpowiednich kandydatów:
# | Kryterium automatyzacji | TAK | NIE |
1 | Czy przypadek testowy jest wykonywane więcej niż raz? | ||
2 | Czy przypadek testowy jest wykonywany regularnie np. prawdopodobieństwo ponownego użycia jest wysokie, jest częścią testów regresji lub testów kompilacji? | ||
3 | Czy test pokrywa krytyczną ścieżkę funkcjonalności? | ||
4 | Czy test pokrywa obszar podwyższonego ryzyka? | ||
5 | Czy test jest niemożliwy lub zabroniony do manualnego wykonania taki jak testy wydajności czy wycieki pamięci? | ||
6 | Czy testowany komponent jest krytyczny czasowo i musi być automatyzowany? | ||
7 | Czy test pokrywa złożony obszar aplikacji? | ||
8 | Czy test wymaga wielu kombinacji danych przy tych samych krokach (różne dane dla tej samej funkcjonalności) | ||
9 | Czy oczekiwany rezultat jest stały np. nie zmienia się bez względu na zestaw testów? | ||
10 | Czy analiza wyniku testu jest czasochłonna? | ||
11 | Czy test musi zostać wykonany na różnych konfiguracjach oprogramowania i sprzętu? | ||
12 | Czy ROI automatyzacji testów zgadza się z ROI organizacji? |
Najbardziej krytyczne pytanie na liście to numer 4. Należy jednak pamiętać, że jest to również zazwyczaj najtrudniejszy obszar do automatyzacji.
A jak do tego wszystkiego ma się nasz indeks? Poniżej kilka przykładów bazujących na obecnej wiedzy:
- AI nie powinien dążyć do 1, czyli nie powinniśmy próbować automatyzować wszystkiego.
- AI = 0 oznacza brak automatyzacji, ale pamiętajmy, że nie jest to do końca negatywny przypadek.
- Aktualnie uważa się, że AI oscylujący wokół wartości 0,5 jest optymalnym wyborem i optymalizacją w testowaniu.
Tekst w oparciu o "What's Your Automation Index?" - Edward J. Correia za Test & QA REPORT został opublikowany na naszych łamach 05.03.2009. Zaktualizowaliśmy go pod kątem merytoryki.