Testowanie zwinne - metodologie
Agile to iteracyjna metodologia programistyczna, w której cały zespół projektowy uczestniczy we wszystkich działaniach. Wymagania zmieniają się wraz z postępem iteracji, poprzez współpracę między klientem a samoorganizującymi się zespołami. Ponieważ kodowanie i testowanie są wykonywane interaktywnie i stopniowo, w trakcie rozwoju, produkt końcowy miałby jakość i spełniałby wymagania klienta.
Każda iteracja prowadzi do zintegrowanego przyrostu roboczego produktu i jest dostarczana do testów akceptacyjnych użytkownika. Uzyskane w ten sposób informacje zwrotne od klientów byłyby danymi wejściowymi do następnych / kolejnych iteracji.
Ciągła integracja, ciągła jakość
Ciągła integracja jest kluczem do sukcesu Agile Development. Integruj często, przynajmniej codziennie, tak abyś był gotowy na wydanie w razie potrzeby. Testowanie w Agile staje się istotnym elementem wszystkich faz rozwoju, zapewniając stałą jakość produktu. Stałe informacje zwrotne od wszystkich zaangażowanych w projekt podnoszą jakość produktu.
W Agile komunikacja ma ogromne znaczenie, a żądania klientów są odbierane w razie potrzeby. Daje to klientowi satysfakcję, że wszystkie dane wejściowe są brane pod uwagę, a działający produkt jest dostępny przez cały czas rozwoju.
Zwinne metodologie
Istnieje kilka zwinnych metodologii, które wspierają zwinny rozwój. Metodyki zwinne obejmują -
Scrum
Scrum to zwinna metoda rozwoju, która kładzie nacisk na podejście zorientowane na zespół. Zaleca udział całego zespołu we wszystkich działaniach związanych z rozwojem projektu.
XP
Programowanie eXtreme jest zorientowane na klienta i koncentruje się na stale zmieniających się wymaganiach. Dzięki częstym wydaniom i informacjom zwrotnym od klientów, produkt końcowy będzie miał jakość spełniającą wymagania klientów, które zostaną wyjaśnione w trakcie procesu.
Kryształ
Crystal opiera się na czarterze, cyklicznej dostawie i opakowaniu.
Chartering obejmuje utworzenie zespołu deweloperskiego, przeprowadzenie wstępnej analizy wykonalności, ustalenie wstępnego planu i metodologii rozwoju.
Dostawa cykliczna z dwoma lub więcej cyklami dostaw koncentruje się na fazie rozwoju i końcowej zintegrowanej dostawie produktu.
Podczas czynności końcowych wdrażanie w środowisku użytkownika, przeglądy i refleksje po wdrożeniu są wykonywane.
FDD
Feature Driven Development (FDD) obejmuje projektowanie i budowanie funkcji. Różnica między FDD a innymi metodologiami zwinnego rozwoju polega na tym, że funkcje są opracowywane osobno w określonych i krótkich fazach.
DSDM
Dynamic Software Development Method (DSDM) jest oparta na Rapid Application Development (RAD) i jest dostosowana do Agile Framework. DSDM koncentruje się na częstym dostarczaniu produktu, angażując aktywnie użytkowników i umożliwiając zespołom podejmowanie szybkich decyzji.
Lean Software Development
W Lean Software Development nacisk kładzie się na eliminację marnotrawstwa i nadanie wartości klientowi. Skutkuje to szybkim rozwojem i wartościowym produktem.
Odpady obejmują częściowo wykonane prace, prace nieistotne, cechy, z których klient nie korzysta, wady itp., Które powodują opóźnienia w dostawach.
Plik Lean Principles są -
- Eliminować śmieci
- Wzmocnij naukę
- Zobowiązanie do opóźnienia
- Wzmocnij zespół
- Dostarczaj szybko
- Buduj integralność w
- Zobacz całość
Kanban
Kanban koncentruje się na zarządzaniu pracą z naciskiem na dostawę just-in-time (JIT), nie obciążając jednocześnie członków zespołu. Zadania są wyświetlane, aby wszyscy uczestnicy mogli je zobaczyć, a członkowie zespołu mogli pobrać pracę z kolejki.
Kanban opiera się na -
- Tablica Kanban (wizualna i trwała w całym rozwoju)
- Limit produkcji w toku (WIP)
- Czas oczekiwania
Metodologie testowania zwinnego
Praktyki testowania są dobrze zdefiniowane dla każdego projektu, niezależnie od tego, czy jest zwinne, czy nie, w celu dostarczania produktów wysokiej jakości. Tradycyjne zasady testowania są dość często używane w testach zwinnych. Jednym z nich są wczesne testy, które koncentrują się na -
Pisanie przypadków testowych w celu wyrażenia zachowania systemu.
Wczesne zapobieganie, wykrywanie i usuwanie defektów.
Zapewnienie, że odpowiednie typy testów są uruchamiane we właściwym czasie i jako część odpowiedniego poziomu testów.
We wszystkich omawianych metodologiach zwinnych testowanie zwinne samo w sobie jest metodologią. We wszystkich podejściach przypadki testowe są zapisywane przed kodowaniem.
W tym samouczku skupimy się na Scrumie jako metodologii testowania zwinnego.
Inne powszechnie stosowane metodologie testów zwinnych to -
Test-Driven Development (TDD) - Test-Driven Development (TDD) opiera się na kodowaniu opartym na testach.
Acceptance Test-Driven Development (ATDD) - Acceptance Test-Driven Development (ATDD) opiera się na komunikacji między klientami, programistami i testerami i opiera się na predefiniowanych kryteriach akceptacji i przypadkach testów akceptacji.
Behavior-Driven Development (BDD) - W programowaniu opartym na zachowaniu (BDD) testowanie opiera się na oczekiwanym zachowaniu opracowywanego oprogramowania.
Cykl życia testów zwinnych
W Scrumie czynności testowe obejmują -
Współtworzenie historii użytkowników w oparciu o oczekiwane zachowanie systemu przedstawionego jako przypadki testowe
Planowanie wydania w oparciu o wysiłek testowy i defekty
Planowanie sprintu w oparciu o historie użytkowników i defekty
Wykonanie sprintu z ciągłym testowaniem
Testowanie regresyjne po zakończeniu Sprintu
Raportowanie wyników testów
Testowanie automatyczne
Testowanie jest iteracyjne, a sprinty są oparte na schemacie przedstawionym poniżej -