Co to jest automatyczne testowanie oprogramowania?
Oprogramowanie jest testowane w celu potwierdzenia, że wszystkie prawidłowe dane wejściowe są poprawnie interpretowane i wykonywane, a nieprawidłowe dane są wyrzucane. Testy sprawdzają również, czy wyniki są generowane wydajnie i czy duża ilość danych może być obsługiwana bez czkawek. Testy można przeprowadzać ręcznie lub elektronicznie. Zautomatyzowane testowanie oprogramowania polega na użyciu specjalistycznego oprogramowania do testowania opracowywanego kodu. Takie testy przynoszą korzyści procesowi tworzenia oprogramowania, jeśli są stosowane rozsądnie.
Testy ręczne zależą od skrupulatności osób przeprowadzających testy. Ręczne testowanie oprogramowania jest czasochłonne i wymaga znacznego stosunku testerów do programistów w przypadku większości aplikacji. Zwiększa to koszty rozwoju. Ponadto testowanie ręczne ma ograniczenie polegające na tym, że dużych ilości danych lub dużej liczby jednoczesnych użytkowników lub danych wejściowych nie można łatwo przetestować.
Zautomatyzowane testowanie oprogramowania programowo kontroluje wykonanie testu i ocenę wyników. Oprogramowanie testujące dostarcza dane wejściowe, które odpowiadają różnym warunkom, do ocenianego oprogramowania. Dla każdego zestawu warunków oprogramowanie testujące porównuje rzeczywiste wyniki z pożądanymi wynikami i utrzymuje statystyki dotyczące zagregowanego zachowania oprogramowania docelowego. Po „uruchomieniu” oprogramowanie testowe zazwyczaj zapewnia podsumowanie wyników, aby ludzie mogli szybko określić, co należy naprawić.
W automatycznych testach oprogramowania żmudne zadania związane z testowaniem, takie jak logowanie lub wprowadzanie danych, takich jak adresy pocztowe, są zmechanizowane. W każdej serii można przetestować różne kombinacje warunków. Ponieważ automatyczne testowanie wymaga użycia komputerów i oprogramowania, umożliwia także symulację dużych obciążeń danych wejściowych lub wyjątkowo szybkich danych wejściowych. Każdy przebieg szeregu warunków testowych można ukończyć w ciągu kilku godzin. W związku z tym automatyczne testowanie jest bardzo przydatne do testowania regresji, co zapewnia, że nowa funkcja lub poprawka błędu nie uszkodzą przypadkowo wcześniej działającego kodu.
Niektóre najnowsze metodologie programowania, takie jak programowanie ekstremalne, podkreślają, że testy powinny być dostępne przed kodowaniem. Metodologie programowania podkreślają, że testy regresji należy przeprowadzać wiele razy dziennie, aby zapewnić poprawność oprogramowania w miarę jego rozwoju. Jeśli zespół oprogramowania musi zastosować tę metodologię w przypadku jakiegokolwiek znaczącego oprogramowania, obowiązkowe jest stosowanie automatycznych testów oprogramowania.
Oprogramowanie do testowania automatyki musi być zasilane żądanymi wejściami i wyjściami. Jednym ze sposobów jest zapisanie warunków ręcznego testu w oprogramowaniu. Innym sposobem jest napisanie kodu w celu wygenerowania różnych warunków, w dopuszczalnych granicach testowanego oprogramowania. Zatem podstawą zautomatyzowanych testów oprogramowania jest zdecydowanie wysiłek człowieka. Oprogramowanie do automatycznego testowania nie może samo wykraczać poza to.
Zautomatyzowane testowanie oprogramowania wiąże się ze znacznymi kosztami zarówno pod względem oprogramowania, które ma zostać nabyte, jak i jego użytkowania. Tak więc, czy zautomatyzować i jaka część testów zautomatyzować, to kluczowe decyzje. Automatyczne testowanie nie jest odpowiednie dla funkcji i środowisk, w których oczekuje się znacznych zmian. W większości aplikacji odpowiednie jest połączenie testów ręcznych i automatycznych.