Zwinna metodologia testowania oprogramowania

Metodyka Agile

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.

Metodyka Agile
Metodyka Agile

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.

  1. Interakcje indywidualne i zespołowe nad procesami i narzędziami
  2. Działające oprogramowanie nad obszerną dokumentacją
  3. Współpraca z klientami w zakresie negocjacji umowy
  4. 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.

Zwinny model procesu
Zwinny model procesu

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:

Metoda Scruma
Metoda Scruma
  • 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:

Praktyki Scruma
Praktyki Scruma

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.

Ekstremalne programowanie
Ekstremalne programowanie

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

  1. 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
  2. Dostawa cykliczna: Główna faza rozwoju składa się z dwóch lub więcej cykli dostaw, podczas których
    1. Zespół aktualizuje i udoskonala plan wydań
    2. Implementuje podzbiór wymagań poprzez jedną lub więcej iteracji integracji testów programu
    3. Zintegrowany produkt dostarczany jest rzeczywistym użytkownikom
    4. Revz uwzględnieniem planu projektu i przyjętej metodologii rozwoju
  3. 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

  1. Czas BoxING
  2. Regulamin MoSCoW
  3. Prototypowanie

Projekt DSDM składa się z 7 etapów

  1. Projekt wstępny
  2. Studium wykonalności
  3. Studium biznesowe
  4. Iteracja modelu funkcjonalnego
  5. Zaprojektuj i zbuduj iterację
  6. Wdrożenie
  7. 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

  1. Modelowanie obiektów domeny
  2. Rozwój według funkcji
  3. Własność komponentu/klasy
  4. Drużyny fabularne
  5. Inspekcje
  6. Configuration Management
  7. Regularne kompilacje
  8. 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.

  1. Eliminacja marnotrawstwa
  2. Wzmacnianie uczenia się
  3. Odroczenie zobowiązania (decyzja tak późno, jak to możliwe)
  4. Wczesna dostawa
  5. Wzmacnianie zespołu
  6. Budowanie Integrity
  7. 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