Testowanie zwinne - przegląd
Agileto iteracyjna metodologia programistyczna, w której zarówno programowanie, jak i testowanie są równoległe. Testowanie nie jest oddzielną fazą; Kodowanie i testowanie są wykonywane interaktywnie i przyrostowo, co skutkuje jakością produktu końcowego, który spełnia wymagania klienta. Co więcej, ciągła integracja skutkuje wczesnym usuwaniem defektów, a tym samym oszczędnością czasu, wysiłku i kosztów.
Manifest Agile
Manifest Agile został opublikowany przez zespół programistów w 2001 roku, podkreślając znaczenie zespołu programistów, dostosowując się do zmieniających się wymagań i zaangażowania klientów.
The Agile Manifesto is −
Odkrywamy lepsze sposoby tworzenia oprogramowania, robiąc to i pomagając innym. Dzięki tej pracy doszliśmy do wartości -
- Osoby i interakcje nad procesami i narzędziami.
- Działające oprogramowanie ponad obszerną dokumentację.
- Współpraca z klientem zamiast negocjacji umowy.
- Reagowanie na zmianę zgodnie z planem.
Oznacza to, że podczas gdy elementy po prawej stronie mają wartość, bardziej cenimy elementy po lewej stronie.
Co to jest testowanie zwinne?
Agile Testing to praktyka testowania oprogramowania, która jest zgodna z zasadami zwinnego tworzenia oprogramowania.
Testy zwinne obejmują wszystkich członków zespołu projektowego, a testerzy dysponują specjalistyczną wiedzą. Testowanie nie jest oddzielną fazą i jest przeplatane ze wszystkimi fazami rozwoju, takimi jak wymagania, projekt i kodowanie oraz generowanie przypadków testowych. Testowanie odbywa się jednocześnie w całym cyklu rozwojowym.
Ponadto, wraz z testerami uczestniczącymi w całym cyklu rozwojowym w połączeniu z członkami zespołu wielofunkcyjnego, wkład testerów w tworzenie oprogramowania zgodnie z wymaganiami klienta, z lepszym projektem i kodem stałby się możliwy.
Testy zwinne obejmują wszystkie poziomy testowania i wszystkie rodzaje testów.
Testy zwinne vs. Testowanie wodospadu
W metodologii Waterfall Development działania cyklu życia rozwoju odbywają się w fazach, które są sekwencyjne. Dlatego testowanie jest oddzielną fazą i jest inicjowane dopiero po zakończeniu fazy rozwojowej.
Poniżej przedstawiono najważniejsze różnice między testami zwinnymi a testami wodospadowymi -
Testowanie zwinne | Testowanie wodospadu |
---|---|
Testowanie nie jest oddzielną fazą i odbywa się równolegle z rozwojem. | Testowanie to oddzielna faza. Wszystkie poziomy i typy testów można rozpocząć dopiero po zakończeniu programowania. |
Testerzy i programiści pracują razem. | Testerzy pracują niezależnie od programistów. |
Testerzy są zaangażowani w tworzenie wymagań. Pomaga to w mapowaniu wymagań do zachowań w scenariuszu świata rzeczywistego, a także w określaniu kryteriów akceptacji. Ponadto logiczne przypadki testowe akceptacji byłyby gotowe wraz z wymaganiami. | Testerzy nie mogą być zaangażowani w fazę wymagań. |
Test akceptacyjny jest wykonywany po każdej iteracji i wymaga się od klientów uzyskania opinii. | Testy akceptacyjne są wykonywane tylko na koniec projektu. |
Każda iteracja kończy własne testowanie, dzięki czemu testy regresji mogą być wdrażane za każdym razem, gdy zostaną wydane nowe funkcje lub logika. | Testy regresyjne można wdrożyć dopiero po zakończeniu programowania. |
Brak opóźnień między kodowaniem a testowaniem. | Zwykłe opóźnienia między kodowaniem a testowaniem. |
Ciągłe testowanie z nakładającymi się poziomami testów. | Testowanie jest czynnością mierzoną w czasie, a poziomy testów nie mogą się pokrywać. |
Testowanie to najlepsza praktyka. | Testowanie jest często pomijane. |
Zasady testowania zwinnego
Zasady testowania zwinnego to -
Testing moves the project forward- Ciągłe testowanie to jedyny sposób na zapewnienie ciągłego postępu. Agile Testing zapewnia na bieżąco informacje zwrotne, a produkt końcowy spełnia wymagania biznesowe.
Testing is not a phase- Zespół zwinny testuje wraz z zespołem programistów, aby upewnić się, że funkcje zaimplementowane podczas danej iteracji są rzeczywiście wykonane. Testowanie nie jest zachowywane w późniejszej fazie.
Everyone tests- W testach zwinnych cały zespół, w tym analitycy, programiści i testerzy, testuje aplikację. Po każdej iteracji nawet klient przeprowadza testy akceptacji użytkowników.
Shortening Feedback Loops- W testach zwinnych zespół biznesowy poznaje rozwój produktu dla każdej iteracji. Są zaangażowani w każdą iterację. Ciągłe sprzężenie zwrotne skraca czas odpowiedzi, a zatem koszt związany z jego naprawą jest mniejszy.
Keep the Code Clean- Wady są naprawiane, ponieważ są podnoszone w tej samej iteracji. Zapewnia to czysty kod na każdym etapie rozwoju.
Lightweight Documentation - Zamiast obszernej dokumentacji testowej, testerzy Agile -
Skorzystaj z list kontrolnych wielokrotnego użytku, aby zasugerować testy.
Skoncentruj się na istocie testu, a nie na przypadkowych szczegółach.
Używaj lekkich stylów / narzędzi dokumentacji.
Przechwytuj pomysły na testy w wykresach do testów eksploracyjnych.
Wykorzystuj dokumenty do wielu celów.
Leveraging one test artifact for manual and automated tests- Ten sam artefakt skryptu testowego można wykorzystać do testowania ręcznego oraz jako dane wejściowe do testów automatycznych. Eliminuje to wymóg dokumentacji testu ręcznego, a następnie równoważnego skryptu testu automatycznego.
“Done Done,” not just done - W Agile mówi się, że funkcja jest wykonywana nie po opracowaniu, ale po opracowaniu i testowaniu.
Test-Last vs. Test Driven- Przypadki testowe są pisane wraz z wymaganiami. Dlatego rozwój może być napędzany przez testowanie. To podejście nazywa się Test Driven Development (TDD) i Acceptance Test Driven Development (ATDD). Kontrastuje to z testowaniem jako ostatnią fazą testów wodospadu.
Testy zwinne
Działania związane z testami zwinnymi na poziomie projektu to:
Planowanie wersji (plan testów)
Dla każdej iteracji
Testy zwinne podczas iteracji
Testowanie regresji
Działania związane z wydaniem (związane z testem)
Działania związane z testami zwinnymi podczas iteracji obejmują:
- Udział w planowaniu iteracji
- Szacowanie zadań z perspektywy testowania
- Pisanie przypadków testowych przy użyciu opisów funkcji
- Testów jednostkowych
- Testy integracyjne
- Testowanie funkcji
- Naprawianie usterek
- Testy integracyjne
- Testy akceptacyjne
- Raportowanie stanu postępu testów
- Śledzenie defektów