7 factors affecting test estimation selenium automation project selenium tutorial 32
W ostatnich kilku samouczkach dotyczących Selenium dowiedzieliśmy się o tym testowanie automatyzacji przy użyciu narzędzia Cucumber i Selenium . Rozmawialiśmy również o integracja Selenium WebDriver z Cucumber .
W tym samouczku omówimy różne czynniki wpływające na szacowanie wysiłku automatyzacji Selenium .
Planowanie i szacowanie to dwa najważniejsze aspekty cyklu życia oprogramowania.
Osobiście uważam, że w branży oprogramowania są brak metod kuloodpornych robienia czegokolwiek. Ponieważ każdy projekt jest ekskluzywny i ma inny zestaw złożoności i czynników środowiskowych, wdrożenie strategii szacowania i planowania powinno być wspólnym wysiłkiem poszczególnych zespołów, przy odpowiednich interwencjach seniorów i wsparciu kierownictwa.
Zanim zaczniesz szacować dowolny projekt, konieczne jest zrozumienie każdej fazy, przez którą będzie przechodził Twój projekt, abyś mógł podać poprawną i uzasadnioną ocenę.
Szacowania można dokonać nie tylko dla procesu testowania ręcznego, ale w dobie automatyzacji techniki szacowania są również stosowane do automatyzacji testów. Teraz, gdy Selen nabiera rozpędu i popularności na rynku, staram się opisać kilka czynników, które warto wziąć pod uwagę przy ocenie projektu Selenium.
Zaczynajmy!!
Zakładam, że rozpoczynamy inicjatywę Automation od zera i nie mamy dostępnego gotowego frameworka.
Czego się nauczysz:
- Czynniki wpływające na ocenę automatyzacji selenu
- # 1 Zakres projektu
- # 2 Złożoność aplikacji
- # 3 Korzystanie z narzędzi / technologii pomocniczych
- # 4 Wdrażanie struktury
- # 5 Nauka i szkolenie
- # 6 Konfiguracja środowiska
- # 7 Kodowanie / tworzenie skryptów i przegląd
- Wniosek:
- rekomendowane lektury
Czynniki wpływające na ocenę automatyzacji selenu
Poniżej wyjaśniono różne czynniki, które mają wpływ i które należy wziąć pod uwagę przy szacowaniu konkretnego projektu „Selenium”:
# 1 Zakres projektu
Zakres zazwyczaj oznacza identyfikację prawidłowych przypadków testowych do automatyzacji. Aby to osiągnąć, zastosuj strategię „dziel i rządź”. Podziel aplikację na małe fragmenty lub moduły i przeanalizuj każdy z nich, aby znaleźć odpowiednie przypadki testowe do automatyzacji.
Wymagane kroki to:
- Zidentyfikuj różne czynniki, które będą stanowić podstawę identyfikacji kandydatów na przypadki testowe.
- Podziel aplikację na mniejsze moduły
- Przeanalizuj każdy moduł, aby zidentyfikować kandydujące przypadki testowe
- Oblicz zwrot z inwestycji
Aby uzyskać więcej informacji o tym, jak zidentyfikować prawidłowy przypadek testowy, zobacz mój poprzedni artykuł: Wybór poprawnych przypadków testowych do automatyzacji
# 2 Złożoność aplikacji
Kroki, które tu należy wykonać, to:
- Określ rozmiar aplikacji na podstawie liczby przypadków testowych, które należy zautomatyzować.
- Złożoność rozmiaru według serii Fibonacciego.
- Zidentyfikuj punkt weryfikacji i punkt kontrolny każdego przypadku testowego
Tutaj musimy ustalić definicję dużej / średniej i małej aplikacji. Ta definicja różni się od perspektywy indywidualnej / grupowej. Sposób klasyfikacji aplikacji zależy również od liczby przypadków testowych.
Na przykład:
Jeśli Twoja aplikacja ma 300-500 przypadków testowych do zautomatyzowania, możesz uznać ją za aplikację o niewielkich rozmiarach. Jeśli liczba przypadków testowych przekracza 1500, można je sklasyfikować jako złożone. Ten czynnik może być różny dla różnych zastosowań. Dla niektórych 1500 przypadków testowych do zautomatyzowania można uznać za małe / średnie. Więc po zidentyfikowaniu dokładnej liczby przypadków testowych, przeskaluj ją do małych / średnich lub dużych. Twoja strategia szacowania wysiłku będzie w dużym stopniu zależna od tych kryteriów.
Musisz również wziąć pod uwagę różne punkty kontrolne i punkty weryfikacji dla twojego przypadku testowego. Przypadek testowy może mieć więcej niż 1 punkt kontrolny
ale będzie miał tylko 1 punkt weryfikacji. Jeśli masz więcej niż 1 punkt weryfikacji, zaleca się podzielenie go na oddzielne przypadki testowe. Ułatwi to również konserwację i ulepszanie zestawu testów.
# 3 Korzystanie z narzędzi / technologii pomocniczych
Kroki, które tu należy wykonać, to:
- Zidentyfikuj ramy i potrzeby automatyzacji
- W oparciu o potrzeby przeanalizuj i zidentyfikuj narzędzia, które mają być użyte.
- Zidentyfikuj zależności / konsekwencje korzystania z narzędzia.
Sam selen nie wystarczy do zbudowania frameworka lub zakończenia automatyzacji. Selenium (sterownik sieciowy) skrypuje tylko przypadek testowy, ale są też inne zadania, takie jak raportowanie wyniku, śledzenie dzienników, robienie zrzutów ekranu itp.
Aby to osiągnąć, potrzebujesz oddzielnych narzędzi, które zostaną zintegrowane z Twoim frameworkiem. Dlatego ważne jest, aby zidentyfikować te wspierające podmioty, które najlepiej będą odpowiadały Twoim wymaganiom i pomogą uzyskać dodatni zwrot z inwestycji
# 4 Wdrażanie struktury
Nadchodzi trudna część J - kroki, które trzeba wykonać!
- Zidentyfikuj wejście (wzorzec, w którym dane są wprowadzane do skryptu) i wyjście (raporty / wyniki testów) Twojego pakietu automatyzacji.
- Zaprojektuj swoje pliki wejściowe. Może to obejmować od prostego pliku tekstowego do złożonego pliku programu Excel. Zasadniczo jest to plik zawierający dane testowe.
- Zaprojektuj strukturę folderów w oparciu o parametry wejściowe i
- Zaimplementuj funkcję raportowania (w jakimś pliku Excela lub za pomocą dowolnego narzędzia, takiego jak ReportNG)
- Określ / zaimplementuj rejestrator w swojej strukturze
- Zaimplementuj narzędzie kompilacji w swojej strukturze
- Zaimplementuj strukturę testów jednostkowych (Junit lub TestNG)
Oprócz tworzenia skryptów w automatyzacji testów z Selenium istnieje wiele innych wymagań, takich jak odczyt danych z pliku, raportowanie / śledzenie wyników testów, dzienniki śledzenia, uruchamianie skryptów w oparciu o warunki wejściowe i środowisko itp. Potrzebujemy więc struktury który zajmie się wszystkimi tymi skryptami. Ta struktura to nic innego jak Twój Framework.
Aplikacje internetowe są z natury złożone, ponieważ ich implementacja wymaga wielu narzędzi pomocniczych i technologii. W podobny sposób implementacja frameworka w Selenium jest również trudna (nie powiem skomplikowana), ponieważ wymaga innych narzędzi do integracji. Ponieważ wiemy, że Selenium NIE jest narzędziem, ale w rzeczywistości zbiorem / grupą plików jar, jest skonfigurowane, a nie „zainstalowane”, samo Selenium nie jest wystarczająco silne, aby zbudować złożoną strukturę. Wymaga listy narzędzi innych firm do zbudowania struktury.
Musimy tutaj pamiętać, że w Selenie nie ma nic „gotowego”. Do wszystkiego musimy kodować, więc szacunki powinny być dostępne dla wyszukiwania błędów i rozwiązywania problemów.
Tutaj musimy zrozumieć, że budowanie Framework jest najważniejszym aspektem twojego wysiłku w zakresie automatyzacji. Jeśli twój framework jest solidny, utrzymanie i ulepszanie staje się łatwiejsze, szczególnie w erze Agile, jeśli twój framework jest dobry, możesz łatwo zintegrować swoje testy ze wszystkimi sprintami.
Nie pomylę się, jeśli powiem, że ten szczególny czynnik projektowania Ram powinien być najważniejszym aspektem szacowania. W razie potrzeby (np. W złożonej aplikacji) czynnik ten należy ponownie rozbić na oddzielne WBS i dokonać oszacowania.
# 5 Nauka i szkolenie
Nauka Selenium różni się nieco od nauki jakiegokolwiek innego narzędzia do automatyzacji. Zasadniczo obejmuje naukę języka programowania, a nie tylko języka skryptowego (chociaż język skryptowy pomaga w budowaniu struktury, takiej jak chcesz napisać skrypt, który wywoływałby automatyczne skrypty po wprowadzeniu zmian w ustawieniach środowiska).
W przypadku, gdy łączymy WebDriver z Javą, powiedziałbym, że jeśli ktoś jest dobrze zaznajomiony z core Java, są w bardzo dobrej formie, aby rozpocząć automatyzację Selenium.
Wraz z nauką Java, powinny istnieć możliwości nauki innych technologii, takich jak ANT / Maven (do budowania), TestNG / jUnit (framework do testów jednostkowych), Log4J (do logowania), raportowania (do raportowania) itp. Lista ta może rosnąć w zależności od poziom ram. Im bardziej ta lista się wydłuża, tym więcej czasu zajmie.
Jeśli kierownictwo zdecydowało się na selen, te działania edukacyjne mogą być wykonywane równolegle z planowaniem. Ponieważ nie ma ograniczeń co do uczenia się tych technologii, sugeruje się przygotowanie określonego planu (programu nauczania) dla zespołu, aby mogli oni rozpocząć proces uczenia się w określonym kierunku i wszyscy są na tej samej stronie.
Praktycznie rzecz biorąc, my, testerzy, nie mamy ochoty uczyć się pełnoprawnego języka programowania i uważamy, że to bułka z masłem dla programistów. Ale teraz musimy zmienić tę mentalność i powinniśmy rozważyć naukę języka programowania jako równie ważną, jak nauka nowego procesu testowania. To nie tylko zwiększy wiedzę testera na temat języka i automatyzacji, ale także da szansę zrozumienia, jak aplikacja działa wewnętrznie, co może zwiększyć ich zakres znajdowania nowych błędów.
# 6 Konfiguracja środowiska
Konfiguracja środowiska obejmuje (nie ogranicza się do): -
- Konfigurowanie kodu w środowisku testowym
- Konfigurowanie kodu w środowisku produkcyjnym
- Pisanie skryptów do uruchamiania testów automatycznych.
- Opracowanie logiki raportowania
- Ustalenie częstotliwości uruchamiania skryptów i opracowanie logiki ich implementacji
- Tworzenie plików tekstowych / excel do wprowadzania danych testowych i przypadków testowych
- Tworzenie plików właściwości do śledzenia środowisk i poświadczeń
# 7 Kodowanie / tworzenie skryptów i przegląd
Zanim zaczniesz pisać testy, musisz spełnić dwa warunki wstępne:
- Kandydujące przypadki testowe powinny być przydatne
- Framework jest gotowy
Zidentyfikuj różne działania, które wykonuje Twoja aplikacja internetowa. Mogą to być proste czynności, takie jak nawigacja, klikanie, wprowadzanie tekstu; lub złożona akcja, taka jak połączenie z bazą danych, obsługa flasha lub Ajax. Weź jeden przypadek testowy na raz i określ, jakie działania wykonuje ten konkretny przypadek testowy, i odpowiednio oszacuj godziny dla każdego przypadku testowego. Suma wszystkich godzin w całym zestawie testów daje dokładną liczbę.
Powinna istnieć również możliwość przeglądu. Recenzje to po prostu przegląd kodu, który może zostać wykonany przez współpracownika lub programistę. Programowanie w parach jest najlepszą opcją, która jest szybka, ale jeśli nie jest to możliwe, w oparciu o dostępne zasoby lub strategię przeglądu organizacji, należy przeznaczyć na to godziny.
Więcej szczegółów na temat każdego czynnika wpływającego na oszacowanie:
Czynnik nr 1: zakres
Znaczenie : Identyfikacja kandydujących przypadków testowych do automatyzacji poprzez ROI
Wymagane kroki:
- Zidentyfikuj różne czynniki, które będą stanowić podstawę identyfikacji kandydatów na przypadki testowe.
- Podziel aplikację na mniejsze moduły
- Przeanalizuj każdy moduł, aby zidentyfikować kandydujące przypadki testowe
- Oblicz zwrot z inwestycji
Dostarczane: Lista przypadków testowych, które wymagają automatyzacji.
Uwagi: Ważne jest, aby zamrozić zakres po wykonaniu innych etapów estymacji.
Czynnik nr 2: złożoność
Znaczenie: Ustal definicję prostej i niewielkiej aplikacji.
Wymagane kroki:
- Dostosuj rozmiar aplikacji na podstawie liczby przypadków testowych, które należy zautomatyzować.
- Złożoność rozmiaru według serii Fibonacciego.
- Zidentyfikuj punkt weryfikacji i punkt kontrolny każdego przypadku testowego.
Dostarczane: Rozmiar aplikacji - mały, średni lub duży.
Szereg przypadków testowych i odpowiadających im punktów kontrolnych i punktów weryfikacji.
Uwagi : Zalecane - przypadek testowy może mieć wiele punktów kontrolnych, ale tylko 1 punkt weryfikacji. Jeśli przypadek testowy ma więcej niż 1 punkt weryfikacji, powinien zostać podzielony na oddzielny przypadek testowy.
Czynnik 3: narzędzia wspierające
Znaczenie: Sam selen nie jest wystarczająco silny, aby zbudować złożony szkielet. Wymaga listy narzędzi ramowych do zbudowania frameworka.
Wymagane kroki:
- Sfinalizowane IDE
- Sfinalizowane narzędzie do testów jednostkowych
- Sfinalizowany rejestrator
- Gotowe narzędzie do raportowania
- Gotowe narzędzie do budowania
Dostarczane: Lista narzędzi potrzebnych do stworzenia frameworka.
Uwagi:
Przykłady:
- Eclipse / RAD - jako IDE
- Ant / Maven - jako narzędzie do budowania
- jUnit / TestNG - jako framework do testów jednostkowych
- Log4j - jako Logger
- ReportiNG - jako narzędzie raportowania
- Pliki tekstowe - do śledzenia środowisk / poświadczeń
- Pliki Excel - do śledzenia danych testowych
- Perl / Python - do konfigurowania środowiska i uruchamiania skryptów testowych.
Czynnik 4: ramy wdrażania
Znaczenie: Tworzenie struktury
Wymagane kroki:
- Zaprojektuj swoje pliki wejściowe.
- Zaprojektuj strukturę folderów
- Określ / zaimplementuj rejestrator w swojej strukturze
- Zaimplementuj narzędzie kompilacji w swojej strukturze
- Zaimplementuj strukturę testów jednostkowych
Dostarczane:
- Struktura i struktura folderów utworzona w IDE.
- Arkusze Excel zawierające dane wejściowe
- Pliki właściwości zawierające dane i referencje związane ze środowiskiem.
Uwagi: To najważniejszy krok. Zalecane jest uwzględnienie czasu buforowania podczas szacowania, ponieważ czasami rozwiązywanie problemów zajmuje więcej czasu niż oczekiwano.
Czynnik nr 5: Konfiguracja środowiska
jak uruchomić plik jnlp
Znaczenie: Zajmuje się konfiguracją kodu i pobieraniem / przygotowaniem do wdrożenia kodu
Wymagane kroki:
- Przygotuj plik wejściowy i raport
- Utwórz skrypt wyzwalający
Dostarczane: Środowisko gotowe
Uwagi: Powinniśmy spróbować zbudować nasz framework w taki sposób, aby przy jak najmniejszym wysiłku nasz kod był wdrażany w tym środowisku / pudełku.
Nie powinienem się mylić, jeśli powiem, że przy minimalnej liczbie wpisów w naszych plikach tekstowych (które mają adres URL i dane uwierzytelniające) nasz kod powinien być gotowy do uruchomienia i ROCK!
Czynnik # 6: Nauka i szkolenie
Znaczenie: Nauka języka programowania i innych technologii pomocniczych
Wymagane kroki: Przygotuj plan zgodnie ze swoimi potrzebami w zakresie automatyzacji i udostępnij go zespołowi oraz zachęć ich do nauki i postępowania zgodnie z sylabusem.
Dostarczane: Plan treningowy i jego tracker, który będzie śledził postępy zespołu.
Uwagi: Należy położyć nacisk na budowanie logiki, a nie na naukę składni.
Czynnik 7: Kodowanie / tworzenie skryptów i przegląd
Znaczenie: Pisanie rzeczywistych skryptów testowych i przeglądanie ich
Wymagane kroki:
- Przypadki testowe i framework są gotowe.
- Weź / podziel przypadki testowe i zamień je na automatyczne skrypty i śledź swoje postępy
Dostarczane: Zautomatyzowane skrypty testowe
Uwagi: Cały zespół powinien uczestniczyć w pisaniu skryptów testowych z wykorzystaniem wdrożonego frameworka. Dlatego przy szacowaniu należy wziąć pod uwagę wysiłek całego zespołu.
Wniosek :
Powiedziawszy o wszystkich tych kwestiach, nie zapomnij uwzględnić narzut zarządzania i trochę czasu buforowania w końcowej ocenie automatyzacji Selenium. Najlepszym i sprawdzonym sposobem dokonywania jakichkolwiek oszacowań jest stosowanie mechanizmu WBS (Work Breakdown Structure). Jest to proste i służy do realizacji potrzeb w zakresie szacowania automatyzacji.
Wymienione powyżej czynniki opierają się na moim doświadczeniu, ale mogą być też inne podmioty, które mogą mieć wpływ na strategię.
Oto zasada kciuka „Zidentyfikuj określone kryteria, podziel moduły lub przypadek testowy według tych kryteriów; i skaluj go ”. Na podstawie skalowanej liczby - możesz dokonać dokładnej oceny.
Następny samouczek # 33 : Kończymy nasze najbardziej wszechstronne serie bezpłatnych samouczków szkoleniowych dotyczących Selenium z ostatnim samouczkiem, tj. „ Testy selenu pytania do wywiadu wraz z odpowiedziami ”.
Daj nam znać, jeśli masz inne wskazówki dotyczące szacowania nakładu pracy w projektach Selenium.
rekomendowane lektury
- Wprowadzenie do Selenium WebDriver - samouczek Selenium # 8
- Efektywne skrypty Selenium i scenariusze rozwiązywania problemów - samouczek Selenium nr 27
- Debugowanie skryptów Selenium za pomocą dzienników (samouczek Log4j) - samouczek Selenium # 26
- 30+ najlepszych samouczków dotyczących selenu: naucz się selenu z prawdziwymi przykładami
- Cucumber Selenium Tutorial: Cucumber Java Selenium Integracja WebDriver
- Jak zlokalizować elementy w przeglądarkach Chrome i IE do tworzenia skryptów selenium - Samouczek Selenium nr 7
- Najpopularniejsze ramy automatyzacji testów z zaletami i wadami każdego z nich - samouczek Selenium nr 20
- Wdrożenie naszego pierwszego skryptu WebDriver - Selenium WebDriver Tutorial # 10