Zwinna metodologia testowania oprogramowania
Czym jest metodologia zwinna w testowaniu?
Metodologia Agile oznacza praktykę promującą ciągła iteracja rozwoju i testowania w całym cyklu życia oprogramowania projektu. W modelu Agile w testowaniu oprogramowania zarówno działania programistyczne, jak i testowe są równoległe, w przeciwieństwie do modelu Waterfall.

Co to jest zwinne tworzenie oprogramowania?
Zwinne tworzenie oprogramowania Metodologia jest jednym z najprostszych i skutecznych procesów przekształcania wizji potrzeb biznesowych w rozwiązania programowe. Agile to termin używany do opisania podejść do tworzenia oprogramowania, które obejmują ciągłe planowanie, uczenie się, doskonalenie, współpracę zespołową, rozwój ewolucyjny i wczesną dostawę. Zachęca do elastycznego reagowania na zmiany.
Zwinne tworzenie oprogramowania kładzie nacisk na cztery podstawowe wartości.
- Interakcje indywidualne i zespołowe nad procesami i narzędziami
- Działające oprogramowanie nad obszerną dokumentacją
- Współpraca z klientami w zakresie negocjacji umowy
- Reagowanie na zmiany zamiast podążania za planem
Model zwinny kontra model wodospadu
Model Agile i Waterfall to dwie różne metody procesu tworzenia oprogramowania. Chociaż różnią się podejściem, obie metody są czasami przydatne, w zależności od wymagań i rodzaju projektu.
Model zwinny | Model wodospadu |
---|---|
Metodologia zwinna w definicji testowania oprogramowania: Metodologie zwinne proponują przyrostowe i iteracyjne podejście do projektowania oprogramowania | Model wodospadu: rozwój oprogramowania przebiega sekwencyjnie od punktu początkowego do punktu końcowego. |
Zwinny proces w testowaniu oprogramowania dzieli się na poszczególne modele, nad którymi pracują projektanci | Proces projektowania nie jest podzielony na poszczególne modele |
Klient ma możliwość wczesnego i częstego przyjrzenia się produktowi oraz podjęcia decyzji i zmian w projekcie | Klient może obejrzeć produkt dopiero po zakończeniu projektu |
Model zwinny w testach jest uważany za nieustrukturyzowany w porównaniu z modelem kaskadowym | Model wodospadu jest bezpieczniejszy, ponieważ jest zorientowany na plan |
Małe projekty można realizować bardzo szybko. W przypadku dużych projektów trudno oszacować czas realizacji. | Można oszacować i ukończyć każdy rodzaj projektu. |
Błąd można naprawić w trakcie projektu. | Dopiero na koniec testowany jest cały produkt. Jeśli zostanie znaleziony błąd w wymaganiach lub konieczne będzie wprowadzenie jakichkolwiek zmian, projekt należy rozpocząć od początku |
Proces rozwoju jest iteracyjny, a projekt realizowany jest w krótkich (2-4) tygodniowych iteracjach. Planowanie jest bardzo skąpe. | Proces rozwoju jest etapowy, a faza ta jest znacznie dłuższa niż iteracja. Każdy etap kończy się szczegółowym opisem kolejnego etapu. |
Dokumentacja ma mniejszy priorytet niż rozwoju oprogramowania | Dokumentacja jest priorytetem i można jej używać nawet do szkolenia personelu i uaktualniania oprogramowania z innym zespołem |
Każda iteracja ma swoją własną fazę testowania. Umożliwia wdrożenie testów regresyjnych za każdym razem, gdy wydawane są nowe funkcje lub logika. | Dopiero po fazie rozwoju następuje faza testowania, ponieważ poszczególne części nie są w pełni funkcjonalne. |
W testach zwinnych po zakończeniu iteracji klientowi dostarczane są możliwe do dostarczenia funkcje produktu. Nowe funkcje są dostępne od razu po wysyłce. Przydaje się, gdy masz dobry kontakt z klientami. | Wszystkie opracowane funkcje są dostarczane natychmiast po długiej fazie wdrażania. |
Testerzy i programiści współpracują ze sobą | Testerzy pracują niezależnie od programistów |
Na koniec każdego sprintu przeprowadzana jest akceptacja użytkownika | Akceptacja użytkownika jest wykonywane na koniec projektu. |
Wymaga ścisłej komunikacji z programistami i wspólnej analizy wymagań i planowania | Deweloper nie angażuje się w proces wymagań i planowania. Zwykle opóźnienia czasowe pomiędzy testami i kodowaniem |
Sprawdź również: - Agile kontra wodospad: poznaj różnicę między metodologiami
Zwinny proces
Sprawdź poniżej Metodologia zwinna proces szybkiego dostarczania skutecznych systemów.

Istnieją różne Zwinne metody obecne w testowaniu zwinnym, a te są wymienione poniżej:
Scrum:
SCRUM to zwinna metoda programowania, która koncentruje się szczególnie na zarządzaniu zadaniami w środowisku programistycznym opartym na zespołach. Zasadniczo Scrum wywodzi się z działań zachodzących podczas meczu rugby. Scrum wierzy we wzmacnianie pozycji zespołu programistów i zaleca pracę w małych zespołach (powiedzmy od 7 do 9 członków). Agile i Scrum składają się z trzech ról, a ich obowiązki wyjaśniono w następujący sposób:

-
Scrum Master
- Scrum Master jest odpowiedzialny za utworzenie zespołu, spotkanie sprinterskie i usuwanie przeszkód utrudniających postęp
-
Właściciel produktu
-
Właściciel Produktu tworzy backlog produktu, nadaje mu priorytety i jest odpowiedzialny za dostarczenie funkcjonalności w każdej iteracji
-
-
Zespół Scrumowy
-
Zespół zarządza własną pracą i organizuje ją w celu ukończenia sprintu lub cyklu
-
Backlog produktu
To repozytorium, w którym wymagania są śledzone ze szczegółami dotyczącymi liczby wymagań (historii użytkownika), które należy ukończyć dla każdego wydania. Powinno być utrzymywane i priorytetyzowane przez Product Ownera, a także powinno być dystrybuowane do zespołu scrum. Zespół może również poprosić o dodanie, modyfikację lub usunięcie nowego wymagania.
Praktyki Scruma
Praktyki opisano szczegółowo:

Przebieg procesu metodologii Scrum:
Przebieg procesu testy scrumowe jest następujący:
- Każda iteracja scruma jest nazywana Sprint
- Rejestr produktu to lista, na której wprowadzane są wszystkie szczegóły w celu uzyskania produktu końcowego.
- Podczas każdego Sprint, wybierane i przekształcane są najważniejsze historie użytkowników z Rejestru Produktu Sprint zaległości w pracy
- Zespół pracuje nad zdefiniowanym sprint backlogiem
- Zespołowe kontrole codziennej pracy
- Pod koniec sprintu zespół dostarcza funkcjonalność produktu
Programowanie ekstremalne (XP)
Technika Extreme Programming jest bardzo pomocna, gdy wymagania klientów stale się zmieniają lub gdy nie są oni pewni funkcjonalności systemu. Zaleca częste „wydania” produktu w krótkich cyklach rozwoju, co samo w sobie poprawia produktywność systemu, a także wprowadza punkt kontrolny, w którym można łatwo wdrożyć wszelkie wymagania klienta. XP opracowuje oprogramowanie, które utrzymuje klienta w docelowym miejscu.

Wymagania biznesowe zbierane są w formie historii. Wszystkie te historie są przechowywane w miejscu zwanym parkingiem.
W tego typu metodologii wydania opierają się na krótszych cyklach zwanych Iteracjami, trwających 14 dni. Każda iteracja obejmuje fazy takie jak kodowanie, testowanie jednostkowe i testowanie systemu, podczas których na każdym etapie w aplikacji zostaną wbudowane pewne mniejsze lub większe funkcjonalności.
Fazy programowania eXtreme:
W metodzie Agile XP dostępnych jest 6 faz, które wyjaśniono w następujący sposób:
Planowanie
-
Identyfikacja interesariuszy i sponsorów
-
Wymagania dotyczące infrastruktury
-
Bezpieczeństwo powiązane informacje i gromadzenie
-
Umowy dotyczące poziomu usług i ich warunki
Analiza
-
Przechwytywanie historii na parkingu
-
Nadawaj priorytety historiom na parkingu
-
Przeglądanie historii w celu oceny
-
Zdefiniuj zakres iteracji (czas)
-
Planowanie zasobów dla zespołów programistycznych i kontroli jakości
Wnętrze
-
Podział zadań
-
Przygotowanie scenariusza testowego dla każdego zadania
-
Struktura automatyzacji regresji
Egzekucja
-
Kodowanie
-
Realizacja manualnych scenariuszy testowych
-
Generowanie raportu o usterce
-
Konwersja przypadków testowych regresji ręcznej na automatyczną
-
Przegląd środkowej iteracji
-
Koniec przeglądu iteracji
Opakowanie
-
Małe wydania
-
Demo i recenzje
-
Twórz nowe historie w zależności od potrzeb
-
Ulepszenia procesu w oparciu o komentarze z przeglądu na koniec iteracji
Zamknięcie
-
Pilotażowe uruchomienie
-
Szkolenia
-
Uruchomienie produkcji
-
Gwarancja SLA
-
Revzobacz strategię SOA
-
Wsparcie produkcji
Dostępne są dwa scenorysy umożliwiające codzienne śledzenie pracy. Poniżej wymieniono je w celach informacyjnych.
-
Karton opowieści
-
Jest to tradycyjny sposób gromadzenia wszystkich historii na tablicy w formie notatek umożliwiających śledzenie codziennych działań związanych z XP. Ponieważ ta ręczna czynność wymaga więcej wysiłku i czasu, lepiej przejść na formularz online.
-
-
Internetowa scenopisarka
-
Do przechowywania historii można wykorzystać narzędzie online Storyboard. Może z niego korzystać kilka drużyn dla różnych celów.
-
Metodologie kryształów
Metodologia Crystal opiera się na trzech koncepcjach
-
Czarter: Różne działania związane z tą fazą obejmują utworzenie zespołu programistów, przeprowadzenie wstępnej analizy wykonalności, opracowanie wstępnego planu i dopracowanie metodologii rozwoju
-
Dostawa cykliczna: Główna faza rozwoju składa się z dwóch lub więcej cykli dostaw, podczas których
- Zespół aktualizuje i udoskonala plan wydań
- Implementuje podzbiór wymagań poprzez jedną lub więcej iteracji integracji testów programu
- Zintegrowany produkt dostarczany jest rzeczywistym użytkownikom
- Revz uwzględnieniem planu projektu i przyjętej metodologii rozwoju
- Zakończyć: Czynności wykonywane w tej fazie obejmują wdrożenie w środowisku użytkownika, przeprowadzane są przeglądy i refleksje po wdrożeniu.
Metoda dynamicznego tworzenia oprogramowania (DSDM)
DSDM jest Szybki rozwój aplikacji (RAD) do tworzenia oprogramowania i zapewnia zwinne ramy realizacji projektów. Ważnym aspektem DSDM jest to, że użytkownicy muszą aktywnie uczestniczyć, a zespoły otrzymują uprawnienia do podejmowania decyzji. Częsta dostawa produktu staje się głównym przedmiotem zainteresowania DSDM. Techniki stosowane w DSDM to
- Czas BoxING
- Regulamin MoSCoW
- Prototypowanie
Projekt DSDM składa się z 7 etapów
- Projekt wstępny
- Studium wykonalności
- Studium biznesowe
- Iteracja modelu funkcjonalnego
- Zaprojektuj i zbuduj iterację
- Wdrożenie
- Po projekcie
Rozwój oparty na funkcjach (FDD)
Ta metoda koncentruje się na funkcjach „projektowania i budowania”. W przeciwieństwie do innych metod Agile w inżynierii oprogramowania, FDD opisuje bardzo konkretne i krótkie fazy pracy, które muszą być wykonywane oddzielnie dla każdej funkcji. Obejmuje ona przegląd domeny, inspekcję projektu, promocję do budowy, inspekcję kodu i projektowanie. FDD rozwija produkt, utrzymując następujące rzeczy w celu
- Modelowanie obiektów domeny
- Rozwój według funkcji
- Własność komponentu/klasy
- Drużyny fabularne
- Inspekcje
- Configuration Management
- Regularne kompilacje
- Widoczność postępów i wyników
Rozwój oprogramowania szczupłego
Metoda Lean software development opiera się na zasadzie „Just in time production” (produkcja na czas). Jej celem jest zwiększenie szybkości rozwoju oprogramowania i zmniejszenie kosztów. Lean development można podsumować w siedmiu krokach.
- Eliminacja marnotrawstwa
- Wzmacnianie uczenia się
- Odroczenie zobowiązania (decyzja tak późno, jak to możliwe)
- Wczesna dostawa
- Wzmacnianie zespołu
- Budowanie Integrity
- Optymalizuj całość
Kanban:
Kanban: pierwotnie pochodzi od japońskiego słowa oznaczającego kartę zawierającą wszystkie informacje potrzebne do wykonania produktu na każdym etapie drogi do ukończenia. Ta struktura lub metoda jest dość powszechnie stosowana w metodzie testowania oprogramowania, szczególnie w koncepcjach Agile.
Scrum kontra Kanban
Scrum: | Kanban: |
---|---|
W technice Scrum testy muszą być podzielone na mniejsze części, aby można je było ukończyć w ciągu jednego sprintu | Nie ma określonego rozmiaru przedmiotu |
Zaleca priorytetowy rejestr produktu | Priorytetyzacja jest opcjonalna |
Zespół Scrumowy poświęca określoną ilość pracy na iterację | Zaangażowanie jest opcjonalne |
Zalecany jest wykres spalania | Nie ma określonego rozmiaru przedmiotu |
Pomiędzy każdym sprintem resetowana jest tablica Scrum | Tablica Kanban jest trwała. Ogranicza liczbę elementów znajdujących się w stanie przepływu pracy |
Nie może dodawać elementów do trwającej iteracji | Może dodawać elementy, gdy tylko dostępna jest pojemność |
WIP ograniczona pośrednio | WIP bezpośrednio z ograniczoną odpowiedzialnością |
Zalecono iteracje ograniczone czasowo | Opcjonalne iteracje ograniczone czasowo |
Sprawdź również: - Kontra Kanban Scrum: jaka jest różnica?
Zwinne metryki
Metryki, które można zebrać w celu efektywnego wykorzystania Agile, to:
-
Współczynnik przeciągania
-
Wysiłek w godzinach, które nie przyczyniają się do osiągnięcia celu sprintu
-
Współczynnik oporu można poprawić, zmniejszając liczbę współdzielonych zasobów, zmniejszając ilość pracy nie wnoszącej wkładu
-
Nowe szacunki można zwiększyć o procent współczynnika oporu -Nowe oszacowanie = (stare oszacowanie + współczynnik oporu)
-
-
Szybkość
-
Ilość zaległości (historii użytkowników) przekonwertowanych na funkcjonalność możliwą do dostarczenia w sprincie
-
-
Dodano liczbę testów jednostkowych
-
Przedział czasu potrzebny na ukończenie codziennej kompilacji
-
Błędy wykryte w iteracji lub w poprzednich iteracjach
-
Wyciek wady produkcyjnej