Automatyzacja miała być przełomem w kontroli jakości oprogramowania. I choć w wielu miejscach automatyka pokazuje swoją wartość, to nie dzieje się tak w przypadku testów automatycznych na GUI. Ta "manualna automatyzacja", jak coraz częściej się o niej mówi, staje się coraz częściej zgniłym jabłkiem w naszym koszyku metod. Czego w takim razie można spróbować w zamian?
0. Metody organizacji pracy
Wszystkie współczesne metody wytwórcze, próbują znacząco zredukować długość trwania informacyjnej pętli zwrotnej. Agile czy DevOps, proponują bezpośrednią konwersację twórcy z zamawiającym. Automatyzacja testów sprawdza się tu idealnie, ale jedynie do czasu, kiedy uruchomienie testów trwa zbyt długo. Wtedy automat zamiast wsparciem, staje się wąskim gardłem do wyeliminowania.
1. Testy jednostkowe i integracji
Wysokiej jakości kod źródłowy i zweryfikowane punkty styku komponentów, modułów i systemów, można osiągnąć dużo łatwiej niż poprzez weryfikację po graficznym interfejsie. Dodatkowo, zacząć można dużo wcześniej, sprawdzając produkt od początku jego stworzenia (koncept shift left). Zapewniając wysoką jakość architektury nie gwarantujemy sobie poprawności działania na froncie, ale znacząco redukujemy prawdopodobieństwo krytycznej wpadki.
2. Testowanie ("manualne")
Biorąc pod uwagę wywindowane pensje automatyków, a także ich niedostatek na rynku, wydaje się, że zrobienie kroku wstecz jest zrozumiałe. Należy rozważyć powrót do klasycznego testowania, gdzie dobrych testerów można mieć już za ¼ ceny specjalisty od automatyzacji. Ważną rolę odgrywa tu szybki zwrot z inwestycji, na który nie trzeba czekać miesiącami.
3. Analiza statyczna
Nie jest to samodzielna metoda weryfikacji jakości, ale jeśli wejdzie sprawnie w proces CI/CD, staje się jego ważnym filarem. Z takich drobnych elementów można zbudować całościowy, wysokiej jakości produkt.
4. Testowanie na produkcji
Mnogość technik i metod weryfikacji na produkcji pokazuje, że jest to sensowna alternatywa dla testów przedwrożeniowych. Wiadomo, iż nie każdy chce i nie każdy może testować na początku, ale tam, gdzie jest to możliwe, powinno się to robić. Najwięksi wytwórcy oprogramowania przetarli już w tym temacie ścieżki.
5. Monitorowanie
Choć monitorowanie i analizowanie logów często uważa się za testowanie, to czytając definicje widzimy, że nie spełnia ono podstawowych założeń, stawianych przed testowaniem. Stąd warto pisać o tym osobno. Świadomość wyjątków, na jakie natrafiają nasi użytkownicy i ich dynamiczne rozwiązywanie, jest aktualnie najgorętszą dziedziną kontroli i poprawiania jakości.
PS. ML, AI, DL
… i wszystkie inne popularne skróty, za którymi kryje się "inteligentny" software testując, inny software. Już teoretycznie jest, już działa na produkcji, tylko niewielu go widziało. Nie ma jednak wątpliwości, że przy olbrzymich środkach wydanych na badania, prędzej czy później narzędzia z tej stajni wyprą manualną automatyzację.
Dni automatyzacji nie są jeszcze policzone, bo ciągle ma ona wielu zwolenników, zarówno po stronie testerów, jak i zamawiających usługę. W długotrwałej obecności na rynku pomogłaby jej niższa cena, większa dostępność specjalistów i wyższe ROI. Jeśli jednak sytuacja się utrzyma, to szukanie alternatywy dla testów automatycznych stanie się jeszcze bardziej widocznym trendem.