when opt automation testing
Czy powinniśmy rozważyć testy automatyzacji dla projektu? Kiedy powinniśmy przejść do testów automatycznych?
Testowanie ma na celu dostarczenie użytkownikowi końcowemu produktów dobrej jakości. Faza testowania jest jednym z głównych aspektów STLC .
Każda firma koncentruje się bardziej na testowaniu oprogramowania, ponieważ jego jakość zapewnia optymalną satysfakcję klienta, ale wiele z nich wciąż ma trudności z wyborem rodzaju testów do przeprowadzenia, czy to za pomocą testów automatycznych, czy testów ręcznych.
Ten artykuł pomaga czytelnikowi zrozumieć, czym są testy automatyzacji, kiedy się do tego zabrać, a co najważniejsze, kiedy nie. Naucz się również optymalnego wykorzystania Narzędzia automatyzacji do testowania .
Cokolwiek jest wykonywane, powinno być wykonywane efektywnie i opłacalnie. Ponadto powinno to mieć sens, aby klient był zadowolony z wyników.
Czego się nauczysz:
- Testowanie oprogramowania i korzyści finansowe
- Inteligencja stojąca za testowaniem oprogramowania
- Automatyzacja - czy to naprawdę istotne?
- Dlaczego automatyzacja?
- Czynnik ryzyka
- Kiedy automatyzacja nie powinna być PREFEROWANA?
- Koszt a zwrot z inwestycji w automatyzację
- Gdzie automatyzacja może zminimalizować BEZ REDUKCJI kosztów?
- Wniosek
- rekomendowane lektury
Testowanie oprogramowania i korzyści finansowe
Testowanie oprogramowania jest zwykle przeprowadzane przez Testera oprogramowania. Różnica między testerem a prawdziwym użytkownikiem polega na tym, że ten ostatni będzie znał tylko częściowe wykorzystanie oprogramowania używanego w ich firmie lub do wykonywania zadań i nie będzie znał oprogramowania w pełni. Z drugiej strony tester będzie świadomy wszystkich technicznych i funkcjonalnych wymagań oprogramowania. Na podstawie wymagań dostarczonych przez klienta trzeba będzie przygotować plany testów i przypadki testowe.
Plan testów to nic innego jak szczegółowy plan sposobu, w jaki ma zostać przeprowadzony proces testowania. Będzie to zawierało pełne szczegóły dotyczące liczby zasobów i źródeł zaangażowanych w testowanie, co należy zrobić i kiedy to zrobić, co nie zostanie zrobione, a także środowisko, w którym zostanie przeprowadzone itp.
Przypadki testowe należy przygotować po dokładnym zrozumieniu funkcjonalnego i technicznego aspektu oprogramowania. Tester musi posiadać zdolność obserwacji i pełną wiedzę na temat oprogramowania.
Ponadto koszt odgrywa tutaj efektywną rolę. Klienci wolą akceptować oprogramowanie o maksymalnej jakości przy minimalnych kosztach. Kiedy przechodzimy do testów ręcznych, proces jest bardziej żmudny i czasochłonny, ponieważ wszystko jest wykonywane ręcznie przez testera.
Na przykład , kiedy potrzebujemy „n” liczby testerów do wykonać testy regresji , wykonanie wszystkich przypadków testowych może zająć prawie 50 godzin. W oparciu o dostępność zasobów zostaną wykonane przypadki testowe. Ale mając mniej czasu na automatyczne testowanie, optymalne wykorzystanie zasobów jest przeprowadzane wraz z maksymalnym pokryciem przypadków testowych w porównaniu z testowaniem ręcznym.
Inteligencja stojąca za testowaniem oprogramowania
Każda organizacja musi wiedzieć, kiedy rozpocząć proces testowania, a kiedy go zakończyć. Powinniśmy wiedzieć, kiedy rozpocząć testowanie, ponieważ nie ma sensu rozpoczynać testów, gdy faza rozwoju jest zakończona i gdy nie są spełnione wymagane kryteria. Najlepszą praktyką jest zawsze rozpoczęcie fazy projektowania testów, podczas gdy ich tworzenie jest w toku.
Poniżej podano kryteria wejścia i wyjścia testowania oprogramowania:
Kryteria wejścia
Po podpisaniu dokumentu projektowego plany testów muszą zostać przygotowane w fazie planowania. Plan testów odgrywa istotną rolę. Wymagany sprzęt musi być poprawnie zainstalowany i skonfigurowany, a jego funkcjonalność musi zostać sprawdzona. Wymagania funkcjonalne muszą być jasne i zatwierdzone. Opracowany kod musi zostać przetestowany jednostkowo i podpisany przez programistów.
Przypadki testowe i dane testowe muszą zostać przygotowane i zatwierdzone. Powinny być dostępne dane testowe i aplikacja. Osoba testująca musi posiadać znaczną i wystarczającą wiedzę na temat aplikacji. Zasoby powinny być dobrze przeszkolone w zakresie narzędzi i muszą być wyjaśnione ze wszystkimi wymaganymi funkcjami.
Tester musi być dostępny. Jeśli którekolwiek z kryteriów nie zostanie osiągnięte, kryteria wejścia do testów są wstrzymane.
[Uwaga: Kliknij dowolny obraz, aby wyświetlić powiększenie]
Kryteria wyjścia
Dopiero gdy co najmniej 95% obowiązkowych przypadków testowych zostanie zablokowanych z wynikiem „pozytywnym”, możemy wyjść z fazy testowania produktu. Jednak nie jest łatwo określić, kiedy można zatrzymać testowanie oprogramowania lub czy nadal trzeba je wykonać. Taka sytuacja też się często zdarza.
Główne kryteria podano poniżej:
- Kiedy wszystkie błędy zostaną naprawione.
- Kiedy termin zostanie osiągnięty.
- Kiedy budżet jest wyczerpany lub wyczerpany.
- Kiedy wszystkie przypadki testowe zostaną zaliczone.
- Kiedy umowa zostanie podpisana.
- Kiedy wykonywany jest określony procent testów.
- Kiedy Alfa a testy beta kończą się.
Kryteria wyjścia można wyprowadzić wyłącznie na podstawie czynników, takich jak ryzyko, koszt itp. Po osiągnięciu testowania głównego wymagania funkcjonalnego testowanie zostanie zazwyczaj zatrzymane i nigdy nie będą szukać drobnych błędów, które spowodują problemy w późniejsze okresy.
Przykład: Software ABC jest w fazie projektowania. Rozwój i testowanie konstrukcji na ogół następują w tym samym czasie. Po zamrożeniu projektu rozpoczyna się tworzenie oprogramowania. Zakończenie rozwoju oprogramowania, zgodnie z ustaleniami, wskazuje kryteria wejścia. Materiały dostarczane tutaj pochodzą od zespołu programistów. Zawiera informacje o wersji i znane problemy.
Po kilku iteracjach testów, gdy żadne główne / blokujące / blokujące programy nie czekają na rozwiązanie, a 95% testów zakończyło się wynikiem pozytywnym, określa się to jako kryterium wyjścia.
Automatyzacja - czy to naprawdę istotne?
Kiedy musimy zdecydować, czy wymagamy Zautomatyzowana technika testowania czy nie, pojawia się tutaj kwestia dostępnych zasobów. Powody, dla których musimy automatyzować, to sprawdzenie, czy przepływ danych i opracowana funkcjonalność działają zgodnie z oczekiwaniami bez ręcznej interwencji, czy nie. Jest używany głównie w miejscach, w których oprogramowanie będzie miało zmiany w postaci wielu wydań / cykli itp.
bezpłatna alternatywa dla małych firm
Pod koniec rozwoju każdego cyklu zostanie przeprowadzone testowanie aktualnie dodanej funkcjonalności. Dodatkowo zostanie przeprowadzone testowanie starej funkcjonalności, aby upewnić się, że stare funkcje nie są uszkodzone. To jest główna część, która ma zakres automatyzacji.
Weryfikując logikę sterowaną kodem i wymagania dotyczące graficznego interfejsu użytkownika, można wybrać testowanie automatyczne, pod warunkiem, że czynnik ryzyka jest wysoki.
Przykład: W przypadku oprogramowania ABC są częste aktualizacje, aktualizacje poszukiwane przez klienta i dostarczane przez programistów. Dlatego w ramach testowania regresja jest wykonywana dla oprogramowania, które już działa i działa w środowisku produkcyjnym. Niezależnie od liczby wydań, uaktualnień i aktualizacji aktualna wersja będzie ważna.
Załóżmy, że do pokrycia testów regresyjnych potrzeba 10 dni ręcznego wysiłku, a następnie należy dołożyć wszelkich starań, aby je zautomatyzować. Pozwala zaoszczędzić co najmniej 60% wysiłku i 10 * 8 = 80 godzin pracy ręcznej.
Automatyzacja może trwać tylko 80/24 = 3,33 dnia. Oszczędza to około 6,67.
Dlaczego automatyzacja?
Automatyzację można wybrać tylko wtedy, gdy:
- Aplikacja ma bardzo rozległy obszar z dużym stopniem inwestowania w regresję.
- Optymalizacja kosztów nastąpiła z powodu błędów ręcznych.
- Oprogramowanie ma wiele wersji i wydań.
- Jest to opłacalne w dłuższej perspektywie.
- Czynnik ryzyka jest wyższy dla szerszego zakresu wykonywania testów.
- Dane liczbowe dotyczące kosztów i obliczenia matematyczne są zawarte w funkcjonalności oprogramowania.
- Zwiększa się tempo wykonywania, wydajność oraz jakość oprogramowania.
- Czas jest krótszy, nawet w przypadku testowania oprogramowania wysokiego ryzyka.
Czynnik ryzyka
Czynnik ryzyka staje się dominującym zjawiskiem w biznesie, w którym istnieje wiele zależności od czynnika czasu. Oprogramowanie, które działa w oparciu o systemy transakcyjne i które działa w wielu aplikacjach, będzie wymagało, aby oprogramowanie działało idealnie zgodnie z projektem oprogramowania. W takim przypadku istnieje wiele zagrożeń związanych z zarejestrowaniem prawidłowego zachowania funkcjonalnego.
W tym przypadku Automatyzacja będzie bardzo pomocna w wykonywaniu transakcji funkcjonalnych w lepszym tempie, zgodnie z mechanizmem oprogramowania.
Na przykład , w przypadku wskaźnika rynku Forex, czynnik czasu jest bardzo ważny i krytyczny. Zmiany w zapasach i towarach zachodzą w czasie, czasem krótszym niż sekundy. Tutaj Automation może pomóc w testowaniu takiego oprogramowania z wysokim ryzykiem.
Przykład: Oprogramowanie ABC ma wiele aktualizacji i ulepszeń. Aby zaoszczędzić ręcznych wysiłków i skrócić czas potrzebny na fazę testowania, można zautomatyzować wersję podstawową lub stare funkcje. Może to obowiązywać tylko wtedy, gdy podstawowe funkcjonalności pozostaną niezmienione.
Zaletą automatyzacji jest to, że można je uruchomić bez ręcznej interwencji. Nawet to można wykonać równolegle z testowaniem nowszych funkcji. Dlatego automatyzacja oszczędza wiele wysiłku i czasu.
Kiedy automatyzacja nie powinna być PREFEROWANA?
Wśród kilku organizacji pojawia się pytanie - Dlaczego 100% automatyzacja nie jest możliwa?
Odpowiedź ekspertów brzmi NIE RÓB ponieważ wykwalifikowani użytkownicy są zobowiązani do przeprowadzania testów automatycznych, a także muszą być dobrze przeszkoleni. Automatyzacji nie można przeprowadzić na początkowym etapie kryteriów, a wymagania aplikacji nie będą jasne.
Zwykle automatyzacja jest preferowana od drugiej iteracji dowolnej wersji oprogramowania. Interfejs użytkownika może ulec zmianie, co jest bardziej kosztowne, a utrzymanie skryptu jest również droższe, a gdy koszt narzędzia do automatyzacji przekracza budżet projektu, możemy powiedzieć nie.
Przykład: Oprogramowanie XYZ to rodzaj witryny e-commerce, w której wymagania klienta nie są zamrażane i zmieniają się, gdy wymagają tego klienci.
Tutaj, w tym przypadku, automatyzacja nie może pomóc w regresji. Dzieje się tak, ponieważ starych funkcji, które nie są prawidłowe, nie należy testować, a zatem trzeba je wykonać ręcznie. Na przykład klient musi mieć wszystkie pola listy w oprogramowaniu podstawowym, które mają zostać zmienione na pola rozwijane.
Koszt a zwrot z inwestycji w automatyzację
Zwrot z inwestycji jest bardzo niski, gdy początkowo wybieramy automatyzację, ponieważ automatyzacja jest droga po raz pierwszy. Zwrot z inwestycji rośnie, ponieważ ręczny wysiłek związany z testowaniem oprogramowania zmniejsza się w porównaniu z iteracjami drugiej wersji. Musimy być świadomi spodziewanego wyniku każdego przypadku testowego przed automatyzacją.
Rozważ projekt przypadków testowych jako ważniejszy przy wyborze automatyzacji i dowolnego narzędzia, aby upewnić się, że nie zwiększy to kosztów.
Gdzie automatyzacja może zminimalizować BEZ REDUKCJI kosztów?
Nawet automatyzacja kosztuje, ponieważ konieczne jest zakupienie narzędzia do testowania. Zasoby muszą zostać przeszkolone za pomocą konkretnego narzędzia. Wybrane narzędzie musi być możliwe do przetestowania wszystkich obszarów oprogramowania.
Dlatego też dobór narzędzi powinien być wykonany starannie przez ekspertów z zakresu testów automatyzacji.
Przykład: Rozważ produkt XYZ, który dotyczy ubezpieczenia. Aby zmniejszyć współczynnik kosztów, firma zastosowała tylko testy ręczne, ale jeśli chodzi o ubezpieczenie, czynnik ryzyka jest wysoki i może kosztować firmę, gdy którykolwiek z obliczeń składki się nie powiedzie. Cała strata zostanie poniesiona przez kierownictwo. lub do użytkownika końcowego. Użytkownik końcowy nie poniesie straty, podczas gdy firma musi.
Kiedy obliczona kwota składki jest niezgodna z pierwotną składką (tj. Gdy występuje różnica w obliczaniu składki na początku i na końcu), pojawia się wielki problem między klientem a sprzedawcą produktu. Może zawierać wiele modułów, takich jak samochody, dom i inne.
Gdy coś pójdzie nie tak, oznacza to całkowitą stratę. Różnica w obliczeniach może mieć sens dla testera i może powodować błędy. W tym projekcie testowanie ręczne można zrobić dla podstawowego interfejsu użytkownika, takiego jak weryfikacja numeru NIP, identyfikatora społecznościowego i innych informacji związanych z portfelem użytkowników, a zatem można je przetestować ręcznie, gdy współczynnik ryzyka jest niski. Im Im bardziej firma by zyskała, tym bardziej preferuje automatyzację testowania swojego oprogramowania.
Wniosek
Zarówno testy automatyczne, jak i ręczne mają również zalety i wady. Dopiero gdy będziemy mieć jasność co do koncepcji i wymagań, będziemy mogli wybrać, jaki rodzaj testów przeprowadzić.
Żaden projekt nie może być przetestowany za pomocą samych testów ręcznych lub testów automatycznych. Zależy to od projektu, platformy i technologii, za pomocą której oprogramowanie zostało opracowane. Dlatego przy podejmowaniu decyzji należy uważnie dobrać metodę badania i skorzystać z porad ekspertów.
W powyższym artykule mogliśmy przeoczyć kilka czynników, uprzejmie podziel się tymi, które Twoim zdaniem są istotne przy wyborze automatyzacji lub nawet narzędzi do automatyzacji.
W międzyczasie możesz podzielić się swoimi komentarzami / sugestiami na temat tego artykułu.
rekomendowane lektury
- Najlepsze narzędzia do testowania oprogramowania 2021 [Narzędzia do automatyzacji testów QA]
- Wyzwania związane z testowaniem ręcznym i automatycznym
- Top 10+ najlepszych książek o testowaniu oprogramowania (książki o testowaniu ręcznym i automatyzacji)
- Asystent testowania oprogramowania
- 11 najlepszych narzędzi automatyzacji do testowania aplikacji na Androida (narzędzia do testowania aplikacji na Androida)
- Czy jesteś ekspertem w testowaniu ręcznym lub automatycznym? Pracuj dla nas na pół etatu!
- Kurs testowania oprogramowania: Do którego Instytutu Testowania Oprogramowania mam dołączyć?
- Wybór testowania oprogramowania jako swojej kariery