Porównanie narzędzi open source w zarządzaniu testowaniem. Część 1.

Przedstawiamy pracę dyplomową, której autor analizuje klasyfikację narzędzi zarządzania testowaniem i ich obecność w procesie testowy.

 

Wstęp

W obecnych czasach, nieświadomi wielu udogodnień technicznych, często nie zdajemy  sobie z tego sprawy, że niemal na każdym kroku spotykamy się z różnego rodzaju oprogramowaniem. Na przykład gdy dokonujemy zakupu: kasy fiskalne, terminale płatnicze, biletomaty oparte są na oprogramowaniu, które kiedyś musiało być odpowiednio przetestowane, zanim można było je zainstalować i z niego skorzystać. 

Proces testowania, na pierwszy rzut oka wydaje się dość prosty. Zespoły testerskie otrzymują oprogramowanie, sprawdzają czy działa poprawnie, po czym wystawiają ocenę danemu oprogramowaniu. Nic bardziej mylnego. Zespoły testerskie muszą dokładnie zapoznać się z dokumentacją danego oprogramowania, by móc wdrożyć odpowiednie działania. Osoby decyzyjne, w tym liderzy zespołów sprawują piecze nad wszystkim. Swoją pracę wykonują przy pomocy niezliczonej liczby narzędzi, np. open source (opartych na otwartym kodzie), które wspierają osoby decyzyjne w zarządzaniu testowaniem. 

Celem niniejszej pracy, jest przedstawienie narzędzi open source, które wspierają zarządzanie testowaniem oraz ich obiektywne porównanie. Narzędzia te są w pełni darmowe. W Polsce coraz bardziej dostrzega się potencjał narzędzi open source.  W niektórych krajach zaczęły już wypierać komercyjne.  Narzędzia Open Source często oferują więcej funkcjonalności, a przede wszystkim są elastyczne (można je dostosować do własnych potrzeb). Największą zaletą narzędzi open source są darmowe licencje. Za użytkowanie nie płacimy nic, ale istnieją komponenty, za które użytkownik może zapłacić, aczkolwiek nie są one obligatoryjne. Kolejnym atutem tego oprogramowania, jest otwartość kodu, czyli to co stanowi szkielet i funkcjonalność danego narzędzia. Możliwość dostosowywania narzędzia w taki sposób, by odpowiadało potrzebom osób zarządzającym projektami testowymi, jest zdecydowanym ułatwieniem. Istnieje możliwość tworzenia i udostępniania oprogramowania tworzonego na bazie istniejącego narzędzia Open Source. Udostępnienie takiego narzędzia musi być również darmowe1.

Jak już zostało wspomniane, narzędzia open source są w pełni darmowe, aczkolwiek użytkownik może zapłacić za ewentualne wsparcie oraz dodatkowe usługi. Jedną z takich usług może być usługa wdrożeniowa oprogramowania. Firmy nie znające konstrukcji oprogramowania same nie są w stanie tworzyć modyfikacji i udogodnień, które odpowiadałyby przełożonym. Do tego celu służą usługi wdrożeniowe, świadczone przez firmy, które tworzą, instalują, modyfikują oraz dostosowują oprogramowanie w taki sposób, by był idealny dla klienta. Kolejną ewentualną usługą, może być opieka nad wdrożonym oprogramowaniem.

Narzędzia open source wybrane do porównania to - TestLink, Test Arena, Tarantula Agile Test Management Tool, Testopia, qaManager oraz Radi.

 

Rozdział 1

1. Narzędzia testowania i ich obecność w procesie testowym

1.1 Definicja narzędzia

Wiele czynności,  wykonywanych  przez ludzkość, nie byłoby finalizowanych tak szybko, gdyby nie pomoc odpowiednich narzędzi. Dotyczy to również testowania. Testerzy wykonują szereg czynności, które są czasochłonne i wymagają cierpliwości. Zgłaszane są na bieżąco błędy, zaobserwowane przez testerów, jak i programistów. Czym, więc są owe narzędzia testowania? Według Adama Romana z jego książki Testowanie i Jakość Oprogramowania  narzędzia testerskie to: "Oprogramowanie wspomagające jedną, lub kilka czynności testowych, takich jak planowanie, zarządzanie, specyfikacja, budowanie początkowych plików i danych, wykonanie i analiza testów"2

Z definicji można łatwo wywnioskować, iż jest to narzędzie, które ma pomóc osobom partycypującym w testowaniu danego oprogramowania w wykonywaniu pracy. Narzędzia testowania są obecne w każdym etapie cyklu życia produktu.

 

1.2 Klasyfikacja narzędzi testowych

Obecnie istnieje duża liczba narzędzi testowych. Jedne wspomagają testerów w wykonywaniu pojedynczej czynności, a inne można uznać za wielofunkcyjne. Narzędzia klasyfikowane są według czynności, w  których zazwyczaj są wykorzystywane. Sylabus ISTQB, który postrzegany jest jako kompendium wiedzy dla testerów przedstawia klasyfikację w następujący sposób:

  • Narzędzia do zarządzania testowaniem i testami
  • Narzędzia dla testów statycznych
  • Narzędzia dla specyfikacji testów
  • Narzędzia dla wykonywania testów oraz logowania
  • Narzędzia dla testów wydajnościowych i monitorowania
  • Wsparcie narzędziowe dla różnych obszarów zastosowań.

Z racji, iż niniejsza praca dotyczy narzędzi do zarządzania testowaniem, tylko ta kategoria zostanie szerzej opisana. 

Narzędzia do zarządzania testowaniem i testami - dzielą się na następujące: 

  • Narzędzia do zarządzania testami - dostarczają one interfejsów do wykonywania zadań, śledzą zaraportowane defekty,  wspierają analizę oraz raportowanie obiektów. Owe narzędzia pozwalają na śledzenie powiązań pomiędzy tymi obiektami i mogą posiadać własne mechanizmy do zarządzania wersjami oprogramowania.
  • Narzędzia do zarządzania wymaganiami - przechowują teksty wymagań i ich atrybuty, generują unikalne identyfikatory, jak również wspierają testerów w śledzeniu powiązań pomiędzy zidentyfikowanymi wymaganiami
  • Narzędzia do zarządzania incydentami - narzędzie wspierające zarządzanie zgłoszonymi incydentami.

 

Całościowy system do zarządzania incydentami powinien zawierać:

  • elastyczne narzędzia redukujące natłok zdarzeń prezentowanych administratorowi.
  • skalowalny interfejs graficzny, prezentujący selektywną informację odpowiednim osobom.
  • metody powiadamiania określonych grup obsługi technicznej zarządzania, a także użytkowników o pojawiających się problemach.
  • narzędzia do korelacji zdarzeń, zmniejszające czas lokalizowania i izolacji uszkodzeń, uwalniające od konieczności angażowania ekspertów.
  • narzędzia wspomagające szybką ocenę wpływu uszkodzenia na biznes (usługi, klientów).

 

1.3 Wybór odpowiedniego narzędzia testowania

W poprzednich podrozdziałach zostały zdefiniowane narzędzia testowania oraz dokonano ich  podziału. Gdy osoby zarządzające podejmą decyzję o użyciu narzędzia, bądź narzędzi, należy dobrać te, które najlepiej będą dopasowane do charakteru projektu i będą przydatne dla testerów. 

Wyboru narzędzia można dokonać poprzez analizę, według następujących kryteriów:

  • Spełnienie wymagań
  • Oczekiwania technologiczne
  • Przyuczanie / umiejętności
  • Aspekt Zarządczy / Organizacyjny.

 

1.3.1 Spełnienie wymagań

Na rynku istnieje wiele różnych narzędzi testerskich. Istotną rzeczą jest przeanalizowanie, jakie dokładnie wymagania owe narzędzie musi spełniać.Dobór odpowiedniego narzędzia pozwala zaoszczędzić czas na wykonanie pracy, co za tym idzie, również pieniędzy wydatkowanych na roboczogodziny testerów.

Należy również szeroko spojrzeć na specyfikację testowanej aplikacji. Zważywszy na fakt, iż następuje szybki rozwój technologii, jest prawdopodobne, że narzędzia nie będą kompatybilne  z testowanym oprogramowaniem (przykładem może być JAVA SDK support). Jeśli oprogramowanie korzysta z nowszej wersji JAVA SDK support (załóżmy, że jest to wersja 2), a narzędzie testowania korzysta ze starszej wersji JAVA SKD support (załóżmy 1.2), w tej sytuacji wszystkie komponenty oprogramowania zaprogramowane zostały w wersji 2.0. Wszystkie możliwości, które są zawarte w wersji 2.0, a które nie były jeszcze dostępne w wersji 1.2, nie będą testowane przez narzędzie. Dopiero firma zajmująca się dostarczeniem danego narzędzia, musi przygotować aktualizację,  która będzie pozwalała na przetestowanie wszystkich komponentów. W tej sytuacji realizacja projektu może rozciągnąć się w czasie (będzie czasochłonny). Narzędzia nie potrafią rozróżniać błędów w produkcie, od tych, które mogą zaistnieć w przypadkach testowych, co powoduje, że więcej czasu zespół musi poświęcić  analizie przypadków testowych oraz testowaniu manualnemu.

 

1.3.2 Oczekiwania technologiczne

Narzędzia open source pozwalają deweloperom na poszerzenie/modyfikacje funkcjonalności frameworku. Jeżeli zespół nie jest wystarczająco kompetentny by to zrobić, poszerzanie narzędzi o nowe funkcje może zaoferować również dystrybutor danego narzędzia, co wiąże się z dodatkowymi kosztami. Odpowiednie skonfigurowanie narzędzia pozwoli spełnić oczekiwania technologiczne stawiane przed narzędziem.

Narzędzia nie muszą być międzyplatformowe. Wspierają je systemy operacyjne oraz skrypty, dla których zostały stworzone. Niekoniecznie muszą być kompatybilne z systemami wdrożonymi w firmie klienta.

Narzędzia testerskie są w stanie przetestować produkt, nie zważając na jego oddziaływanie na środowisko testowe. Gdy następuje analiza wpływu produktu na sieć, lub system operacyjny, pierwszym podejrzeniem w przypadku wykrycia nieprawidłowości powinno być samo narzędzie, dlatego przed przeprowadzeniem takiej analizy narzędzie zostaje odinstalowane3.

 

1.3.3 Przyuczanie / umiejętności

Istotną rzeczą jest nauczenie się obsługi narzędzia. Należy zdefiniować, czy wymagane jest przeszkolenie pracowników, jeśli tak, to jakie szkolenie i dla kogo powinno być zorganizowane. Niektóre narzędzia testowania są bardzo rozbudowane i posiadają szereg funkcji, które niekoniecznie przydadzą się w pracy testerom. Należy również zidentyfikować, czy istnieje osoba w organizacji, która mogłaby się podjąć  przeszkolenia pracowników. Jeżeli firma nie może zagwarantować szkoleń wewnętrznych, należy zwrócić się o doradztwo w sprawie wdrożenia, jak i utrzymania urządzenia do firm doradczych. To może się wiązać się z dodatkowym nakładem finansowym, jednak  jest to niezbędne by pracownicy zaznajomili się z aspektami narzędzia, które będą przydatne podczas wykonywania pracy.

 

1.3.4 Aspekt Zarządczy / Organizacyjny

W aspekcie zarządczym można śmiało mówić o organizacji jako całość i przede wszystkim należy zwrócić uwagę na jej poziom dojrzałości. Dojrzała organizacja posiada już zdefiniowane procesy, podział ról, kompetencji i liczne programy (tj. rozwojowe, wdrożeniowe). W kontekście wdrożenia narzędzi, dużą rolę może odgrywać program wdrożeniowy organizacji. Jeśli program będzie błędnie zdefiniowany, nowi pracownicy będą mieli problem z zapoznaniem się z narzędziem.

Kolejną istotną rzeczą z perspektywy organizacji mającą wpływ na wybór narzędzia, jest oszacowanie ROI. Jest to miernik, który przedstawia stosunek potencjalnych zysków do potencjalnych kosztów, wliczając w to koszt zakupu narzędzia. Miernik ten, może w łatwy sposób przedstawić, czy wdrożenie danego narzędzia testerskiego będzie opłacalne.

Przy wyborze odpowiedniego narzędzia testerskiego można zastosować również tzw. proof of concept, czyli inaczej dowód słuszności pomysłu. Polega on na poprowadzeniu pilotażowego projektu, uwzględniając w tym narzędzie, które potencjalnie będzie używane powszechnie w przyszłości. Głównym celem takiego projektu jest sprawdzenie, czy dane narzędzie jest przydatne w wykonywanej pracy. Projekt ten pozwala na dokładne zapoznanie się z narzędziem, jak również zaplanować jego dalsze wdrożenie na poziomie organizacji, jeśli się sprawdzi4.

 

1.4 Korzyści wdrożenia narzędzi do zarządzania testowaniem

Firmy IT specjalizujące się w testach, jak również te które posiadają wewnętrzną komórkę testerską kupują narzędzia testerskie, by ułatwić pracę oraz by czerpać z tego korzyści. Często w natłoku pracy testerzy mają tendencję do zapominana o istotnych rzeczach. Z pomocą przychodzą narzędzia do testowania. Vijay Shinde w swojej książce "Software Testing Career Package" wymienił następujące korzyści z korzystania narzędzi testerskich:

  • Zorganizowanie wszystkich przypadków testowych w jednym narzędziu daje możliwość skrócenia czasu zarządzania danymi przypadkami testowymi.
  • Narzędzia do zarządzania testowaniem umożliwiają dostarczenie dokładnego statusu przeprowadzonych testów na każdym etapie cyklu życia projektu testowego, dając kadrze zarządzającej projektem czas na podjęcie odpowiednich decyzji związanych z wypuszczeniem oprogramowania na rynek.
  • Można w łatwy sposób filtrować przypadki testowe ze względu na ich priorytet, co pozwala na lepsze zaplanowanie wykonania przypadków testowych, by jak najbardziej zminimalizować przesunięcie się projektu w czasie.
  • Można uniknąć duplikacji przypadków testowych.
  • Łatwość wycofania przeterminowanych przypadków testowych.
  • Dobre pokrycie dostępnej dokumentacji w przypadkach testowych5.

 

Inne korzyści wdrożenia danego narzędzia można zasięgnąć z Sylabusa ISTQB, a są nimi:

  • redukcja czasu pracy powtarzalnej
  • zwiększenie spójności i powtarzalności wykonywania testów
  • obiektywna ocena rezultatów 
  • łatwy dostęp do informacji o testach i przeprowadzonym testowaniu6.

 

1.5 Ryzyko związane z wdrożeniem narzędzi do zarządzania testowaniem

Wraz z podejmowaniem decyzji związanych z przeprowadzanym projektem, na każdym etapie, możemy spotkać się z elementem ryzyka. W skrócie ryzyko można zdefiniować jako niepewne zdarzenie, lub zbiór niepewnych zdarzeń, które jeżeliby  miały miejsce, to wpłyną na osiągnięcie wyznaczonych celów7

Adam Roman w książce Testowanie i Jakość Oprogramowania podzielił ryzyko związane z wdrożeniem narzędzi testowania na trzy kategorie:

  • ryzyko związane z błędną analizą oraz szacunkami przeprowadzanymi w etapie planowania projektu - np. zbyt wygórowane oczekiwania stawiane przed narzędziem, niedoszacowanie czasu i kosztów wdrożenia oraz czasu potrzebnego do osiągnięcia korzyści, błędne śledzenie zwrotu z inwestycji.
  • ryzyko powiązane z projektem w fazie testów - czyli sam proces testowy, tworzenie takowego procesu, jak również przeprowadzanie testów - np. traktowanie narzędzia jako rzecz nieomylną, brak wykorzystania kontroli wersji testaliów, lekceważenie zależności i problemów z współpracą krytycznych narzędzi, brak dokładniejszej kontroli testów manualnych (może powodować kosztowne zmiany), rezygnacja z czynnika ludzkiego w procesie testowania.
  • ryzyko zewnętrze - związane z dostawcą danego narzędzia- np. reakcja (lub jej brak) dostawcy w ramach wsparcia, wstrzymanie wparcia dla narzędzia open source, brak zdolności we wspieraniu nowej platformy

Wszystkie ryzyka związane z wdrożeniem narzędzia podlegają zarządzaniu, po ich identyfikacji oraz dokładnym przeanalizowaniu, należy zastosować działania mające na celu załagodzić, lub (jeśli to możliwe) wyeliminowaniu ryzyka. Należy pamiętać, że narzędzia wspomagające zarządzanie testowaniem również są oprogramowaniem, w którym mogą (choć nie powinny) występować błędy. Dużą rolę odgrywa tu też połączenie z siecią Internet. Każde dobrze znane narzędzie bazuje na połączeniu z Internetem, jeżeli ze strony dostawcy występują jakiekolwiek problemy, zazwyczaj rzutuje to na postęp pracy testerów i istnieje ryzyko opóźnienia8.


1 Portal www.informatykawfirmie.pl, art. "Oprogramowanie Open Source: Czy zawsze jest darmowe?", 16.03.2014, http://informatykawfirmie.pl/systemy-informatyczne/21-oprogramowanie-open-source-, z dnia 20.01.2017, 18:27
2 A. Roman, Testowanie i Jakość Oprogramowania, PWN, Warszawa 2015, str. 682
3 D. Srinivasan, R. Gopalaswamy, Software Testing - Principles and Practices, Dorling Kindersley, Indie 2009 s. 75
4 A. Roman, Testowanie i Jakość Oprogramowania, PWN, Warszawa 2015, str. 684-685
5 V. Shinde, Software Testing Career Package, Software Testing Help, http://www.softwaretestinghelp.com/, str. 40
6 A. Roman, Testowanie i Jakość Oprogramowania, PWN, Warszawa 2015, str. 687-688
7 Zarządzanie Ryzykiem: Przewodnik dla praktyków, Crown Copyright, Londyn 2007, str. 3
8 A. Roman, Testowanie i Jakość Oprogramowania, PWN, Warszawa 2015, str. 686
 
 
 
 
Autor: Marcin Podsiadły

 

 

 
SPRAWDŹ TAKŻE
 
 
 
 

Najbliższe terminy szkoleń

 

28-30 listopada - Katowice

ISTQB Poziom Podstawowy (Foundation Level)


28 listopada-1 grudnia - Wrocław

Zawód Tester


4-6 grudnia - Warszawa

ISTQB Poziom Podstawowy (Foundation Level)

 

Partnerzy

Narzędzia testerskie