Dlaczego?
Automatyzacja się skompromitowała, a testowanie manualne umiera. Zespoły projektowe w wielu przypadkach nie są w stanie stworzyć narzędzia, które tanio, szybko, skutecznie i automatycznie zweryfikuje jakość oprogramowania. Testerzy manualni, których już dziś brakuje na rynku, nie są w stanie przeklikać całej aplikacji. Szukając nowej drogi doszliśmy do wniosku, że musimy przywrócić wiarę w automatyzację i wskrzesić testy manualne. Naszym rozwiązaniem będzie więc dostarczenie osobie, która ma znikome lub zerowe umiejętności kodowania, narzędzia, które część działań wykona za nią automatycznie.
Dlaczego chcemy zrealizować ten projekt? Na rynku występuje deficyt automatyków testów oraz testerów manualnych. Pracujący w organizacjach testerzy są przeciążani, albo brak osób do testowania przekłada się na niższą jakość produktów dostarczanych na rynek. Jeśli uda nam się zbudować narzędzie, będziemy mogli odciążyć testerów i pomóc weryfikować (przynajmniej część) rzeczy automatycznie.
Jak ma wyglądać automatyzacja?
W pseudoautomatyzacji w oparciu o narzędzia nagrywająco-odtwarzające użytkownik rejestruje swoje działania w aplikacji. Poprawność generowania kodu sprawdza się po zakończeniu nagrywania skryptu.
W klasycznej automatyzacji pisanej "z palca" skrypty próbkują aplikację próbując przechodzić przez jej wybrane punkty aż do miejsca weryfikacji.
W AutoMagicTest implementowana koncepcja ma prezentować się następująco:
- narzędzie dokonuje możliwie najpełniejszej analizy struktury oprogramowania
- w ramach zdefiniowanej struktury udaje się już ujawnić pewne problemy automatycznie, a błędy ujawnione manualnie można oznaczyć i zaraportować
- scenariusze automatyczne buduje się poprzez wskazanie rozpoznanych automatycznie elementów aplikacji, a na końcu definiuje się weryfikator osiągnięcia lub też braku osiągnięcia celu.
Dzięki temu analizujemy znacznie więcej niż w klasycznej automatyzacji i robimy to bez znaczącego zaangażowania testera. Ta część analizy jest jedynie weryfikacją struktury więc z perspektywy biznesowej ma ograniczone znaczenie. Ma jednak dużą wartość dla testera, który może np. zweryfikować podatność aplikacji na automatyzację. Z drugiej strony osiągamy znacznie więcej niż w przypadku narzędzi nagrywająco - odtwarzających ponieważ podatność elementów aplikacji na automatyzację jest badana przed samym definiowaniem scenariuszy.
Co?
W pierwszym etapie wzięliśmy się za narzędzie automatyzacji dla aplikacji webowych. Najłatwiejszych, ale jednocześnie najbardziej popularnych.
Pomysłodawca i sponsor projektu zdefiniował następujące cele/funkcjonalności:
- Stworzyć aplikację desktopową do testowania aplikacji webowych.
- Aplikacja ma mieć jeden przycisk uruchamiający automatyczną weryfikację.
- Aplikacja musi mieć możliwość przerwania uruchomionej weryfikacji.
- Narzędzie nie może wymagać konfigurowania, a jednie podania adresu badanej strony.
- Narzędzie musi generować strukturę drzewiastą strony i korzystać ze znaczników META do nazywania stron.
- W narzędziu musi następować automatyczna weryfikacja linków i sprawdzenie ich poprawności (kody 200, 404, 500, itd.)
- Aplikacja musi pozwalać na subiektywną ocenę testerowi, czy dana strona "działa" czy "nie działa" wraz z możliwością komentowania jakości.
- Narzędzie musi automatycznie przechodzić przez formularze podając do pól wartościowe (jeśli możliwe) lub też losowe dane.
- W przypadku, gdy przejście przez formularz nie jest możliwe, aplikacja może prosić użytkownika o pomoc w przejściu.
- Narzędzie ma posiadać zdolność do definiowania scenariuszy testowych, rozumianych jako odwiedzanie danych stron w określonej kolejności. Scenariusz musi uwzględniać weryfikację, czy działanie zakończyło się powodzeniem czy też nie.
- Aplikacja musi być w stanie porównywać wersje oprogramowania i sprawdzać, czy nie nastąpiły zmiany (a jeśli nastąpiły, to jakie) od ostatniego testu.
Są to wstępne założenia i koncepcja już zaczyna ewoluować.
Jak działamy i ile udało się zrobić??
Jesteśmy w bardzo wczesnym stadium naszych działań, ale część z opisanych powyżej funkcji jest już dostępnych. Mamy backlog i pierwsze wersje oprogramowania za sobą. Budujemy oprogramowanie zwinnie i z regułą codziennej dostawy.
Projekt toczy się już około miesiąca i oto, co udało się uzyskać do tej pory.
Wersja 0.0.17.37 TEST - 2015.09.23
[najstarsze funkcje opisane są na samym dole]
- nowa zakładka "Formularze" w formularzu wyniku
- nowa opcja w ustawieniach "Nie twórz struktury strony"
- nowa kolumna "Struktura" na liście w formularzu wyboru wersji, oznaczająca wersje bez struktury strony
- wczytywanie zapisanych wersji poprzez kliknięcie w formularzu startowym w link "Przeglądaj historię" oraz po wybraniu akcji menu "Wersja -> Otwórz inną"
- nowa opcja w ustawieniach "Lokalizacja" określająca lokalizację w zapytaniu HTTP
- oznaczenie w formularzu wyniku, czy aktualna wersja jest zapisana i czy jest kompletna
- nowy akcja w formularzu wyniku "Nowa strona", która zamyka formularz i przechodzi do formularza startowego z wyborem strony
- przechwytywanie błędów analizy i próba wyświetlenia dotychczasowych wyników
- logowanie do pliku "log.txt" przechwyconych błędów
- próba wykonania akcji "Uruchom ponownie" bez wcześniejszego zapisu wersji skutkuje wyświetleniem popupu z pytaniem o zapis wersji
- podczas uruchamiania aplikacji jest sprawdzana wersja i w razie, gdyby aplikacja była w starej wersji, to aplikacja prosi o pobranie najnowszej wersji i się zamyka
- w formularzu analizy strony wyświetlany jest losowy baner pobierany z serwera
- nowa opcja w ustawieniach "Pomiń błędy dotyczące struktury HTML"
- przerwanie analizy skutkuje wyświetleniem dotychczasowego wyniku analizy
- nowy typ błędu "Przekroczony czas oczekiwania na odpowiedź dla strony"
- w czasie analizy wyświetlany jest aktualnie przetwarzany adres URL
- nowa opcja w ustawieniach "Loguj przed rozpoczęciem analizy"
- pole "Nazwa" w formularzu nadawania nazwy dla wersji jest wstępnie uzupełnione proponowaną nazwą
- ustawienia dla stron są teraz zapisywane
- nowa opcja w ustawieniach "Autoryzacja HTTP"
- do menu formularza wyniku dodany został nowy element "Uruchom ponownie", która wykonuj taką samą akcję co przycisk "Uruchom ponownie"
- do menu formularza wyniku dodany został nowy element "Zapisz wersję", która zapisuje zmiany
- każda zmiana statusu lub komentarza nie jest teraz automatycznie zapisywana, dlatego wymagane jest ręczne zapisywanie za pomocą akcji "Zapisz wersję" w menu
- zamknięcie formularza wyniku bez wcześniejszego zapisu wersji skutkuje wyświetleniem popupu z pytaniem o zapis wersji
- nowa opcja w ustawieniach "Uwierzytelnianie na stronie" umożliwiająca zalogowanie się na analizowanej stronie
- nowa opcja w ustawieniach "Adresy stron wyłączonych z analizy" umożliwiająca wykluczenie linków z analizy strony
- menu kontekstowe na strukturze strony umożliwiające zmianę statusu
- formularz "Ustawienia" dostępny z formularza startowego
- wyniki analizy strony są zapisywane do bazy (każda analiza to osobna wersja)
- na formularzu startowym dodano link "Przeglądaj historię", który jest dostępny po przynajmniej jednej analizie strony
- w właściwościach strony można ustawiać status oraz komentarz
- przycisk "Przejdź pod wybrany adres" otwierający link w domyślnej przeglądarce
- przycisk "Pokaż stronę na strukturze" na liście elementów pokazujący stronę na mapie strony
- przycisk "Pokaż stronę na strukturze" na zakładce "Błędy" pokazujący stronę na mapie strony
- kolumna "Błąd" na liście elementów strony
- ekran powitalny
- formularz startowy z możliwością podania strony do analizy
- formularz analizy strony zawierający aktualne informacje o analizie z możliwością anulowania
- mapa strony.
Chcesz się zaangażować? Możesz pomóc!
Przede wszystkim potrzebujemy recenzji naszego pomysłu. Liczymy na jego krytykę i dyskusję, która pozwoli nam określić dalszą drogę dla rozwoju AutoMagicTest. Piszcie do nas w najwygodniejszy dla Was sposób.
Potrzebujemy również beta testerów, którzy chcieliby sprawdzić, czy oprogramowanie zadziała w ich środowisku i czy będzie przydatne w pracy.
Jeśli jesteś przedstawicielem firmy, która mogłaby skorzystać na takim narzędziu i jest zainteresowany wytyczeniem kierunku jego rozwoju, również daj nam znać.
Piszcie do nas na adres redakcja@testerzy.pl.
Co dalej?
W najbliższych tygodniach pokażemy pierwszą wersję narzędzia, którą każdy będzie mógł pobrać i zweryfikować.