Co to jest testowanie automatyczne?
Testowanie automatyczne lub automatyzacja testów to technika testowania oprogramowania, która polega na użyciu specjalnych narzędzi do automatycznego testowania w celu wykonania zestawu przypadków testowych. Wręcz przeciwnie, testowanie ręczne jest wykonywane przez człowieka siedzącego przed komputerem i starannie wykonującego kroki testowe.
Oprogramowanie do testowania automatyzacji może również wprowadzać dane testowe do testowanego systemu, porównywać oczekiwane i rzeczywiste wyniki oraz generować szczegółowe raporty z testów. Automatyzacja testów oprogramowania wymaga znacznych inwestycji finansowych i zasobów.
Kolejne cykle rozwoju będą wymagały wielokrotnego wykonywania tego samego zestawu testów. Za pomocą narzędzia do automatyzacji testów można nagrać ten zestaw testów i odtworzyć go ponownie w razie potrzeby. Po zautomatyzowaniu zestawu testów nie jest wymagana żadna interwencja człowieka. To poprawiło zwrot z inwestycji w automatyzację testów. Celem automatyzacji jest zmniejszenie liczby przypadków testowych do ręcznego uruchamiania, a nie całkowite wyeliminowanie testowania ręcznego.
Kliknij tutaj, jeśli wideo nie jest dostępne
W tym samouczku do automatycznego testowania oprogramowania nauczysz się podstaw automatyzacji testów, takich jak:
- Co to jest testowanie automatyczne?
- Dlaczego testy automatyczne?
- Które przypadki testowe zautomatyzować?
- Zautomatyzowany proces testowania
- Wybór narzędzia testowego
- Zdefiniuj zakres automatyzacji
- Planowanie, projektowanie i rozwój
- Wykonanie testu
- Framework for Automation
- Najlepsze praktyki dotyczące narzędzi do automatyzacji
- Korzyści z testowania automatycznego
- Rodzaje testów automatycznych
- Jak wybrać narzędzie do automatyzacji?
- Narzędzia do testowania automatyzacji
Dlaczego automatyzacja testów?
Automatyzacja testów to najlepszy sposób na zwiększenie skuteczności, pokrycia testów i szybkości wykonywania testów oprogramowania. Zautomatyzowane testowanie oprogramowania jest ważne z następujących powodów:
- Ręczne testowanie wszystkich przepływów pracy, wszystkich pól, wszystkich negatywnych scenariuszy jest czasochłonne i kosztowne
- Ręczne testowanie witryn wielojęzycznych jest trudne
- Automatyzacja testów w testowaniu oprogramowania nie wymaga interwencji człowieka. Możesz uruchomić automatyczny test bez nadzoru (przez noc)
- Automatyzacja testów zwiększa szybkość wykonywania testów
- Automatyzacja pomaga zwiększyć zakres testów
- Testowanie ręczne może stać się nudne, a tym samym podatne na błędy.
Które przypadki testowe zautomatyzować?
Przypadki testowe do zautomatyzowania można wybrać, korzystając z następującego kryterium w celu zwiększenia zwrotu z inwestycji w automatyzację
- Wysokie ryzyko - przypadki testowe o krytycznym znaczeniu biznesowym
- Przypadki testowe, które są wielokrotnie wykonywane
- Przypadki testowe, które są bardzo żmudne lub trudne do wykonania ręcznie
- Przypadki testowe, które są czasochłonne
Następująca kategoria przypadków testowych nie nadaje się do automatyzacji:
- Przypadki testowe, które są nowo zaprojektowane i nie są wykonywane ręcznie co najmniej raz
- Przypadki testowe, dla których wymagania często się zmieniają
- Przypadki testowe, które są wykonywane ad hoc.
Zautomatyzowany proces testowania:
Następujące kroki są wykonywane w procesie automatyzacji
Krok 1) Wybór narzędzia testowego
Krok 2) Zdefiniuj zakres automatyzacji
Krok 3) Planowanie, projektowanie i rozwój
Krok 4) Wykonanie testu
Krok 5) Konserwacja
Wybór narzędzia testowego
Wybór narzędzia testowego w dużej mierze zależy od technologii, na której zbudowana jest testowana aplikacja. Na przykład QTP nie obsługuje Informatica. Dlatego QTP nie może być używane do testowania aplikacji Informatica. Dobrym pomysłem jest przeprowadzenie Proof of Concept of Tool na AUT.
Zdefiniuj zakres automatyzacji
Zakres automatyzacji to obszar testowanej aplikacji, który zostanie zautomatyzowany. Poniższe punkty pomagają określić zakres:
- Funkcje, które są ważne dla biznesu
- Scenariusze, które mają dużą ilość danych
- Wspólne funkcje we wszystkich aplikacjach
- Wykonalności technicznej
- Zakres, w jakim komponenty biznesowe są ponownie wykorzystywane
- Złożoność przypadków testowych
- Możliwość korzystania z tych samych przypadków testowych do testowania w różnych przeglądarkach
Planowanie, projektowanie i rozwój
W tej fazie tworzysz strategię i plan automatyzacji, który zawiera następujące szczegóły:
- Wybrane narzędzia automatyzacji
- Projekt szkieletu i jego funkcje
- Elementy automatyzacji objęte zakresem i spoza zakresu
- Przygotowanie stanowiska testowego automatyzacji
- Harmonogram i harmonogram tworzenia skryptów i wykonywania
- Produkty testowania automatyzacji
Wykonanie testu
W tej fazie wykonywane są skrypty automatyzacji. Skrypty wymagają wprowadzenia danych testowych, zanim zostaną uruchomione. Po wykonaniu zapewniają szczegółowe raporty z testów.
Wykonywanie można przeprowadzić za pomocą narzędzia do automatyzacji bezpośrednio lub za pośrednictwem narzędzia do zarządzania testami, które wywoła narzędzie automatyzacji.
Przykład: Centrum jakości to narzędzie do zarządzania testami, które z kolei wywoła QTP w celu wykonania skryptów automatyzacji. Skrypty mogą być wykonywane na jednym komputerze lub w grupie maszyn. Egzekucję można wykonać w nocy, aby zaoszczędzić czas.
Podejście do konserwacji automatyzacji testów
Podejście do konserwacji automatyzacji testów to faza testowania automatyzacji przeprowadzana w celu sprawdzenia, czy nowe funkcje dodane do oprogramowania działają dobrze, czy nie. Konserwacja w testowaniu automatyzacji jest wykonywana, gdy dodawane są nowe skrypty automatyzacji i muszą być przeglądane i utrzymywane w celu poprawy skuteczności skryptów automatyzacji z każdym kolejnym cyklem wydania.
Framework for Automation
Framework to zestaw wskazówek dotyczących automatyzacji, które pomagają w
- Utrzymanie spójności testów
- Poprawia strukturę testów
- Minimalne użycie kodu
- Mniej konserwacji kodu
- Popraw możliwość ponownego użycia
- Testerzy nietechniczni mogą być zaangażowani w kod
- Okres szkolenia z korzystania z narzędzia można skrócić
- Obejmuje dane wszędzie tam, gdzie jest to stosowne
Istnieją cztery typy frameworków używanych w testowaniu oprogramowania do automatyzacji:
- Struktura automatyzacji opartej na danych
- Struktura automatyzacji oparta na słowach kluczowych
- Modular Automation Framework
- Hybrid Automation Framework
Najlepsze praktyki dotyczące narzędzi do automatyzacji
Aby uzyskać maksymalny zwrot z inwestycji w automatyzację, należy przestrzegać następujących zasad
- Zakres Automatyzacji należy szczegółowo określić przed rozpoczęciem projektu. To wyznacza właściwe oczekiwania wobec automatyzacji.
- Wybierz odpowiednie narzędzie do automatyzacji: narzędzia nie można wybierać na podstawie jego popularności, ale jest ono zgodne z wymaganiami automatyzacji.
- Wybierz odpowiednią strukturę
- Standardy skryptów - należy przestrzegać standardów podczas pisania skryptów dla automatyzacji. Niektórzy z nich są-
- Twórz jednolite skrypty, komentarze i wcięcia kodu
- Odpowiednia obsługa wyjątków - sposób obsługi błędu w przypadku awarii systemu lub nieoczekiwanego zachowania aplikacji.
- Komunikaty zdefiniowane przez użytkownika powinny być zakodowane lub ustandaryzowane, tak aby rejestracja błędów była zrozumiała dla testerów.
- Miary metryki - powodzenia automatyzacji nie można określić, porównując wysiłek ręczny z wysiłkiem związanym z automatyzacją, ale także rejestrując następujące wskaźniki.
- Procent znalezionych defektów
- Czas wymagany do testowania automatyzacji dla każdego cyklu wydania
- Wydanie wymaga minimalnego czasu
- Indeks satysfakcji klientów
- Poprawa produktywności
Powyższe wskazówki, jeśli są przestrzegane, mogą bardzo pomóc w pomyślnej automatyzacji.
Korzyści z testowania automatycznego
Oto zalety automatyzacji testów:
- 70% szybciej niż testowanie ręczne
- Szerszy zakres testów funkcji aplikacji
- Wiarygodne wyniki
- Zapewnij spójność
- Oszczędność czasu i kosztów
- Poprawia dokładność
- Podczas egzekucji nie jest wymagana interwencja człowieka
- Zwiększa wydajność
- Lepsza szybkość wykonywania testów
- Skrypty testowe wielokrotnego użytku
- Testuj często i dokładnie
- Dłuższy cykl realizacji można osiągnąć dzięki automatyzacji
- Wczesny termin wprowadzenia na rynek
Rodzaje testów automatycznych
- Testowanie dymu
- Testów jednostkowych
- Testy integracyjne
- Testy funkcjonalności
- Testowanie słów kluczowych
- Testowanie regresji
- Testowanie oparte na danych
- Testowanie czarnoskrzynkowe
Jak wybrać narzędzie do automatyzacji?
Wybór odpowiedniego narzędzia może być trudnym zadaniem. Poniższe kryterium pomoże Ci wybrać najlepsze narzędzie do Twoich wymagań:
- Wsparcie środowiska
- Łatwość użycia
- Testowanie bazy danych
- Identyfikacja obiektu
- Testowanie obrazu
- Testowanie po błędzie
- Mapowanie obiektów
- Używany język skryptów
- Obsługa różnych typów testów - w tym funkcjonalnych, zarządzania testami, urządzeń mobilnych itp.
- Wsparcie dla wielu frameworków testowych
- Łatwe debugowanie skryptów oprogramowania do automatyzacji
- Umiejętność rozpoznawania obiektów w każdym środowisku
- Obszerne raporty z testów i wyniki
- Minimalizuj koszt szkolenia wybranych narzędzi
Wybór narzędzi jest jednym z największych wyzwań, z którymi należy się zmierzyć przed przejściem na automatyzację. Najpierw zidentyfikuj wymagania, zbadaj różne narzędzia i jego możliwości, ustal oczekiwania wobec narzędzia i przejdź do Proof of Concept.
Narzędzia do testowania automatyzacji
Na rynku dostępnych jest mnóstwo narzędzi do testowania funkcjonalnego i regresji. Oto najlepsze narzędzia do automatyzacji testów certyfikowane przez naszych ekspertów
-
Ranorex Studio
Ranorex Studio to kompleksowe narzędzie do automatyzacji testów funkcjonalnych interfejsu użytkownika, testów regresji, testów opartych na danych i wielu innych. Ranorex Studio zawiera łatwy w użyciu interfejs typu „kliknij i jedź” do automatyzacji testów aplikacji internetowych, stacjonarnych i mobilnych.
Funkcje:
- Funkcjonalny interfejs użytkownika i kompleksowe testy na komputerach stacjonarnych, w Internecie i urządzeniach mobilnych
- Testowanie w różnych przeglądarkach
- SAP, ERP, Delphi i starsze aplikacje.
- iOS i Android
- Uruchamiaj testy lokalnie lub zdalnie, równolegle lub rozpowszechniaj w sieci Selenium
- Solidne raportowanie
Ucz się więcej
-
Świadectwo
Testim to najszybsza droga do trwałych, kompleksowych testów - bezkodowych, zakodowanych lub obu. Testim umożliwia tworzenie niezwykle stabilnych testów bezkodowych, które wykorzystują naszą sztuczną inteligencję, ale także elastyczność eksportowania testów jako kodu. Klienci tacy jak Microsoft, NetApp, Wix i JFrog przeprowadzają miliony testów na Testim każdego miesiąca
funkcje
- Możesz wykorzystać nowoczesny interfejs API JavaScript i swoje IDE Testim do debugowania, dostosowywania lub refaktoryzacji testów.
- Przechowuj testy w systemie kontroli wersji, aby zsynchronizować je z gałęziami i uruchamiać testy przy każdym zatwierdzeniu.
- Integracja z popularnymi narzędziami
Ucz się więcej
-
Selen
Jest to narzędzie do testowania oprogramowania używane do testów regresji. Jest to narzędzie testowe typu open source, które umożliwia odtwarzanie i nagrywanie testów regresyjnych. Selenium IDE obsługuje tylko przeglądarkę internetową Mozilla Firefox.
- Zapewnia możliwość eksportu nagranego skryptu w innych językach, takich jak Java, Ruby, RSpec, Python, C # itp.
- Może być używany z frameworkami takimi jak JUnit i TestNG
- Może jednocześnie wykonywać wiele testów
- Autouzupełnianie dla wspólnych poleceń Selenium
- Testy przejścia
- Identyfikuje element za pomocą id, nazwy, ścieżki X itp.
- Przechowuj testy w formacie Ruby Script, HTML i w dowolnym innym formacie
- Zapewnia opcję potwierdzenia tytułu dla każdej strony
- Obsługuje plik selenium user-extensions.js
- Umożliwia wstawianie komentarzy w środku skryptu w celu lepszego zrozumienia i debugowania
Pobierz Selenium
-
QTP (MicroFocus UFT)
QTP jest szeroko stosowany do testów funkcjonalnych i regresyjnych, jest przeznaczony dla wszystkich głównych aplikacji i środowisk. Aby uprościć tworzenie i konserwację testów, wykorzystuje koncepcję testowania opartego na słowach kluczowych. Pozwala testerowi budować przypadki testowe bezpośrednio z aplikacji.
- Jest łatwiejszy w użyciu dla osoby nietechnicznej, aby dostosować się i stworzyć działające przypadki testowe
- Szybciej naprawia usterki, dokładnie dokumentując i replikując usterki dla programistów
- Zwiń tworzenie testów i dokumentację testów w jednej witrynie
- Parametryzacja jest łatwa niż w WinRunner
- QTP obsługuje środowisko programistyczne .NET
- Posiada lepszy mechanizm identyfikacji obiektów
- Korzystając z aktywnego ekranu, może ulepszyć istniejące skrypty QTP bez opcji „Aplikacja w trakcie testowania”
Pobierz QTP
-
Rational Functional Tester
Jest to zorientowane obiektowo zautomatyzowane narzędzie do testowania funkcjonalnego, które jest w stanie wykonywać zautomatyzowane testy funkcjonalne, regresyjne, oparte na danych i testy GUI. Główne cechy tego narzędzia to
- Obsługuje szeroką gamę protokołów i aplikacji, takich jak Java, HTML, NET, Windows, SAP, Visual Basic itp.
- Może nagrywać i odtwarzać akcje na żądanie
- Dobrze integruje się z narzędziami do zarządzania kontrolą źródła, takimi jak integracja z Rational Clear Case i Rational Team Concert
- Umożliwia programistom tworzenie skryptu związanego ze słowami kluczowymi, aby można go było ponownie wykorzystać
- Edytor Eclipse Java Developer Toolkit ułatwia zespołowi kodowanie skryptów testowych w Javie z Eclipse
- Obsługuje niestandardowe kontrolki za pośrednictwem proxy SDK (Java / .Net)
- Obsługuje kontrolę wersji, aby umożliwić równoległe tworzenie skryptów testowych i jednoczesne ich używanie przez rozproszony geograficznie zespół
Pobierz produkt Rational Functional Tester
-
Watir
Jest to oprogramowanie testowe typu open source do testów regresyjnych. Umożliwia pisanie testów, które są łatwe do odczytania i utrzymania. Watir obsługuje tylko przeglądarkę internetową w systemie Windows, podczas gdy sterownik sieciowy Watir obsługuje przeglądarki Chrome, Firefox, IE, Opera itp.
- Obsługuje wiele przeglądarek na różnych platformach
- Zamiast używać zastrzeżonego skryptu dostawcy, używa w pełni funkcjonalnego, nowoczesnego języka skryptowego Ruby
- Obsługuje Twoją aplikację internetową niezależnie od tego, w czym została opracowana
Pobierz Watir
-
SilkTest
Silk Test jest przeznaczony do wykonywania testów funkcjonalnych i regresyjnych. W przypadku zastosowań e-biznesowych wiodącym produktem do testów funkcjonalnych jest test jedwabiu. Jest to produkt przejęcia Segue Software przez Borland w 2006 roku. Jest to język zorientowany obiektowo, podobnie jak C ++. Wykorzystuje koncepcję obiektu, klas i dziedziczenia. Jego główną cechą jest
- Zawiera wszystkie źródłowe pliki skryptów
- Konwertuje polecenia skryptu na polecenia GUI. Na tym samym komputerze polecenia można uruchamiać na komputerze zdalnym lub hoście
- Aby zidentyfikować ruch myszy wraz z naciśnięciami klawiszy, można wykonać Silktest. Może korzystać zarówno z metody odtwarzania, jak i nagrywania lub opisowych metod programowania, aby uzyskać okna dialogowe
- Identyfikuje wszystkie kontrolki i okna testowanej aplikacji jako obiekty i określa wszystkie atrybuty i właściwości każdego okna
Pobierz SilkTest
Podsumowanie
Automatyzacja testów to technika testowania oprogramowania, która polega na wykorzystaniu specjalnych narzędzi do automatycznego testowania w celu wykonania zestawu przypadków testowych.
Automatyzacja testów to najlepszy sposób na zwiększenie skuteczności, pokrycia testów i szybkości wykonywania testów oprogramowania.
Wybór narzędzia testowego w dużej mierze zależy od technologii, na której zbudowana jest testowana aplikacja.
Podejście do konserwacji automatyzacji testów to faza testowania automatyzacji przeprowadzana w celu sprawdzenia, czy nowe funkcje dodane do oprogramowania działają dobrze, czy nie.
Właściwy wybór narzędzia do automatyzacji, procesu testowania i zespołu są ważnymi czynnikami decydującymi o powodzeniu automatyzacji. Metody ręczne i zautomatyzowane idą ze sobą w parze dla pomyślnego testowania.