getting started with fitnesse collaboration tool
Teraz świat przechodzi na Agile. Wczesna i ciągła informacja zwrotna jest niezbędna dla każdego zespołu scrumowego. Ponieważ świat się zmienia, należy również zmienić sposób myślenia testerów.
Zamiast „znajdować błędy, łamać oprogramowanie, mierzyć wymagania”, testerzy myślą teraz o „zapewnieniu jakości już za pierwszym razem, testując bez interfejsu użytkownika lub testując, zanim interfejs użytkownika będzie dostępny”.
Testerzy są teraz również zobowiązani do reagowania na zmiany, dlatego ważne jest, aby wyjść z techniki testowania czarną skrzynką i nie czekać, aż interfejs użytkownika zostanie opracowany; zamiast tego rozpocznij również testowanie produktów pośrednich.
Czego się nauczysz:
selen z pytaniami do wywiadu w języku c #
- Ale dlaczego?
- Co to jest FitNesse?
- Dlaczego powinienem używać FitNesse?
- Więc co wszystko mogę stworzyć?
- Pobieranie i konfiguracja FitNesse:
- Przykład FitNesse - rzeczy do przetestowania:
- Pisanie testu w FitNesse:
- Kilka spostrzeżeń na temat stylów urządzeń / stołów:
- Rekomendacje:
- Wniosek
- rekomendowane lektury
Ale dlaczego?
„TERAZ JEST TO BARDZO ZWINNA PERSPEKTYWA”.
Zawsze, gdy tworzymy oprogramowanie, najniższe warstwy testów są utrzymywane na poziomie jednostki / komponentu. Testy jednostkowe są przeprowadzane przez zespół programistów. Te testy jednostkowe są bardzo zorientowane na technologię i przeważnie napisane w tym samym języku, w którym napisany jest testowany system.
Te testy jednostkowe są napisane za pomocą „ Jednostka X ”Narzędzie testowe. Mówimy to w świecie testowym jeśli nasz test jednostkowy jest solidny , defekty są identyfikowane znacznie wcześniej, a testowanie powyżej warstwy testów jednostkowych staje się łatwe w stabilnym środowisku. A kiedy mówimy w Agile, mówimy, że jeśli zespół opanował sztukę TDD (Test Driven Development), testy na poziomie jednostki dostarczają najszybszej informacji zwrotnej.
Warstwa znajdująca się nad warstwą jednostek / komponentów jest warstwą testów akceptacyjnych, na której prowadzona jest działalność. Są to testy funkcjonalne, które mają większe pokrycie niż testy jednostkowe i są najczęściej wykonywane przez osoby niebędące programistami. Te testy sprawdzają warstwę znajdującą się za warstwą prezentacji lub interfejsami API. Te interfejsy API lub metody podczas testowania zapewniają szybką informację zwrotną, a do czasu opracowania interfejsu GUI większość funkcji jest testowana.
FitNesse jest przykładem tej warstwy automatycznych testów akceptacyjnych.
Co to jest FitNesse?
FitNesse to „W pełni zintegrowana samodzielna wiki i platforma do testów akceptacyjnych”. Jest to serwer WWW typu wiki typu open source. Wiki - ponieważ umożliwia tworzenie własnych stron internetowych, na których tworzone są tabele testowe. Te tabele testowe to nic innego jak dane testowe .
Jego zamiarem jest wspieranie zwinnego stylu akceptacji czarnej skrzynki i testów regresyjnych. Jest to również narzędzie do współpracy, ponieważ testerzy współpracują z programistami, aby przygotować zestaw testów.
Dlaczego powinienem używać FitNesse?
Zespół testowy Agile może wykorzystać FitNesse do przygotowania zestawów testowych, które przetestują metody w kodzie. FitNesse jest analogiczne do Junit w taki sposób, że testuje również metody, ale różni się od Junit, ponieważ testy mają postać prostych tabel, z których mogą korzystać zarówno deweloperzy, jak i osoby niebędące programistami.
Korzyści:
- Wczesna informacja zwrotna poprzez wykonywanie automatycznych testów akceptacyjnych tak często, jak jest to wymagane.
- Wyniki testów są deterministyczne, ponieważ są zaznaczone na czerwono lub zielono.
- Dane testowe mogą być zaprojektowane tak, aby odpowiadały potrzebom jakości.
- Testy są napisane prostym językiem i łatwe do zrozumienia, ponieważ są napisane w formie tabelarycznej.
- Tabele te są zdefiniowane pod względem danych wejściowych i oczekiwanych wyników.
- Widzieć wszystko Funkcje FitNesse tutaj.
Więc co wszystko mogę stworzyć?
W FitNesse możesz tworzyć testy i pakiety. Terminy są bardzo podobne do używanych w świecie testowym. Testy to pojedynczy skrypt, a komplet to kolekcja / grupa testów. Kiedy tworzysz kombinezon i wykonujesz go, zaletą jest to, że wykonywane są wszystkie testy w tym kolorze. Potrzebujesz więc odpowiedniego planowania, aby zorganizować testy w garniturze.
Pobieranie i konfiguracja FitNesse:
=> Aby pobrać FitNesse, Kliknij tutaj
(Uwaga: Kliknij dowolny obraz, aby wyświetlić powiększenie)
Pobierz najnowszą wersję pliku fitnesse-standalone.jar i zapisz ją na dysku lokalnym.
Otwórz wiersz polecenia i uruchom plik jar. Dla ułatwienia utworzyłem plik wsadowy:
Po uruchomieniu pliku jar, FitNesse jest uruchamiane, jak pokazano poniżej: (kliknij na obrazek, aby powiększyć)
Aby otworzyć FitNesse, otwórz przeglądarkę i wpisz: http: // localhost: . W tym przypadku numer portu to 2222.
Otrzymana strona jest pokazana poniżej: (kliknij na zdjęcie, aby powiększyć)
Więc tutaj, jeśli widzisz listę rozwijaną Testy, możemy utworzyć „stronę pakietu”, a także „stronę testową”. Podczas tworzenia pakietu wszystkie skrypty testowe w tym pakiecie zostaną wykonane.
W celu wyjaśnienia podam przykład strony testowej.
Przykład FitNesse - rzeczy do przetestowania:
Obecnie testujemy prosty program kalkulatora pokazany poniżej.
Oto kod w Javie, który ma 4 metody:
- dodanie ()
- minus ()
- pomnożyć ()
- podzielić ()
(Proszę zobaczyć, że FitNesse działa z dowolnym wybranym językiem. Dla wyjaśnienia użyłem java)
Ten kod w świecie FitNesse nazywa się „Fixture”.
Urządzenia to nic innego jak przykładowy kod - lub łącze między FitNesse a testowaną aplikacją. Więc za każdym razem, gdy chcemy przetestować metodę, musimy napisać urządzenie, które wywoła i przetestuje metodę.
Tak więc kod „Fixture” w naszym przykładzie wygląda następująco:
publicclass Calculator { privateint first,second; publicvoid setFirst(int first) { this.first=first; } publicvoid setSecond(int second) { this.second=second; } publicint addition() { return (first+second); } publicint minus() { return (first-second); } publicint multiply() { return (first*second); } publicfloatdivide() { return (first/second); } }
Kod zaćmienia jest wyświetlany jako: (kliknij na obrazek, aby powiększyć)
Potrzebowalibyśmy pliku klasy, więc upewnij się, że go skompilujesz.
Pisanie testu w FitNesse:
Krok 1) Wróćmy do przeglądarki, w której mamy główną stronę FitNesse.
Na pierwszej stronie kliknij „Strona testowa”, wprowadź nazwę testu i kliknij przycisk „Zapisz”. W naszym przypadku jest to „Kalkulator”
Krok 2) W adresie URL dodaj nazwę testu kropką „”. Operator.
Lubić: http: // localhost: 2222 / FrontPage.Calculator
Krok 3) Kliknij przycisk Edytuj i wprowadź linie pokazane poniżej
Oto wprowadzone linie:
! define TEST_SYSTEM {slim}
! ścieżka F: Eclipse TestFitness bin
! | Kalkulator |
| pierwsza | druga | dodawanie? | minus? | mnożenie? | dzielenie? |
| 4 | 2 | 6 | 2 | 8 | 2,0 |
| 10 | 5 | 15 | 5 | 50 | 2,0 |
| 10 | 10 | 20 | 0 | 100 | 1,0 |
Zrozummy te wersety jeden po drugim.
do) Pierwsza linia mówi, że FitNesse używa systemu testowego SLIM.
( SZCZUPŁY - Oznacza prostą metodę wywoływania listy. Mówiąc SLIM system testowy, cała obróbka stołu jest wykonywana przez FitNesse. SLIM ma SLIM Runner i SLIM Executer. SLIM Runner dzieli strony testowe na proste instrukcje, które są przekazywane do SLIM Executer, który kieruje kod urządzenia do wywołania testowanego systemu)
b) Druga linia określa lokalizację pliku klasy. W tym przypadku kod Java jest kompilowany, a plik klasy jest przechowywany w lokalizacji „ścieżka F: Eclipse TestFitness bin'
do) Trzecia linia podaje nazwę klasy. W naszym przypadku jego „Kalkulator'
re) A teraz czwarta linia:
Pierwsze dwie kolumny| pierwsza | druga |to parametry lub dane wejściowe metody Java.
Następne 4 kolumny, po których następuje „?”dodawanie? | minus? | mnożenie? | dzielenie? | są metodami w klasie java. Metody te zwrócą wartość, która zostanie porównana z wartościami oczekiwanymi.
jest) Linie:
| 4 | 2 | 6 | 2 | 8 | 2,0 |
| 10 | 5 | 15 | 5 | 50 | 2,0 |
| 10 | 10 | 20 | 0 | 100 | 1,0 |
Są to przypadki testowe, czy raczej powinienem powiedzieć Dane testowe dla naszej metody.
Pierwsza linia:
| pierwsza | druga | dodawanie? | minus? | mnożenie? | dzielenie? |
| 4 | 2 | 6 | 2 | 8 | 2,0 |
Przyjmie 4 jako pierwszy parametr i 2 jako drugi parametr i przekaże te dwie wartości w metodzie dodawania klasy java. Metoda zostanie wykonana i zwróci wartość. Ta zwrócona wartość zostanie porównana z wartością oczekiwaną zapisaną w polu „dodanie?” który jest| 6 |
W podobny sposób FitNesse przekaże pierwsze 2 parametry na minus? Metoda klasy java i zwraca wartość. Ta wartość zostanie porównana z wartością oczekiwaną z | 2 |
czym jest system operacyjny Linux i unix
W ten sam sposób, pomnóż? i podzielić? będzie działać, biorąc wartości pierwszego i drugiego parametru i zwraca wartość, z którą jest porównywana| 8 | 2,0 |odpowiednio
W podobny sposób wykonywane są poniższe 2 wiersze (lub powinienem powiedzieć przypadki testowe).
| 10 | 5 | 15 | 5 | 50 | 2,0 |
| 10 | 10 | 20 | 0 | 100 | 1,0 |
Krok 4) Po edycji testów kliknij przycisk Zapisz, a Twoja strona będzie wyglądać następująco:
Krok 5) Aby uruchomić testy, kliknij przycisk Test, a otrzymamy następujący wynik: (kliknij na obrazek, aby powiększyć)
W pierwszym wierszu (który jest naszym pierwszym przypadkiem testowym) kolor zielony podkreśla, że wartości zwrócone przez metodę add (), minus (), multiply () i divide () są zgodne z oczekiwaniami, tj. 6, 2 , Odpowiednio 8 i 2,0. Podobnie w drugim wierszu (który jest drugim przypadkiem testowym) wszystkie wartości zwracane przez metody są zgodne.
Krok 6) Teraz, aby zademonstrować, zmienię kilka oczekiwanych wartości na inne wartości (wartości są nieprawidłowe, ale zrobiłem to celowo dla wyjaśnienia)
W tej chwili mam:
- Zmieniono oczekiwaną wartość addycji () dla pierwszego przypadku testowego na 7
- Zmieniono oczekiwaną wartość funkcji minus () dla drugiego przypadku testowego
- Zmieniono oczekiwaną wartość metody divide () dla trzeciego przypadku testowego.
Krok 7) Uruchom test, klikając przycisk „Test”. Powyższe testy powinny zakończyć się niepowodzeniem. (kliknij na zdjęcie, aby powiększyć)
Kolor czerwony wskazuje, że testy te zakończyły się niepowodzeniem.
Kilka spostrzeżeń na temat stylów urządzeń / stołów:
Widzieliśmy, że w FitNesse testy są wykonywane przez wykonanie wierszy w tabeli. Stąd, aby wykonać różne rodzaje testów (lub powinienem powiedzieć, aby przetestować różne rodzaje metod), musielibyśmy użyć różnych rodzajów tabel. Najczęściej używamy poniższych stylów urządzeń / tabel:
- Uchwyt kolumny - jest najczęściej używany (i jest używany w powyższym przykładzie). Tutaj wiersze danych reprezentują różne zestawy danych wejściowych i ich oczekiwanych wyników.
- Urządzenia rzędowe - Służy do testowania zapytań, które zwracają pewien zestaw wartości.
- Urządzenia akcji - Służy do uruchamiania testów sekwencji zdarzeń. Te zdarzenia mogą przypominać kliknięcie przycisku, sprawdzenie wartości
Rekomendacje:
Próbowałem zademonstrować koncepcje, abyśmy mogli zacząć odkrywać więcej na FitNesse. Sposób myślenia testera również wymaga zmiany i poszerzenia. Musimy przestać ograniczać się do zajrzenia do wnętrza kodu. Czuję; ostatecznie testujemy kod, więc dlaczego nie spróbujemy go zobaczyć i przetestować od czasu do czasu?
Zacznij doskonalić swoje umiejętności programistyczne i kładź większy nacisk na budowanie logiki, a raczej na naukę składni. Gdy już dobrze zaznajomisz się z koncepcjami programowania i przećwiczysz ich wdrażanie, odkrywanie FitNesse stanie się łatwiejsze.
Wniosek
Testowanie w agile występuje w 4 smakach:
- Zautomatyzowane testy jednostkowe - za pomocą Junit
- Zautomatyzowany test weryfikacji akceptacji - za pomocą FitNesse
- Zautomatyzowane testy UI / regresji - przy użyciu Selenium lub QTP
- Testowanie ręczne
Powinniśmy starać się maksymalnie wykorzystać nasze testy w jednostce i warstwie akceptacji . Do tej pory staraliśmy się zachować większość naszych testów dla warstwy interfejsu użytkownika przy użyciu narzędzi takich jak QTP i Selenium, ale wadą jest to, że tych funkcji nie można przetestować, dopóki nie zostanie opracowany interfejs użytkownika. Zanim znajdziesz usterkę, programiści zajęli się opracowywaniem innych funkcji.
Z drugiej strony, jeśli możemy przetestować interfejsy API wkrótce po ich napisaniu, programiści mogą to natychmiast naprawić. Spowodowałoby to również mniejszy wysiłek podczas testowania GUI. Ponieważ wszystkie funkcje są testowane, testowanie GUI staje się łatwe.
W przypadku Agile, nastawienie testerów również wymaga zmiany i muszą wyjść z rutynowego zestawu testów, a teraz powinieneś spojrzeć na kod i spróbować zidentyfikować błędy, nawet jeśli interfejs użytkownika nie jest dostępny.
O autorze: To jest gościnny artykuł członka zespołu STH, Shilpy C. Roy. Od ponad 9 lat zajmuje się testowaniem oprogramowania w takich dziedzinach, jak reklama internetowa, bankowość inwestycyjna i telekomunikacja.
Daj nam znać swoje pytania w komentarzach poniżej.
rekomendowane lektury
- Programiści nie są dobrymi testerami. Co mówisz?
- Przydatne bezpłatne narzędzie do przechwytywania ekranu i notatek dla testerów - przegląd qSnap
- 10 najpopularniejszych narzędzi do przeglądu kodu dla programistów i testerów
- Przegląd WebLOAD - Pierwsze kroki z narzędziem do testowania obciążenia WebLOAD
- 15 najlepszych narzędzi do testowania SOA dla testerów
- Jak utrzymać motywację u testerów oprogramowania?
- Przegląd narzędzia do zarządzania testami TestLodge
- Miękkie umiejętności dla testerów: jak poprawić umiejętności komunikacyjne