Testowanie zwinne - narzędzia

W projektach zwinnych testerzy są odpowiedzialni za następujące codzienne zadania -

  • Wspieraj programistów w kodowaniu, wyjaśniając oczekiwane zachowanie systemu.

  • Pomóż programistom w tworzeniu skutecznych i wydajnych testów jednostkowych.

  • Twórz skrypty automatyzacji.

  • Zintegruj narzędzia / skrypty do testowania automatyzacji z ciągłą integracją na potrzeby testów regresyjnych.

W celu efektywnej i szybkiej realizacji tych zadań w większości projektów zwinnych stosowany jest system Continuous Integration (CI), który obsługuje CI kodu i komponenty testowe.

Testerzy i programiści w projektach zwinnych mogą korzystać z różnych narzędzi do zarządzania sesjami testowymi oraz do tworzenia i przesyłania raportów defektów. Oprócz specjalistycznych narzędzi do testowania zwinnego zespoły zwinne mogą również skorzystać z narzędzi do automatyzacji testów i zarządzania testami.

Note - Rozwiązania Record-and-Playback, Test-Last, Heavyweight i Test Automation nie są elastyczne, ponieważ -

  • Przepływ pracy test-last zachęcany przez takie narzędzia nie działa w zespołach zwinnych.

  • Nieobsługiwane skrypty utworzone za pomocą takich narzędzi stają się przeszkodą do zmiany

  • Takie specjalistyczne narzędzia stwarzają zapotrzebowanie na specjalistów ds. Automatyzacji testów, a tym samym sprzyjają silosom

Narzędzia, które są szeroko stosowane to:

S.No. Narzędzie i cel
1

Hudson

Struktura CI

2

Selenium

Testowanie funkcjonalne - zintegrowane z Hudson

3

CruiseControl

Struktura CI

4

Junit

Test jednostkowy języka Java

5

Nunit

Test jednostkowy .Net

6

Cobertura / JavaCodeCoverage / JFeature / JCover /

Pokrycie testów Java

7

Jester

Java - testowanie mutacji / automatyczne rozsiewanie błędów

8

Gretel

Narzędzie do monitorowania zakresu testów Java

9

TestCocoon

C / C ++ lub C # - zmniejsza liczbę testów, znajdując nadmiarowe testy i wyszukuje martwy kod

10

JAZZ

Java - pokrycie gałęzi, węzłów i rozbrajania oraz implementacja graficznego interfejsu użytkownika, planowania testów, instrumentacji dynamicznej i analizatora testów

11

Ant

Java - kompilacja automatyzacji

12

Nant

.Net - budowanie automatyzacji

13

Bonfire

Dodatek Agile Testing dla JIRA

Narzędzia do zwinnej automatyzacji testów

Efektywna obsługa narzędzi do automatyzacji testów Agile -

  • Wczesna automatyzacja testów przy użyciu podejścia najpierw testowego.

  • Pisanie kodu automatyzacji testów przy użyciu prawdziwych języków, języków specyficznych dla domeny.

  • Koncentrując się na oczekiwanym zachowaniu systemu.

  • Oddzielenie istoty testu od szczegółów implementacji, dzięki czemu jest niezależna od technologii.

  • Wspieranie współpracy.

Zautomatyzowane testy jednostkowe (przy użyciu Junit lub NUnit) obsługują podejście do kodowania w pierwszej kolejności. Są to testy białoskrzynkowe i zapewniają, że konstrukcja jest solidna i nie ma żadnych wad. Takie testy są tworzone przez programistów przy wsparciu testerów i mogą być niezależne od wymaganej funkcjonalności. Skutkuje to dostarczeniem produktu, który może nie spełniać wymagań klienta, a tym samym nie mieć wartości biznesowej.

Rozwiązanie tego problemu polega na zautomatyzowaniu testów akceptacyjnych, które są pisane we współpracy z klientem, innymi interesariuszami, testerami i programistami. Automatyczne testy akceptacyjne są pisane przez klientów lub właścicieli produktów / analityków biznesowych i odzwierciedlają oczekiwane zachowanie produktu. Zaangażowanie programistów zapewnia produkcję kodu zgodnie z wymaganiami. Jeśli jednak testowanie koncentruje się tylko na akceptacji, wynikowy kod może pozostać nierozszerzalny.

W związku z tym zautomatyzowane testy jednostkowe i automatyczne testy akceptacyjne są uzupełniające i oba są potrzebne w zwinnym rozwoju.

Zwinne narzędzia i struktury, które obsługują automatyczne testy akceptacyjne to -

  • Fit
  • Fitnesse
  • Concordion
  • Ruby
  • Cucumber

Dopasowanie

Ward Cunningham opracował narzędzie Fit, którego można używać do automatyzacji testów akceptacyjnych. Dopasowanie pozwala -

  • Klienci lub właściciele produktów, aby podać przykłady zachowania produktów za pomocą programów Microsoft Word i Microsoft Excel

  • Programiści mogą łatwo przekształcić te przykłady w testy automatyczne.

Fit 1.1 obsługuje zarówno język Java, jak i .NET.

FitNesse

FitNesse to wiki, które jest stylem serwera internetowego, który pozwala każdemu odwiedzającemu na dokonywanie dowolnych edycji, w tym zmianę istniejących stron i tworzenie nowych. Prosty język znaczników umożliwia łatwe tworzenie nagłówków, pogrubianie tekstu, podkreślanie i kursywę, tworzenie list wypunktowanych i wykonywanie innych rodzajów prostego formatowania.

W FitNesse automatyzacja testów akceptacyjnych wygląda następująco -

  • Testy ekspresowe jako tabele danych wejściowych i oczekiwanych danych wyjściowych.

  • Użyj FitNesse, aby umieścić tabelę testową na stronie, którą możesz edytować.

    • Alternatywnie, umieść tabelę testową w programie Microsoft Excel, skopiuj do schowka, a następnie użyj Spreadsheet to FitNesse polecenie, aby FitNesse poprawnie sformatował tabelę

  • Uruchom test

  • Wyniki testu uzyskuje się poprzez kodowanie kolorami komórek w tabeli testowej

    • zielone komórki oznaczają, że uzyskano oczekiwane wartości

    • czerwone krwinki oznaczają, że uzyskano inną wartość niż oczekiwana

    • żółte komórki oznaczają, że został zgłoszony wyjątek

Ogórek

Cucumber to narzędzie oparte na architekturze Behavior Driven Development (BDD). Kluczowe cechy to -

  • Służy do pisania testów akceptacyjnych dla aplikacji internetowych.

  • Umożliwia automatyzację walidacji funkcjonalnej w czytelnym i zrozumiałym formacie, takim jak zwykły angielski.

  • Został zaimplementowany w języku Ruby, a następnie rozszerzony na framework Java. Oba obsługują Junit.

  • Obsługuje inne języki, takie jak Perl, PHP, Python, .Net itp.

  • Może być stosowany razem z selenem, watirem, kapibarą itp.