Tworzenie aplikacji przestało być domeną dużych software house’ów, a stało się działalnością firm z różnych branż. Obecnie większość korporacji, które dostarczają klientom lub pracownikom jakiekolwiek rozwiązania IT, tworzy je samodzielnie. Wzrasta więc nie tyle zapotrzebowanie na systemy umożliwiające tworzenie oprogramowania, co na rozwiązania automatyzujące i przyspieszające cały proces.
Jednym ze strategicznych etapów pracy nad tworzeniem oprogramowania jest testowanie – przetestować należy każdą, pojedynczą „paczkę” kodu tak, aby jak najszybciej zidentyfikować i naprawić błędy. Oprócz automatyzacji ważne jest, aby środowisko niwelowało silosy pomiędzy zespołem programistów a zespołami operacyjnymi (zgodnie z założeniami DevOps).
Obie te potrzeby spełnia Jira Software w połączeniu z aplikacją Xray oraz dodatkowymi narzędziami do tworzenia oprogramowania.
Xray – korzyści
- Aplikacja sprawdzona przez tysiące użytkowników– jak informuje producent, korzysta z niej ponad 5000 klientów z 70 krajów na całym świecie.
- Niższa cena od aplikacji konkurencyjnych. Polecamy: Xray vs Zephyr.
- Kompatybilność z narzędziami Atlassian – umożliwia zarządzanie wszystkimi testami w formie zgłoszeń (Jira issues) w Jira Software.
- Zapewnia automatyzację testów zgodnie z metodologią BDD oraz integrację z frameworkami takimi jak m.in.: JUnit, NUnit, Robot, Behave, Selenium
- Xray współdziała z rozwiązaniami DevOps (np. Jenkins, Bamboo, GitLab) i spełnia założenia tej idei.
- Zaawansowane raportowanie, widoki (dashboardy) dostosowane do potrzeb zespołu, gadżety.
Polecamy: Xray Test Management – Product Walkthrough for Jira Server/DC:
Dla kogo?
- dla każdej firmy, która tworzy lub odbiera oprogramowanie.
- m.in. software development house, telekomunikacja, bankowość i finanse, energetyka, spedycja.
Z czego zbudowane jest rozwiązanie? Główne komponenty
- Jira Software
- Xray
- Cucumber
- GitLab/ Bitbucket
- Jenkins / Bamboo
+ dodatkowe narzędzia umożliwiające prowadzenie konkretnych rodzajów testów (np. testy API, Mobile, UI, testy bezpieczeństwa, wydajnościowe a także raportowanie)
Poszczególne narzędzia mogą się różnić w zależności od tego, jakich rozwiązań używa firma.
Jak to wygląda? Przykładowy proces automatyzacji testów i jego najważniejsze cechy:
- Wspólny standard opracowywania testów manualnych i automatycznych przy pomocy Cucumber.
- Powiązania między wymaganiami, testami, wynikami i defektami.
- Pełna automatyzacja CI/CD przy pomocy Jenkins Pipeline, pozwala na wcześniejsze i szybsze testy (shift left).
- Pełna integracja z narzędziami do automatyzacji testów, umożliwiająca uruchamianie testów z poziomu Xray i automatyczne pobieranie wyników z ich wykonania.
- Łatwe planowanie testów, generowanie raportów i tworzenie niestandardowych tablic Jira do śledzenia postępu projektu.
- Usprawniona komunikacja w zespole.
- Możliwość integracji z innymi systemami za pomocą REST API.
Co umożliwia?
Połączenie funkcjonalności Jira Software z wybranymi aplikacjami umożliwia: przygotowanie, realizację, monitorowanie, zarządzanie testami automatycznymi oraz analizę ich wyników w sposób scentralizowany. Zespół wytwarzający oprogramowanie otrzymuje spójne środowisko do zwinnego zarządzania zadaniami w oparciu o zgłoszenia w systemie Jira Software oraz do automatycznego testowania poprzez wykorzystanie metodologii BDD (behavioral-driven development). Platforma zawiera także funkcjonalności Jenkinsa do działań CI/CD oraz dodatkowe wtyczki i skrypty, dzięki czemu usprawnia pracę całego zespołu. Mimo zastosowania wielu różnych narzędzi, stanowi spójne, zintegrowane i kompleksowe rozwiązanie.
Organizacja testów
Proces testowy
Proces testowy składa się z kilku etapów, które zawierają następujące czynności:
- Planowanie wykonania testów
- Projektowanie testów
- Wykonanie testów
- Monitorowanie postępów
- Generowanie raportów i analiza wyników
Platforma zbudowana z Jira Software + Xray + Cucumber + Jenkins + (inne aplikacje do zarządzania testami), zapewnia płynne przejście każdego etapu tak, aby zespoły mogły sprawnie przeprowadzić cały proces oraz nie musiały wykonywać powtarzających się czynności; mechanizmy automatyzacji sprawiają, że całość odbywa się w odpowiednio zorganizowanym porządku działań. Poniżej przedstawimy skrócone opisy każdego z nich.
1. Planowanie wykonania testów
Planowanie testów może przybierać różną formę, w zależności od przyjętych kryteriów oraz potrzeb projektowych. Konieczne do określenia są takie czynniki jak:
- Rodzaj planowanych testów.
- Określenie wymagań, które chcemy sprawdzić.
- Określenie sposobu, w jaki chcemy sprawdzić wymagania: automatyczne/manualne.
- Alokacja zasobów.
- Kto, gdzie i kiedy wykona testy.
Rozwiązanie, które proponujemy posiada funkcjonalność (obiekt „Test Plan” zapewniony dzięki Xray), która umożliwia zgromadzenie testów dla danej wersji, wewnątrz swojego planu testów; utworzony w ten sposób plan testów pokazuje wyniki wszystkich działań tj. wyświetla aktualne statusy wszystkich prowadzonych testów ujętych w planie, bez względu na ilość iteracji testowych. Najlepiej zobrazuje to przykład utworzonego widoku planu testów:
Test Plan Board
Obiekt „Test Plan” zapewnia:
- Czytelny widok testów dla wybranej wersji wraz z najważniejszymi informacjami takimi jak: osoba przypisana do testów, ilość wykonanych testów, najnowszy status (podany w czasie rzeczywistym).
- Możliwość uruchomienia jednego lub więcej wykonań testów (Test Execution) dla wszystkich lub tylko części testów zawartych w tym planie.
- Możliwość przypisania jednego lub więcej planów testów do danej wersji.
- Możliwość monitorowania postępów tych testów w ramach każdego planu testów.
Dodatkowa funkcjonalność – repozytorium testów – porządkuje hierarchicznie testy w folderach; w przypadku zaplanowania i uruchomienia wielu cykli testowych (wykonania testów), tablica zgrupuje wyniki tych testów i pokaże aktualny status dla każdego z nich; w razie potrzeby sprawdzenia stanu konkretnego podzestawu testów, wystarczy wybrać odpowiedni folder:
Repozytorium testów
2. Projektowanie testów: analiza, projektowanie i implementacja testów
Analiza, projektowanie i implementacja testów to przejście od strategicznych, głównych założeń do konkretnych aspektów technicznych. Najprościej mówiąc, do zaprojektowania testów potrzebna jest analiza polegająca na określeniu „co” oraz „w jaki sposób” ma być testowane z uwzględnieniem testowania opartego na ryzyku (risk based testing).
Używając platformy zbudowanej w środowisku Jira Software z wykorzystaniem Xray, należy utworzyć konkretne obiekty, które zawierają kroki, dane testowe i oczekiwany rezultat, aby zobrazować to w jaki sposób mają przebiegać testy. Poszczególne przypadki testowe należy oznaczyć etykietami (labels), co znacznie ułatwi późniejsze monitorowanie postępów.
- Projektowanie testów, to:
- Organizacja testów w zestawy testowe (Test Set).
- Rozpisanie przypadków testowych określonych w warunkach testowych lub w dokumentacji.
- Tworzenie danych testowych. Ważne!: nadawanie obiektom etykiet pozwoli później efektywnie monitorować postępy pracy.
3. Wykonanie testu
Wykonanie testu (Test Execution) to czynność zachodząca pomiędzy tworzeniem skryptów testowych a raportowaniem i analizą wyników testów.
Wykonanie testu (widoczne w środowisku jako „Test Execution”) to obiekt, który agreguje ustaloną przez użytkownika kolekcję testów, a także monitoruje i sprawdza, czy testy działają w docelowym kontekście i środowisku.
Dzięki obiektowi „Test Execution”, użytkownik (np. Test Manager):
- przypisuje zadanie wykonania testów dla wybranej grupy testów (manualnych lub automatycznych) do testera; możliwe jest również przypisanie poszczególnych przebiegów testowych do kilku testerów.
- widzi postęp testów dzięki aktualizowanemu na bieżąco statusowi każdego z nich (np. „pass”, „fail”, „executing”, „to do”),
- ma wgląd do generowanych przez program wyników testów.
Overall Execution Status
Xray pozwala na tworzenie własnych statusów dla testów automatycznych i manualnych (dzięki czemu można np. utworzyć dodatkowe nazwy statusów dla rozróżnienia np. przyczyn niepowodzeń – “Exception” spowodowany błędem w kodzie/ „Not-implemented” – brakiem zaimplementowanego kroku) Wykonanie testu jest ukończone w momencie, gdy wszystkie testy weryfikujące określoną funkcjonalność systemu zostają zakończone.
4. Monitorowanie postępów
Platforma zbudowana z rozwiązań, które proponujemy, oferuje wiele różnych możliwości monitorowania postępów prac. Są to między innymi:
4.1 Przegląd zestawów testowych (Test Sets Overview)
Test Set Overview to widok dedykowany Test Managerowi – zawiera informacje na temat wszystkich testów przypisanych do danej funkcji: ich status, rodzaj (manualne/automatyczne), a także to czy wszystkie funkcje są planowane do przetestowania przez wskazany zestaw testów.
Test Set Overview
4.2 Przegląd wykonywanych testów (Test Execution Overview)
Test Execution to zestaw testów, jaki jest wymagany do przetestowania danej funkcjonalności. Dzięki temu widokowi, manager ma wgląd we wszystkie testy dotyczące danej funkcji systemu, która jest poddawana testowaniu. Widoczna jest tutaj informacja o typach testów; czy są one manualne czy automatyczne, do kogo jest przypisane wykonanie wybranego testu, do jakiego zestawu testów są przypisane wybrane testy, a także wskazuje na stany każdego z przedstawionych testów (zakończone powodzeniem / zakończone niepowodzeniem / do zrobienia / bądź inne statusy możliwe do skonfigurowania przez administratora). Dwa proste kliknięcia pozwalają na dostęp do informacji o każdym kroku testu, a także do komentarzy jakie zostały dodane do poszczególnych testów podczas ich wykonywania.
Test Execution Details
4.3 Sprawdzanie wyników i planowanie testów (Test Plan)
Kolejnym sposobem na szybki i przejrzysty wgląd do prowadzonych testów, jest skorzystanie z tablicy Test Plan. Podobnie jak obiekt “Test Set”, pozwala wyfiltrować testy na podstawie np. daty ich utworzenia, konkretnych komponentów czy innych informacji wprowadzonych do testów i grupuje je w listę. Oprócz podstawowych informacji pokazuje także ich statusy; rolą obiektu Test Plan jest umożliwienie szybkiego odnalezienia konkretnych testów oraz sprawdzenie i odpowiednie pogrupowanie ich wyników a następnie zaplanowanie wykonania tych testów, które jeszcze nie zostały uruchomione.
Test Plan można utworzyć dla danej wersji lub danego sprintu tak, żeby śledzić wyniki związane z różnymi testami np. można stworzyć jeden Test Plan dla testów regresyjnych, a inny dla testów funkcjonalnych.
Test Plan Board
5. Generowanie raportów i analiza wyników
Analiza wyników i przejrzysty widok pożądanych informacji zgromadzonych w jednym miejscu to jedna z kluczowych funkcjonalności jakie musi spełniać dobre rozwiązanie do zarządzania testami. Xray posiada wbudowane moduły służące do tworzenia raportów oraz analizy danych, dzięki czemu Product Owner, Scrum Master lub Test Manager mogą szybko zidentyfikować wąskie gardła i poprawić efektywność pracy zespołów. Dzięki elastyczności Jira Software, możliwe jest skonfigurowanie dodatkowych, dedykowanych widoków (dashboardów), które będą gromadziły pożądane zestawienia w formie wykresów.
5.1 Traceability Report
Często jeszcze przed uruchomieniem testów – lub już w trakcie ich trwania – konieczna jest weryfikacja, czy zaplanowane działania na pewno zgadzają się z wymaganiami klienta/projektu. Traceability Report pokazuje wprowadzone wymagania, testy i defekty, gromadząc dane w formie grafów, które dobrze oddają powiązania pomiędzy czynnościami. Dzięki temu łatwo jest zidentyfikować ewentualne braki i ocenić „gotowość” testów do uruchomienia.
Traceability Report, źródło: Xray Ebook „How to measure and report quality metrics”
Estymacja czasu do zakończenia testów jest możliwa dzięki „Overall Requirement Coverage Report”, który gromadzi dane związane z postępem testów – rzut oka na ten raport wystarczy, żeby ocenić czy produkt jest gotowy do wydania. Dzięki temu modułowi możliwe jest sprawdzenie statusów testów per sprint i weryfikacja, które obszary testowania wymagają poprawy; Overall Requirement Coverage Report umożliwia zawężenie zakresu testów do sprawdzenia poprzez wybranie konkretnych wymagań (requirement issues)/ user stories /nadrzędnych zadań (epics)/ ), czy przez użycie bardziej zaawansowanego filtrowania JQL.
- Pomaga oszacować czas do wydania produktu lub poszczególnych jego części.
- Ułatwia identyfikację obszarów wymagających poprawy.
- Daje QA Managerom wgląd do postępów testowania.
- Umożliwia przekazanie informacji na temat bieżących statusów testów, zespołowi programistów tak, aby wszyscy mieli aktualne informacje.
Overall Requirement Coverage Report, źródło: Xray Ebook „How to measure and report quality metrics”
5.3 Historical Requirement Coverage
Kolejnym sposobem na sprawdzenie postępów pracy jest skorzystanie z modułu „Historical Requirement Coverage” – jest to funkcjonalność stworzona dla Test Managerów, Product Managerów, Project Managerów oraz osób po stronie klienta, które są zaangażowane w wydanie aplikacji i chcą mieć wgląd do przebiegu pracy. Historical Requirement Coverage przedstawia statusy poszczególnych testów w pożądanym zakresie czasu – możliwe jest więc prześledzenie całej ścieżki od początku trwania projektu lub wybranie np. ostatniego miesiąca; raport bardzo dobrze obrazuje postępy testowania i pomaga przeanalizować cały zakres działań oraz oszacować, czy praca zostanie wykonana w przyjętym terminie.
- Generuje informacje, które stanowią dowód zakończenia testów.
- Może posłużyć jako dokument, przedstawiający postęp pracy nad wydaniem.
- Świetnie sprawdza się w firmach, które wykonują testowanie/development dla podmiotów zewnętrznych.
Historical Requirement Coverage, źródło: Xray Ebook „How to measure and report quality metrics”
5.4 Test Plans Report
Test Plans Report jest powiązany z modułem Test Plan i daje obraz postępów wszystkich testów, które są w nim (Test Plan) zgromadzone – wyświetla ile testów posiada jaki status w czytelnej tabeli; pozwala oszacować zaawansowanie działań przed wydaniem produktu; daje także jasny obraz defektów, które pojawiają się w raporcie w czasie rzeczywistym. Z Test Plans Report można przejść bezpośrednio do opisanego defektu i sprawdzić jego status.
*Jeśli test się nie powiedzie, tester tworzy zgłoszenie błędu w Jira, dzięki czemu programiści mogą sprawdzić gdzie wystąpił defekt.
Dzięki Test Plans Report można dokonać analizy testów ze względu na wersję/ sprint / wybraną etykietę (label)/ status/ komponenty. Można też wybrać przedział czasu, w obrębie którego program ma wyświetlić dane (określając start date oraz end date).
Test Plan Report, źródło: Xray Ebook „How to measure and report quality metrics”
5.5 Test Executions Report
Test Executions Report agreguje wszystkie wykonania testów w kontekście planów testów; daje wgląd w to, które testy się nie powiodły i wymagają ponownego uruchomienia; pokazuje także postęp trwających testów oraz ich stopień powodzenia (success rate). Użytkownik może wygenerować raport, wybierając tylko interesujące go typy testów.
*Dla testu, który się nie powiódł można z poziomu Test Executions utworzyć i uruchomić nowy test zamiast zmieniać jego status.
Dzięki widokowi w Test Executions Report można:
- Sprawdzić postęp testów.
- Określić czas spędzony na wykonaniu testów.
- Zmierzyć postęp testów – raport pokazuje procentową wartość ukończenia testów.
- Zidentyfikować i wyeliminować wąskie gardła procesu.
Test Executions Report, źródło: Xray Ebook „How to measure and report quality metrics”
5.6 Indywidualnie konfigurowane dashboardy
Rozwiązania Atlassian cechują się wysoką elastycznością i możliwością zaawansowanych konfiguracji. Xray jest natywną aplikacją dla systemu Jira Software i oprócz funkcjonalności typowych dla zarządzania testami, oferuje także dodatkowe ułatwienia jeśli chodzi o tworzenie dashboardów. Każdy użytkownik – tester, programista czy Project Manager – zaangażowany w proces testowania, może posiadać swój własny dashboard, który będzie odpowiadał jego potrzebom – np. przedstawiając wszystkie zadania (Jira tasks), nad którymi dana osoba pracuje oraz te, które ma zaplanowane do wykonania. Project Manager może z kolei zyskać widok pokazujący pracę zespołów i informacje o postępach testowania w czasie rzeczywistym. Ustawienie swojego dashboardu ułatwiają dostępne widgety (np. Test Evolution Gadget, który pokazuje które testy się powiodły, a które nie).
Nasi specjaliści doradzą Państwu jakie dashboardy sprawdzą się w codziennej pracy dla poszczególnych zespołów i skonfigurują widoki tak, aby odpowiadały wszystkim potrzebom.
Dashboard example, źródło: Xray Ebook „How to measure and report quality metrics”
Platforma do testów automatycznych Jira +Xray+… korzyści:
- Łatwa instalacja i konfiguracja, jeśli firma korzysta już z systemu Jira Software.
- Szybkie i wydajne zarządzanie testami.
- Scentralizowane zarządzanie testami.
- Automatycznie generowane wyniki i raporty.
- Sesje testowe wykonywane automatycznie lub zgodnie z harmonogramem.
- Wykorzystanie CI/CD w realizacji testów.
Dlaczego warto podjąć z nami współpracę?
Platforma do zarządzania testami automatycznymi to rozbudowane środowisko, które dostosowujemy do potrzeb klientów. Posiadamy wykwalifikowane zespoły, które mają doświadczenie we wdrożeniach tego rozwiązania. Pracę rozpoczynamy od analizy potrzeb oraz wymagań tak, aby odpowiednio dopasować poszczególne komponenty ekosystemu do wymagań firmy.
- Posiadamy ponad 10-letnie doświadczenie.
- Jesteśmy Platynowym Partnerem marki Atlassian.
- Jesteśmy Partnerem firmy Xpand IT, producenta aplikacji Xray.
- Platformę do testów automatycznych wdrażaliśmy dla organizacji z branż takich jak: telekomunikacja, energetyka oraz przemysł.
- W naszej firmie pracuje ponad 50 testerów aplikacji.
- Oferujemy usługi związane z Quality Assurance.
- Wdrożeniami dla klientów biznesowych zajmują się: analitycy biznesowi, Test Managerowie, administratorzy Jira oraz developerzy.
- Dbamy o dobre, partnerskie relacje z klientami.
Jeśli w trakcie czytania opisu platformy do zarządzania testami automatycznymi, pojawiły się jakiekolwiek pytania – zapraszamy do kontaktu. Zadaniem niniejszego artykułu jest zaprezentowanie najważniejszych elementów, cech oraz zalet platformy zbudowanej z narzędzi Jira Software + Xray + (…). Podczas rozmowy chętnie omówimy różne możliwości, wyjaśnimy pojawiające się wątpliwości i wspólnie znajdziemy najbardziej optymalny zestaw narzędzi, które spełnią potrzeby firmy. Mogą Państwo polegać na doświadczeniu oraz wiedzy ekspertów TT PSC.