Co to jest zautomatyzowane narzędzie do testowania?
Tak jak fizyczny produkt jest testowany pod kątem zgodności z pożądanym zachowaniem i specyfikacjami, tak również testowane jest oprogramowanie. Testowanie oprogramowania może być wykonywane ręcznie przez ludzi lub za pomocą narzędzi. Zautomatyzowane narzędzie do testowania to oprogramowanie służące do testowania oprogramowania docelowego, to znaczy rozważanego oprogramowania. Takie narzędzie wykonuje różne testy oprogramowania docelowego i określa, czy testy zostały pomyślnie zaliczone.
Oprogramowanie należy przetestować, aby upewnić się, że generowane są prawidłowe wyniki, prawidłowe dane wejściowe są akceptowane i poprawnie przetwarzane, a nieprawidłowe dane wejściowe są odrzucane. Testy są konieczne, aby ustalić, czy wyniki są generowane szybko, oprogramowanie działa dobrze, nawet jeśli duża liczba osób uzyskuje do niego dostęp jednocześnie i tak dalej. Często stosuje się testy ręczne, ale są one zależne od staranności osób przeprowadzających testy. Ręczne testowanie oprogramowania zajmuje dużo czasu i wymaga znacznej liczby osób w przypadku większości nietrywialnych aplikacji, co zwiększa koszty. Ponadto testowanie tysięcy jednoczesnych użytkowników lub dużych ilości danych nie może być łatwo przeprowadzone ręcznie.
Automatyzacja testów polega na wykorzystaniu narzędzi do testowania oprogramowania. Zautomatyzowane narzędzie do testowania to samo oprogramowanie, które można opracować, kupić lub nabyć. Narzędzie zwykle rozpoczyna wykonywanie oprogramowania docelowego i przekazuje różne dane wejściowe do oprogramowania docelowego w celu przetestowania różnych warunków. Ocenia odpowiednie dane wyjściowe oprogramowania docelowego i śledzi wynik pozytywny / negatywny każdego testu. Na koniec serii testów narzędzie zwykle daje podsumowanie wyników, dzięki czemu można szybko określić liczbę i dotkliwość wad.
Zautomatyzowane narzędzie do testowania może działać na dwa sposoby. Po pierwsze, może być sterowany kodem, to znaczy narzędzie może być ściśle powiązane z pisanym kodem, dzięki czemu sprawdza poprawność wyników dla różnych danych wejściowych. Po drugie, może być oparty na interfejsie użytkownika, w którym czynności użytkowników, takie jak ruchy myszy, wprowadzanie z klawiatury, wprowadzanie głosowe itp. Są naśladowane, a dane wyjściowe dostarczane użytkownikom są sprawdzane pod kątem poprawności. W tym drugim przypadku rzeczywiste działania danej osoby mogą być rejestrowane, a następnie odtwarzane przez narzędzie, lub takie działania mogą być generowane na podstawie skryptu poleceń przekazywanych do narzędzia.
Narzędzia do automatycznego testowania ogólnego przeznaczenia są dostępne na rynku. Większość z nich jest dość droga, ale niektóre narzędzia są dostępne za darmo. Jeśli oprogramowanie docelowe jest wysoce specyficzne lub unikalne, narzędzie testowe prawdopodobnie musi zostać specjalnie opracowane przez sam zespół oprogramowania. Podobnie jak w przypadku wszystkich programów, same narzędzia mają ograniczenia i działają poprawnie tylko przy dobrych danych wejściowych. Jeśli ktoś nie dostarczy stosunkowo kompletnego zestawu testów, narzędzie nie pomoże określić jakości docelowego oprogramowania.
Zautomatyzowane narzędzie testujące ma wiele zalet. Po utworzeniu serii testów testy można wykonać szybciej niż osoba może je wykonać. Testy można przeprowadzać przez noc lub w nieparzystych godzinach, pozostawiając ludziom swobodę skupienia się na tym, co robią najlepiej. Testy można przeprowadzać w kółko, aby ustalić, czy błędy wkradły się do oprogramowania docelowego w miarę jego modyfikacji.