ISTQB 6


27 września 2019, 18:57

6. Narzędzia wspomagające testowanie — 40 min.
Słowa kluczowe automatyzacja testowania, narzędzie do testowania wydajności, narzędzie do wykonywania testów, narzędzie do zarządzania testami, testowanie oparte na słowach kluczowych, testowanie sterowane danymi
Cele nauczania — narzędzia wspomagające testowanie 6.1. Uwarunkowania związane z narzędziami testowymi FL-6.1.1. (K2) Kandydat potrafi sklasyfikować narzędzia testowe według przeznaczenia i obsługiwanych czynności testowych. FL-6.1.2. (K1) Kandydat potrafi zidentyfikować korzyści i czynniki ryzyka związane z automatyzacją testowania. FL-6.1.3. (K1) Kandydat pamięta o szczególnych uwarunkowaniach związanych z narzędziami do wykonywania testów i zarządzania testami. 6.2. Skuteczne korzystanie z narzędzi FL-6.2.1. (K1) Kandydat potrafi wskazać główne zasady wyboru narzędzi. FL-6.2.2. (K1) Kandydat pamięta cele stosowania projektów pilotażowych wprowadzających narzędzia. FL-6.2.3. (K1) Kandydat potrafi wskazać czynniki sukcesu związane z oceną, implementacją, wdrożeniem i bieżącą obsługą narzędzi testowych w organizacji.
6.1. Uwarunkowania związane z narzędziami testowymi
Narzędzia testowe służą do wspierania jednej lub wielu czynności testowych. Dostępne są między innymi następujące narzędzia:
• narzędzia używane bezpośrednio podczas testowania, takie jak narzędzia do wykonywania testów i narzędzia do przygotowywania danych testowych;
• narzędzia ułatwiające zarządzanie wymaganiami, przypadkami testowymi, procedurami testowymi, skryptami testów automatycznych, rezultatami testów, danymi testowymi, defektami oraz narzędzia raportujące i monitorujące wykonywanie testów;
• narzędzia służące do badania i oceny;
• inne narzędzia wspomagające testowanie (w tym znaczeniu narzędziem testowym jest również np. arkusz kalkulacyjny).
6.1.1. Klasyfikacja narzędzi testowych Zależnie od kontekstu narzędzia testowe mogą służyć realizacji jednego lub kilku z poniżej wymienionych celów:
• zwiększenie efektywności wykonywania czynności testowych poprzez zautomatyzowanie powtarzających się zadań lub tych zadań, których ręczne wykonywanie wymaga dużych zasobów lub istotnego wysiłku (np. wykonania testów, testów regresji);
• podniesienie wydajności czynności testowych poprzez wspieranie czynności manualnych w trakcie całego procesu testowego (patrz podrozdział 1.4.);
• podniesienie jakości wykonywanych czynności testowych poprzez zwiększenie spójności testowania i odtwarzalności defektów;
• zautomatyzowanie czynności, których nie można wykonać ręcznie (np. testowania wydajnościowego na dużą skalę);
• zwiększenie niezawodności testowania (np. poprzez zautomatyzowanie porównań obejmujących duże ilości danych bądź symulowanie zachowań).
Narzędzia mogą być klasyfikowane według kilku kryteriów, takich jak: przeznaczenie, cena, model licencjonowania (np. komercyjne lub open source) oraz stosowana technologia. W tym sylabusie narzędzia sklasyfikowano głównie na podstawie wspomaganych przez nie czynności testowych.
Niektóre narzędzia obsługują tylko lub głównie jedną czynność, natomiast inne pozwalają wykonywać kilka czynności. W drugim przypadku podstawą klasyfikacji jest czynność, z którą dane narzędzie jest najściślej związane. Należy również pamiętać, że narzędzia oferowane przez jednego dostawcę, a zwłaszcza narzędzia zaprojektowane z myślą o współpracy ze sobą, mogą być dostarczane w postaci zintegrowanego pakietu.
Niektóre typy narzędzi testowych mogą mieć charakter inwazyjny, co oznacza, że mogą wpływać na rzeczywisty wynik testu. Przykładem są dodatkowe instrukcje wykonywane przez narzędzie do testów wydajnościowych, które mogą powodować wydłużenie czasu odpowiedzi aplikacji, a zastosowanie narzędzia mierzącego pokrycie kodu może zakłócić pomiar pokrycia. Zjawisko to jest nazywane efektem próbnika.
Niektóre narzędzia posiadają funkcje, które są bardziej odpowiednie dla programistów. Przykładem mogą być narzędzia używane podczas testowania modułowego i integracyjnego. W kolejnych punktach narzędzia te oznaczono literą „P”.
 
Narzędzia wspomagające zarządzanie testowaniem i testaliami
Narzędzia do zarządzania mogą obejmować swoim działaniem wszystkie czynności testowe wykonywane przez cały cykl życia oprogramowania. Do narzędzi wspomagających zarządzanie testowaniem i testaliami zaliczyć można między innymi:
• narzędzia do zarządzania testami i narzędzia do zarządzania cyklem życia aplikacji;
• narzędzia do zarządzania wymaganiami (np. śledzenie do obiektów testów);
• narzędzia do zarządzania defektami;
• narzędzia do zarządzania konfiguracją; 
• narzędzia do ciągłej integracji (P).
Narzędzia wspomagające testowanie statyczne
Narzędzia do testowania statycznego są związane z aktywnościami i korzyściami opisanymi w rozdziale 3. Do narzędzi tych zaliczamy między innymi:
• narzędzia wspomagające przeprowadzanie przeglądów;
• narzędzia do analizy statycznej (P).
Narzędzia wspomagające projektowanie i implementację testów
Narzędzia do projektowania testów ułatwiają tworzenie utrzymywalnych produktów pracy — w tym przypadków testowych, procedur testowych i danych testowych — na etapie projektowania i implementacji testów. Do narzędzi tych zaliczamy między innymi:
• narzędzia do projektowania testów;
• narzędzia do testowania opartego na modelu;
• narzędzia do przygotowywania danych testowych;
• narzędzia do wytwarzania sterowanego testami akceptacyjnymi (ATDD) i zachowaniem (BDD);
• narzędzia do wytwarzania sterowanego testami (TDD) (P).
W niektórych przypadkach narzędzia wspomagające projektowanie i implementację testów mogą również wspomagać ich wykonywanie i logowanie (bądź przekazywać dane wyjściowe do innych narzędzi wspomagających wykonywanie i logowanie testów).
Narzędzia wspomagające wykonywanie i logowanie testów 
Istnieje wiele narzędzi wspomagających i usprawniających wykonywanie i logowanie testów. Do narzędzi tych zaliczamy między innymi:
• narzędzia do wykonywania testów (np. do uruchamiania testów regresji);
• narzędzia mierzące pokrycie (np. pokrycie wymagań lub kodu) (P);
• jarzma testowe (P);
• narzędzia do obsługi struktur do testów jednostkowych (P).
Narzędzia wspomagające pomiar wydajności i analizę dynamiczną
Narzędzia do pomiaru wydajności i analizy dynamicznej są niezbędne do wykonywania czynności związanych z testowaniem wydajnościowym i obciążeniowym, ponieważ czynności tych nie da się skutecznie wykonywać ręcznie. Do narzędzi tych zaliczamy między innymi:
• narzędzia do testów wydajnościowych;
• narzędzia monitorujące;
• narzędzia do analizy dynamicznej (P).
Narzędzia wspomagające wyspecjalizowane czynności testowe
Oprócz narzędzi wspomagających ogólny proces testowy istnieje również wiele innych narzędzi służących do wykonywania bardziej wyspecjalizowanych czynności testowych. Mogą to być między innymi narzędzia służące do:
• oceny jakości danych;
• konwersji i migracji danych;
• testowania użyteczności;
• testowania dostępności;
• testowania lokalizacji;
• testowania zabezpieczeń;
• testowania przenaszalności (np. testowanie oprogramowania na wielu wspieranych platformach).
6.1.2. Korzyści i czynniki ryzyka związane z automatyzacją testowania Sam zakup narzędzia nie gwarantuje jeszcze sukcesu. Osiągnięcie realnych i trwałych korzyści z wdrożenia w organizacji nowego narzędzia zawsze wymaga dodatkowego wysiłku. Ponadto, obok potencjalnych korzyści i szans z użytkowania narzędzi do testowania, wiąże się z nimi również określone ryzyko, zwłaszcza w przypadku narzędzi do wykonywania testów (np. w projektach automatyzacji testowania).
Potencjalne korzyści wynikające z zastosowania narzędzi wspomagających testowanie to między innymi:
• ograniczenie powtarzalnych czynności wykonywanych ręcznie (takich jak uruchamianie testów regresji, wykonywanie zadań związanych z konfigurowaniem i de-konfigurowaniem środowiska, wielokrotne wprowadzanie tych samych danych testowych czy sprawdzanie zgodności ze standardami tworzenia kodu), co pozwala na zaoszczędzenie czasu;
• zwiększenie spójności i powtarzalności (np. poprzez spójne tworzenie danych testowych, wykonywanie testów przy użyciu narzędzia w tej samej kolejności i z tą samą częstotliwością bądź wyprowadzanie testów w spójny sposób z wymagań);
• bardziej obiektywna ocena rezultatów testów (np. w zakresie miar statycznych czy pokrycia);
• łatwiejszy dostęp do informacji na temat testowania (np. do danych statystycznych i wykresów obrazujących postęp testów, współczynników występowania defektów oraz danych dotyczących wydajności).
Do potencjalnych czynników ryzyka związanych z  zastosowaniem narzędzi wspomagających testowanie należą:
• nierealistyczne oczekiwania wobec narzędzia (dotyczące między innymi funkcjonalności i łatwości obsługi);
• niedoszacowanie czaso- i pracochłonności oraz kosztów początkowego wdrożenia narzędzia (w tym szkoleń i korzystania z usług zewnętrznych ekspertów);
• niedoszacowanie czaso- i pracochłonności działań niezbędnych do osiągnięcia znaczących i trwałych korzyści z tytułu używania narzędzia (w tym nakładów niezbędnych do wprowadzenia zmian w procesie testowym oraz ciągłego doskonalenia sposobu wykorzystania narzędzia);
• niedoszacowanie nakładów pracy związanych z utrzymaniem artefaktów testowych generowanych przez narzędzie;
• nadmierne uzależnienie od narzędzia (np. traktowanie narzędzia jako substytutu projektowania lub wykonywania testów bądź stosowanie automatycznego testowania w sytuacji, w której lepsze byłoby testowanie ręczne);
• zaniedbanie kontroli wersji zasobów testowych;
• zlekceważenie zależności pomiędzy newralgicznymi narzędziami (takimi jak: narzędzia do zarządzania wymaganiami, narzędzia do zarządzania konfiguracją, narzędzia do zarządzania defektami czy narzędzia od różnych dostawców) a problemami związanymi z ich współdziałaniem;
• możliwość zakończenia przez dostawcę działalności, wycofania narzędzia lub sprzedaży narzędzia innemu dostawcy;
• niska jakość usług dostawcy w zakresie pomocy technicznej bądź dostarczania uaktualnień lub poprawek usuwających defekty w narzędziu;
• możliwość wstrzymania realizacji projektu w przypadku narzędzia typu open source;
• możliwość braku współpracy narzędzia z nowymi platformami lub technologiami;
• możliwość braku jednoznacznego określenia odpowiedzialności za narzędzie (np. w zakresie mentoringu, aktualizacji itd.).
6.1.3. Szczególne uwarunkowania związane z narzędziami do wykonywania testów i zarządzania testami Aby sprawnie i pomyślnie zaimplementować narzędzia do wykonywania testów i zarządzania testami w organizacji, na etapie ich wyboru i integracji należy uwzględnić kilka istotnych czynników.
Narzędzia do wykonywania testów Narzędzia do wykonywania testów umożliwiają uruchamianie przedmiotu testów przy użyciu skryptów testów automatycznych. W przypadku tego typu narzędzi uzyskanie istotnych korzyści wymaga często dużego nakładu pracy.
Projektowanie testów poprzez rejestrowanie działań wykonywanych ręcznie przez testera wydaje się atrakcyjnym rozwiązaniem, ale podejście to nie zapewnia skalowalności niezbędnej w przypadku dużej liczby skryptów testowych. Zarejestrowany skrypt jest liniowym odwzorowaniem obejmującym konkretne dane i akcje, w związku z czym może okazać się niestabilny w przypadku wystąpienia nieprzewidzianych zdarzeń. Rozwiązania najnowszej generacji, które korzystają z „inteligentnej” technologii rejestrowania obrazu, zwiększają przydatność narzędzi tej klasy, jednak wygenerowane skrypty nadal wymagają ciągłej pielęgnacji w związku z rozwojem interfejsu użytkownika systemu.
Podejście do testowania sterowane danymi zakłada wydzielenie danych wejściowych i oczekiwanych rezultatów (zwykle do arkusza kalkulacyjnego) oraz zastosowanie bardziej generycznego skryptu testowego, który odczytuje dane wejściowe i wykonuje testy przy użyciu różnych danych. Dzięki temu nowe dane testowe na potrzeby predefiniowanych skryptów mogą tworzyć testerzy nie znający języka skryptowego.
W przypadku testowania opartego na słowach kluczowych stosuje się generyczny skrypt, który przetwarza słowa kluczowe opisujące wykonywane akcje (zwane także słowami akcji), a następnie wywołuje się odpowiednie skrypty przetwarzające dostarczone dane testowe. Dzięki temu testerzy mogą definiować testy przy użyciu słów kluczowych i związanych z nimi danych (nawet jeśli nie znają języka skryptowego), a następnie dostosowywać je do potrzeb testowanej aplikacji. Dalsze informacje i przykłady dotyczące podejścia sterowanego danymi i testowania opartego na słowach kluczowych w [ISTQB® TAE], a także w [Fewster 1999] oraz [Buwalda 2001].
Powyższe podejścia wymagają znajomości języka skryptowego (przez testerów, programistów lub specjalistów z dziedziny automatyzacji testowania). Bez względu na zastosowaną technikę skryptową, oczekiwane rezultaty poszczególnych testów należy porównać z rzeczywistymi rezultatami testu wykonanego metodą dynamiczną (porównanie podczas wykonywania testu) lub z wykorzystaniem zapisanych — do późniejszego wykorzystania — informacji (porównanie po wykonaniu).
Narzędzia do testowania opartego na modelu pozwalają zarejestrować specyfikację funkcjonalną w postaci modelu takiego jak diagram aktywności. Zadanie to wykonuje zazwyczaj projektant systemu. Narzędzie interpretuje model i tworzy na jego podstawie specyfikacje przypadków testowych, które można następnie zapisać w narzędziu do zarządzania testami i/lub wykonać za pomocą narzędzia do wykonywania testów (patrz [ISTQB® MBT]).
Narzędzia do zarządzania testami
Narzędzia do zarządzania testami muszą często komunikować się z innymi narzędziami  lub arkuszami kalkulacyjnymi z wielu powodów, np. takich jak:
• w celu generowania użytecznych informacji w formacie zgodnym z potrzebami organizacji;
• w celu utrzymania możliwości śledzenia powiązań z wymaganiami w narzędziu do zarządzania wymaganiami;
• w celu tworzenia powiązań z informacjami o wersjach przedmiotu testów w narzędziu do zarządzania konfiguracją. 
Kwestię tę należy wziąć pod uwagę zwłaszcza w przypadku korzystania z narzędzia zintegrowanego (np. narzędzia do zarządzania cyklem życia aplikacji), które obejmuje zarówno moduł zarządzania testami (oraz potencjalnie system zarządzania defektami), jak i inne moduły (dostarczające np. informacje na temat harmonogramu i budżetu projektu), które są używane przez różne grupy użytkowników w organizacji.
6.2. Skuteczne korzystanie z narzędzi
6.2.1. Główne zasady wyboru narzędzi Najważniejsze kwestie, które należy wziąć pod uwagę przy wyborze narzędzia dla organizacji, to między innymi:
• dokonanie oceny dojrzałości organizacji oraz jej mocnych i słabych stron;
• wskazanie możliwości udoskonalania procesu testowego dzięki wykorzystaniu narzędzi;
• zapoznanie się z technologiami stosowanymi w ramach przedmiotu testów w celu wybrania zgodnego z nimi narzędzia;
• uwzględnienie narzędzi do budowania wersji i ciągłej integracji, które są już używane w danej organizacji, w celu zapewnienia kompatybilności i integracji;
• dokonanie oceny narzędzia zgodnie z jednoznacznymi wymaganiami i obiektywnymi kryteriami;
• uwzględnienie dostępności (i czasu trwania) bezpłatnego okresu próbnego w przypadku danego narzędzia;
• dokonanie oceny dostawcy (między innymi w zakresie szkoleń, pomocy technicznej i aspektów handlowych) lub możliwości obsługi narzędzi niekomercyjnych (np. open source);
• zidentyfikowanie wewnętrznych wymagań dotyczących coachingu i mentoringu w zakresie korzystania z narzędzia;
• dokonanie oceny potrzeb szkoleniowych z uwzględnieniem umiejętności w zakresie testowania (i automatyzacji testowania) posiadanych przez osoby, które będą pracować bezpośrednio z danym narzędziem;
• uwzględnienie zalet i wad poszczególnych modeli licencyjnych (np. licencji komercyjnych lub open source);
• oszacowanie stosunku kosztów do korzyści na podstawie konkretnego przypadku biznesowego (jeśli jest to wymagane).
Ostatnim krokiem procesu wyboru narzędzia powinno być przeprowadzenie dowodu słuszności przyjętej koncepcji w celu ustalenia, czy dane narzędzie działa sprawnie w połączeniu z testowanym oprogramowaniem i w ramach bieżącej infrastruktury oraz wskazanie ewentualnych zmian w infrastrukturze, które będą niezbędne do skutecznego korzystania z wybranego narzędzia.
6.2.2. Projekty pilotażowe związane z wprowadzaniem narzędzia w organizacji Po dokonaniu wyboru narzędzia i pomyślnym przeprowadzeniu dowodu słuszności przyjętej koncepcji można rozpocząć wprowadzanie tego narzędzia w organizacji. Pierwszym etapem tego procesu jest zwykle projekt pilotażowy, który ma na celu:
• szczegółowe zapoznanie się z narzędziem (w tym z jego mocnymi i słabymi stronami);
• ustalenie, na ile dane narzędzie jest dopasowane do istniejących procesów i praktyk oraz wskazanie niezbędnych zmian;
• podjęcie decyzji w zakresie standardowych sposobów użytkowania, przechowywania i utrzymywania narzędzia i zasobów testowych oraz zarządzania nimi (np. ustalenie konwencji nazewnictwa plików i testów, wybór standardów tworzenia kodu, utworzenie bibliotek oraz określenie modułowości zestawów testów);
• oszacowanie, czy spodziewane korzyści będzie można osiągnąć uzasadnionym kosztem;
• zapoznanie się z miarami, które mają być zbierane i raportowane przez narzędzie oraz skonfigurowanie narzędzia w sposób gwarantujący ich zbieranie i raportowanie.
6.2.3. Czynniki sukcesu związane z narzędziami Wśród czynników sukcesu związanych z oceną, implementacją, wdrożeniem i bieżącą obsługą narzędzia w organizacji należy wymienić:
• przyrostowe wdrażanie narzędzia w pozostałych częściach organizacji;
• dostosowywanie i udoskonalanie procesów pod kątem współpracy z narzędziem;
• zapewnienie użytkownikom narzędzia odpowiednich szkoleń, coachingu i mentoringu;
• określenie wytycznych dotyczących korzystania z narzędzia (np. wewnętrznych standardów dotyczących automatyzacji);
• wprowadzenie mechanizmu zbierania informacji na temat sposobów użytkowania narzędzia;
• monitorowanie użytkowania narzędzia i wynikających z tego korzyści;
• zapewnienie użytkownikom narzędzia niezbędnej pomocy technicznej;
• zbieranie doświadczeń od wszystkich użytkowników.
Należy również zadbać o integrację techniczną i organizacyjną narzędzia w każdym cyklu życia oprogramowania, w którego realizację mogą być zaangażowane odrębne jednostki organizacyjne odpowiedzialne za działalność operacyjną i/lub zewnętrzni dostawcy.
Więcej informacji na temat użytkowania narzędzi do wykonywania testów można znaleźć np. w [Graham 2012].
 

Do tej pory nie pojawił się jeszcze żaden komentarz. Ale Ty możesz to zmienić ;)

Dodaj komentarz