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 -