Krótki przewodnik po testowaniu oprogramowania — standardy i procesy
Opublikowany: 2021-05-18„Cały kod jest winny, dopóki nie zostanie przetestowany jako niewinny” – nieznany maniak technologii.
Nie można mieć dobrego oprogramowania bez poddania go rygorystycznym testom. W tym artykule dowiesz się więcej o standardach i procesach testowania oprogramowania, których powinieneś przestrzegać, aby móc osiągać lepsze wyniki.
Co to jest testowanie oprogramowania?
Mówiąc najprościej, testowanie oprogramowania czyni oprogramowanie lepszym. Jest to proces, który identyfikuje poprawność, kompletność i jakość tworzonego oprogramowania. Testowanie jest ważne, ponieważ wykrywa defekty/błędy przed dostarczeniem do klienta, co gwarantuje jakość oprogramowania. Dzięki temu oprogramowanie jest bardziej niezawodne w użyciu.

Etapy testowania oprogramowania

Przejdźmy przez wyżej wymienione etapy testowania oprogramowania:
Analiza wymagań:
Analiza wymagań określa oczekiwania użytkowników końcowych w stosunku do aplikacji, która ma zostać zbudowana/zmodyfikowana. Dlatego analiza wymagań oznacza analizę, raportowanie, dokumentowanie, walidację i zarządzanie wymaganiami oprogramowania lub systemu.
Inżynier testowy musi wykonać następujące zadania, aby zakończyć analizę wymagań:
- Przeczytaj każde wymaganie, aby sprawdzić kompletność, jasność, niejednoznaczność, jeśli takie występują.
- Sprawdź, czy wszystkie możliwe scenariusze zostały uwzględnione w fazie analizy wymagań i spróbuj zidentyfikować wszystkie nieujawnione przypadki lub wszelkie luki.
- Dyskusja nad pytaniami lub wątpliwościami wynikającymi z analizy wymagań podczas codziennych rozmów, aby zespół był na tej samej stronie.
- Należy użyć macierzy identyfikowalności wymagań, aby zapewnić pełne pokrycie wymagań testowanego oprogramowania.
Poniżej znajduje się przykładowy szablon RTM (Requirements Traceability Matrix)

Źródło: Opencodez
Planowanie testów:
Plan testów to dokument opisujący cele testów, harmonogram, oszacowanie, produkty dostarczane i zasoby wymagane do przeprowadzenia testowania oprogramowania w aplikacji. Plan testów pomaga w zrozumieniu i określeniu wysiłków wymaganych do sprawdzenia jakości testowanej aplikacji. Poniżej znajduje się przykładowy plan testów zwinny:

Źródło: zenq
Projekt testu:
Projektowanie testów to faza, w której projektowane są przypadki użycia wymagane do testowania. Projekt testów jest wykonywany na podstawie planu testów. Zaprojektowane przypadki testowe zapewniają spełnienie wszystkich wymagań aplikacji. Uznaje się również, że mapowanie przypadków testowych za pomocą macierzy identyfikowalności jest konieczne w celu pokrycia wszystkich luk w wymaganiach.
Scenariusze testowe/przypadki testowe zaprojektowane w oparciu o poniższe techniki projektowania testów, aby zapewnić pełne pokrycie testów na szczęśliwej ścieżce i testowaniu scenariuszy negatywnych.
- Analiza wartości granicznej (BVA)
- Partycjonowanie równoważności (EP)
- Testowanie przypadków użycia
- Testy oparte na uderzeniach
Poniżej znajduje się przykładowy szablon projektu testu

Źródło: https://www.softwaretestingclass.com/
Konfiguracja środowiska testowego:
Środowisko testowe to platforma zbudowana do implementacji i wykonywania przypadków testowych w aplikacji. Środowisko do testowania powstaje poprzez integrację wymaganego sprzętu i oprogramowania wraz z wymaganą konfiguracją sieci i niezbędnymi ustawieniami. Przed rozpoczęciem jakichkolwiek testów zawsze należy przeprowadzić test dymu w środowisku testowym w celu sprawdzenia wykonalności środowiska testowego.
Wykonanie testu:
Wykonywanie testów to proces wykonywania zaprojektowanych przypadków testowych, dokumentowania i porównywania oczekiwanych i rzeczywistych wyników. Następujące czynniki są brane pod uwagę przy wykonywaniu testu z uwzględnieniem ryzyka. Wybierz podzbiór zestawu testów do wykonania w tym cyklu i przypisz go do odpowiedniego testera/analityka jakości.

- Wykonanie testów odbywa się na podstawie przypadków testowych / scenariuszy testowych zaprojektowanych zgodnie z planem testów
- Obserwacje — udokumentowane na odpowiednim bilecie JIRA napotkanym podczas wykonywania testu
- Testowa dokumentacja dowodowa na odpowiednim bilecie JIRA składa się z następujących elementów
◦ Status testu: PASS / FAIL - Przedstawia status testu biletu JIRA
◦ Testowy adres URL: Zawiera dane testowe używane do testowania konkretnego wymagania
◦ Scenariusze testowe i ich zrzuty ekranu
- Poczytalność i regresja - Testy poczytalności i regresji są przeprowadzane regularnie na wyższych środowiskach (STG) na każdym końcu sprintu w ramach pomiarów przed testami UAT
Zamknięcie testu:
Lista kontrolna zamknięcia testu sprintu zapewnia wykonanie następujących czynności na koniec każdego sprintu w celu płynnego przejścia między wieloma sprintami.
- Testy funkcjonalne zakończone zgodnie z harmonogramem z pełnym pokryciem
- Wszystkie obserwacje zarejestrowane i rozwiązane przez zespół
- Prawidłowe obserwacje zarejestrowane jako wady i przypisane do odpowiednich właścicieli biletów
- Dokumentacja potwierdzająca testy zaktualizowana dla każdego zgłoszenia wraz z odpowiednimi wynikami testów ręcznych i testów urządzeń
- Test regresji wykonywany na środowisku testowym przed scaleniem kodu z wyższymi środowiskami tj. w tym przypadku od Dev do STG
Testowanie urządzeń/testowanie w różnych przeglądarkach:
Testowanie urządzenia/przeglądarki to proces, w którym urządzenie/przeglądarka jest testowana pod kątem jakości, aby zobaczyć, jak dobrze spełnia wymagania, dla których zostało opracowane. Testowanie urządzeń/przeglądarek jest opisane na poniższej liście urządzeń/przeglądarek potwierdzonych przez klienta. Stos przeglądarki używany jako platforma do testowania urządzeń.

Różne rodzaje testowania oprogramowania
Testów jednostkowych:
Testy jednostkowe to sprawdzanie małych jednostek kodu w celu wczesnego dostarczenia informacji w celu przyspieszenia strategii testowania i zmniejszenia niepożądanych cykli testów. Testy jednostkowe są zwykle wykonywane przez programistę, zanim kod zostanie przekazany zespołowi testującemu oprogramowanie.
Testowanie dymu:
Smoke Testing to procedura testowania oprogramowania, która określa, czy wdrożone oprogramowanie jest stabilne, czy nie. Testy dymne są potwierdzeniem dla zespołu testującego, że mogą kontynuować dalsze testy oprogramowania. Składa się z minimalnego zestawu testów do uruchomienia na każdej kompilacji w celu przetestowania funkcjonalności oprogramowania.
Testy integracyjne:
Testy integracyjne definiuje się jako rodzaj testów przeprowadzanych w zintegrowanym środowisku sprzętowo-programowym w celu sprawdzenia zachowania systemu. Komponenty oprogramowania/sprzętu są integrowane i testowane progresywnie, aż do przetestowania kompletnego systemu.
Testowanie systemu:
Testowanie systemu całkowicie zintegrowanego oprogramowania. Jest to ostatni test sprawdzający, czy dostarczony produkt spełnia specyfikacje wymagań wymienione w dokumencie wymagań. W zakresie należy uwzględnić zarówno wymagania funkcjonalne, jak i niefunkcjonalne.
Testowanie regresji:
Regresja sprawdza, czy ostatnie zmiany kodu nie zmieniają ani nie niszczą już istniejącej funkcjonalności. Testowanie regresji obejmuje zarówno podzbiór, jak i pełną regresję, obie mogą być objęte scenariuszami testów ręcznych lub automatycznych.
Testowanie akceptacji użytkownika (UAT):
Testy akceptacyjne użytkownika to jeden z końcowych etapów cyklu życia testowania oprogramowania i jest wykonywany przez klienta po dokładnym przetestowaniu oprogramowania. UAT jest prowadzony przez końcowych użytkowników produktu w celu uzyskania zatwierdzeń i wdrożeń wersji produkcyjnej.
