Testowanie automatyczne
Transkrypt
Testowanie automatyczne
Complexity made simple. Solution Testowanie automatyczne Automatyzacja testowania umożliwia wykonanie wielu czynności znacznie wydajniej niż w przypadku testów manualnych. Identyczne testy mogą być wykonywane w zróżnicowanych konfiguracjach sprzętowych, na odmiennych systemach operacyjnych, z wykorzystaniem różnych baz danych czy przeglądarek internetowych. Poprzez lepsze usystematyzowanie i większą konsekwencję w wykonaniu testów, zyskuje cały proces zapewnienia jakości. Kluczem do wartościowych testów automatycznych są dobrze zaprojektowane, dynamiczne scenariusze. Wymagają one więcej wysiłku na etapie przygotowania – stworzenie efektywnego scenariusza jest kilkukrotnie bardziej pracochłonne niż napisanie scenariusza do testowania manualnego, jednak zwrot z inwestycji następuje w trakcie testów kolejnych wydań programu. Automatyczne testy wykonują się dużo szybciej niż manualne, dzięki czemu czas i koszt potrzebne na testowanie nowego wydania mogą zostać znacząco zmniejszone. Cele automatów: GUI Komplementarna weryfikacja rozmieszczenia elementów UI (przyciski, listy, obrazki, linki itd.) na konkretnych stronach/oknach. Dynamiczna weryfikacja danych wyświetlanych w tabelach, będących efektem uprzednio przeprowadzonych operacji. Sprawdzanie działania walidacji pól pozwalających na wpisanie danych przez użytkownika. Automatyczne wykonywanie ścieżek lub sekwencji na graficznym interfejsie wraz z zapisywaniem historii przebiegu oraz zrzutów ekranu (screenshotów). Możliwość budowy inteligentnych skryptów sterowanych danymi z baz lub arkuszy danych. API/WEBSERVICES Możliwość budowy sekwencji wywołań różnych metod w kolejnych krokach, wraz z dynamicznym przekazywaniem parametrów między nimi. Walidacja zarówno pod względem formy jak i treści danych przychodzących w odpowiedzi. Zalecamy przygotowanie zestawu automatycznych testów regresyjnych co najmniej dla kluczowych funkcjonalności, których manualne testowanie jest powtarzane najczęściej. Istotna może być również kompleksowość – zdarza się, że manualne przetestowanie wszystkich kombinacji przypadków lub ścieżek jest bardzo pracochłonne, podczas gdy dynamiczny automat mógłby je przetestować dla każdego kolejnego wydania przy minimalnym nakładzie pracy testera. Opcja dynamicznego (skryptowego) zarządzania procesami budowania zapytań i weryfikacji odpowiedzi. Bazując na oczekiwaniach Klienta i biznesowej specyfice produktu, doradzamy efektywne rozwiązania, budujemy zestawy automatów odzwierciedlających rzeczywiste użycie produktu, wykonujemy testy na środowiskach własnych lub Klienta. Podejmujemy starania, by dostarczone przez IMPAQ rozwiązania były maksymalnie przejrzyste, konfigurowalne, proste w obsłudze i interpretacji wyników. Używane przez nas narzędzia: Selenium, JMeter, IBM Rational Functional Tester, HP Quality Center, HP QuickTest Professional, Fitnesse, BadBoy, Robot Framework, soapUI, loadUI i inne. Szybki proces przekształcania testów regresyjnych w wydajnościowe i/lub obciążeniowe. Rodzaje testów automatycznych Testy regresyjne w fazie utrzymania: przygotowany w czasie tworzenia oprogramowania zestaw testów jest wykorzystywany w fazie utrzymania. Przy niewielkim nakładzie pracy można zweryfikować, czy mała zmiana nie odbiła się na jakości istniejących funkcjonalności. Testy wydajnościowe (performance) przeprowadza się w celu weryfikacji, jak poszczególne komponenty systemu zachowują się w konkretnej sytuacji przy ustalonym obciążeniu (nieprzekraczającym wartości progowych). Weryfikuje się użycie zasobów, skalowalność oraz niezawodność, które pozwalają na wykrycie potencjalnych krytycznych problemów – jeszcze przed dostarczeniem aplikacji Klientom końcowym. Testy obciążeniowe (load) mają na celu monitorowanie zachowania systemu przy stale wzrastającym obciążeniu, aż do czasu osiągnięcia wartości progowej i utrzymaniu tego stanu przez dłuższy okres. Celem testów jest wykrycie usterek związanych z przepełnieniem bufora, wycieków i złego zarządzania pamięcią oraz określenie górnej granicy obsługi dla wszystkich komponentów aplikacji, takich jak bazy danych, sprzęt sieciowy itd. Posiadając statystyki (wzrastającego) użycia aplikacji można planować ulepszenia po stronie architektury lub sprzętu. Testy przeciążeniowe (stress) są wykonywane przy ilości użytkowników przekraczających wartości progowe i malejących zasobach systemowych. Celem jest zbadanie czy system „zawiedzie” w oczekiwany sposób. Testy przeciążeniowe umożliwiają znalezienie defektów w aplikacji działającej w trybie awaryjnym, pozwalają również zweryfikować, czy po awarii spowodowanej obciążeniem nie doszło do utraty danych. KOSZT WYKONANIA TESTÓW/WYDANIE Wybrane projekty Projekt automatyzacji testów regresji przeprowadzony na zlecenie wiodącej firmy ubezpieczeniowej. Zebranie i analiza wymagań przy ścisłej współpracy z Klientem. Stworzenie skryptów testowych. Pilotażowa implementacja. Dodanie testowania automatycznego do procesu tworzenia build’u – wsparcie Continuous Integration. Szkolenia personelu Klienta. Testy wydajnościowe dla jednego z banków operujących na rynku polskim. Analiza wymagań wydajnościowych. Sporządzenie skryptów testowych, parametryzowanych dynamicznie. Wykonanie testów wydajnościowych na środowiskach Klienta. Opracowanie wyników końcowych wraz z sugestiami potencjalnego rozwoju oprogramowania i infrastruktury. Testy wydajnościowe i obciążeniowe na zlecenie dostawcy usług IT dwóch wiodących operatorów telefonii komórkowej w Polsce. Aranżacja środowiska zarządzającego i nadzorującego wykonanie testów. Kluczowe benefity automatyzacji Skrócenie czasu wykonania testów regresji – przyspieszenie cyklu testowania. Szybki czas weryfikacji kluczowych funkcjonalności nowej wersji oprogramowania. Eliminacja błędów ludzkich i niekonsekwencji w realizacji testu. Raportowanie wyników w czasie rzeczywistym oraz jednoznaczność ich interpretacji. Możliwość wielokrotnego wykorzystania zestawu testów i ciągłego działania 24h/dobę przez 7 dni w tygodniu. Zwiększenie pokrycia kodu testami – modyfikowalne logiki i kombinacje wykonania Stworzenie scenariuszy i skryptów testowych – ponad tysiąc przekrojowych testów do celów pełnej regresji dotychczasowych usług. Wykonanie testów wydajnościowych oraz obciążeniowych uwzględniających planowane wykorzystanie oraz rozwój produktu i infrastruktury. Opracowanie procesów i mechanizmów monitorowania platform po wdrożeniu. konkretnych scenariuszy. Możliwość symulacji obciążeń produkcyjnych jak i ich przekraczania – weryfikacja zachowania aplikacji w rzeczywistym środowisku i krytycznych sytuacjach. Oferujemy: Projektowanie oraz zarządzanie: skryptami, scenariuszami oraz danymi testowymi. Budowanie i utrzymywanie środowisk testowych na serwerach Klienta lub własnych. Wykonywanie testów: wydajnościowych, obciążeniowych, przeciążeniowych, regresji, Dodatkowe informacje na temat IMPAQ www.impaqgroup.com akceptacyjnych. Wsparcie Continuous Integration testami automatycznymi. Interpretacje wyników, opracowanie raportów zbiorczych i wskaźników jakości. Justyna Rybarczyk Kierownik Zespołu ds. Zapewnienia Jakości IMPAQ Sp. z o.o. Os. Tysiąclecia 30, 61-255 Poznań Tel. +48 61 624 90 35 Fax +48 61 624 90 05 [email protected]