test coverage software testing
Testowanie oprogramowania Kompletny przewodnik po testach: Jak testować więcej, oszczędzać czas i osiągać lepsze wyniki testów:
Testowanie oprogramowania jest podstawową czynnością w cyklach rozwoju i konserwacji oprogramowania. Jest to praktyka często używana do decydowania i ulepszania jakości oprogramowania.
Rozwój jest obecnie bardziej systematyczny i organizacje szukają miar kompletności i skuteczności testów, aby pokazać kryteria ukończenia testów. Spośród nich wszystkich za szczególnie cenne uważa się pokrycie.
Czego się nauczysz:
- Co to jest pokrycie testowe?
- Pokrycie testowe i pokrycie kodu
- Moje doświadczenie
- Znaczenie pokrycia testowego
- Jak przyjąć właściwą metodę pokrycia testów?
- Jak się upewnić, że wszystko zostało przetestowane?
- Krytyczne obszary i metody skutecznego testowania
- Zalety świadomości pokrycia testowego dla testera:
- Wniosek
- rekomendowane lektury
Co to jest pokrycie testowe?
Mówiąc najprościej, zasięg to „Co testujemy i ile to testujemy?”
Pokrycie testów pomaga monitorować jakość testów i pomaga testerom w tworzeniu testów obejmujących obszary, których brakuje lub które nie zostały sprawdzone.
Większość zespołów opiera obliczenia pokrycia wyłącznie na wymaganiach funkcjonalnych. Jest to również uczciwe, ponieważ aplikacja powinna przede wszystkim robić to, co do niej należy. Jeśli nie, jego szybkość, bezpieczeństwo lub łatwość użycia - nie ma to znaczenia.
Jednak jeśli jest oddany i niezależny testy niefunkcjonalne zespoły pracują nad wydajnością, bezpieczeństwem, testami użyteczności itp., a następnie będą musiały śledzić swoje wymagania aż do wykonania za pomocą analizy pokrycia testów.
Pokrycie testowe i pokrycie kodu
Pokrycie testów jest często mylone z pokryciem kodu. Chociaż podstawowe zasady są takie same, to dwie różne rzeczy.
Pokrycie kodu tak naprawdę mówi o praktykach testowania jednostkowego, które muszą być ukierunkowane na wszystkie obszary kodu przynajmniej raz i jest wykonywane przez programistów.
Z drugiej strony Pokrycie testowe to testowanie każdego wymagania przynajmniej raz i jest to oczywiście działanie zespołu QA.
To, co naprawdę kwalifikuje się jako wymóg objęty ochroną, zależy od interpretacji każdego zespołu.
Na przykład , Niektóre zespoły nazywają wymaganie objęte, jeśli istnieje co najmniej jeden przypadek testowy przeciwko niemu. Czasami jest on objęty ubezpieczeniem, jeśli jest do niego przypisany przynajmniej jeden członek zespołu. Lub, jeśli zostaną wykonane wszystkie powiązane z nim przypadki testowe.
- Jeśli istnieje 10 wymagań i 100 testów - gdy te 100 testów dotyczy wszystkich 10 wymagań i nie pomija żadnego - nazywamy to odpowiednim pokryciem testowym na poziomie projektu.
- Gdy tylko 80 utworzonych testów jest wykonywanych i dotyczy tylko 6 wymagań. Mówimy, że nie uwzględniono 4 wymagań, mimo że 80% testów zostało wykonanych. To są statystyki pokrycia na poziomie wykonania.
- Gdy tylko 90 testów odnoszących się do 8 wymagań ma przypisanych testerów, a reszta nie, mówimy, że pokrycie przydziału testów wynosi 80% (8 z 10 wymagań).
Ważne jest również, kiedy obliczyć pokrycie.
Jeśli zrobisz to zbyt wcześnie, zobaczysz wiele luk, ponieważ rzeczy są nadal niekompletne. Dlatego jest to ogólnie zalecane poczekaj do ostatniej kompilacji czyli Ostateczna kompilacja regresji. Zapewni to prawidłowe pokrycie Testów przeprowadzonych dla danych wymagań.
Przeczytaj także => Proces zarządzania wersjami i wdrożeniami
Moje doświadczenie
Scena 8 lat temu: Kiedy miałem 2 lata doświadczenia w branży testowania oprogramowania, pomyślałem, że będzie dobrze, jeśli nie znam pewnych podstaw testowania oprogramowania, jako czegoś, czego można się nauczyć z doświadczeniem, a ja też to zrobię.
Miałem rację - ale też się myliłem.
Właśnie dlatego, że wraz z doświadczeniem uczysz się widzieć szerszy obraz, rozumiesz prawdziwe znaczenie „sytuacji krytycznej” i lepiej rozumiesz użytkownika końcowego.
Źle, ponieważ żadna z wymienionych rzeczy nie wymaga doświadczenia, ale wczesnej nauki, którą zrozumiałem bardzo późno. To zachęca do napisania tego posta.
Oto moje doświadczenie z jednego z wywiadów w tamtym czasie:
Jak upewnić się, że pokrycie testu jest pełne lub maksymalne? Zapytano mnie.
Ummmm …… Upewniłem się, że przetestuję każdą funkcjonalność , Powiedziałem.
S o mówisz, że po przetestowaniu wszystkich funkcjonalności czujesz, że pod względem testowania objęłeś maksymalnie aplikację / produkt , ankieter odpalił.
Ummm… cóż… .ummm…. Tak, ponieważ testując wszystkie funkcje, masz pewność co do zachowania aplikacji / produktu, Poparłem moją odpowiedź .
Zgadzam się, ale moje pytanie brzmi - czy to da Ci pewność, że pokrycie Twoich testów jest maksymalne czy pełne? Prowadzący wywiad nie był w nastroju, by mnie wypuścić.
Teraz byłem coraz bardziej niecierpliwy, nie wiedząc, że mam zamiar poznać jeden z najważniejszych tematów dotyczących testowania oprogramowania - ' Pokrycie testu ” .
Zamiast odtwarzać fragmenty wywiadu, podsumowuję tutaj, czego dowiedziałem się o Testing Coverage tego dnia. Ale zanim to nastąpi, wyjaśnijmy jeden punkt - pokrycie testami nigdy nie oznacza, że wiesz, czy testujesz wystarczająco dużo, czy nie, ani też nie oznacza, że testujesz doskonale, czy nie.
Znaczenie pokrycia testowego
Pokrycie testowe może mieć różne znaczenie w innym kontekście. Odkryjmy te konteksty jeden po drugim:
Zasięg produktu - jakim aspektom produktu przyjrzałeś się?
Tak, kiedy mierzy się zasięg testów pod kątem produktu, głównym obszarem, na którym należy się skupić, jest - które obszary produktu przetestowałeś, a które pozostają nieprzetestowane?
Przykład 1:
Jeśli „nóż” jest produktem, to testujesz; po prostu nie koncentruj się na sprawdzaniu, czy odpowiednio kroi warzywa / owoce. Są inne aspekty, na które należy zwrócić uwagę, np. - użytkownik powinien być w stanie wygodnie sobie z tym poradzić.
Przykład 2:
Jeśli „notatnik” to aplikacja, testujesz, sprawdzanie odpowiednich funkcji jest koniecznością.
Ale inne aspekty, na które należy zwrócić uwagę, to - aplikacja działa poprawnie podczas korzystania z innych aplikacji jednocześnie, aplikacja nie ulega awarii gdy użytkownik próbuje zrobić coś niezwykłego , użytkownik otrzymuje odpowiednie ostrzeżenia / komunikaty o błędach, jest w stanie zrozumieć i łatwo korzystać z aplikacji, pomoc jest dostępna w razie potrzeby.
Jeśli nie przyjrzysz się wspomnianym scenariuszom, nie możesz twierdzić, że zakres testów aplikacji został zakończony.
Pokrycie ryzyka - jakie rodzaje ryzyka zostały przetestowane?
Pokrycie ryzyka to kolejny aspekt pełnego pokrycia testów. Nie możesz oznaczyć produktu lub aplikacji jako „przetestowane”, dopóki nie przetestujesz również powiązanych zagrożeń. Pokrycie powiązanych ryzyk jest ważnym czynnikiem w ogólnym pokryciu testowaniem.
Przykład 1:
Jeśli podczas testowania samolotu tester powie Ci, że w pełni przetestował system wewnętrzny samolotu i działa prawidłowo, ale podczas testów nie uwzględniono tylko możliwości samolotu w locie - jaka byłaby Twoja reakcja?
Cóż, to właśnie oznacza pokrycie ryzyka. Identyfikacja ryzyka zgodnie z aplikacją / produktem i dokładne przetestowanie go jest zawsze dobrą praktyką.
Przykład 2:
Testując witrynę e-commerce, tester wziął pod uwagę każdy skuteczny czynnik, ale nie wziął pod uwagę ryzyka związanego z jednoczesnym dostępem dużej liczby użytkowników do serwisu w dniu Super OFERTY, nieuwzględnione ryzyko okazało się dużym błędem.
Rekomendowane lektury =>
Pokrycie wymagań - jakie wymagania przetestowałeś?
Jeśli produkt lub aplikacja jest bardzo dobrze opracowana, ale nie odpowiada wymaganiom klienta, jest bezużyteczna. Pokrycie wymagań podczas testowania jest tak samo ważne jak pokrycie produktu.
Przykład 1:
Podekscytowana rodzinną funkcją, poprosiłaś krawca, aby zszył twoją sukienkę i założył te pawie niebieskie guziki na dekolcie.
Zszywając sukienkę, krawiec pomyślał, że zapinanie tych guzików na dekolcie nie będzie dobrze wyglądać, więc zamiast tego wyszył złotą lamówkę. Zdecydowanie w dniu próbnym niezadowolony klient krzyczał na krawca, że nie przestrzega wymagań.
Przykład 2:
Testując aplikację do czatu, tester zadbał o wszystkie ważne punkty, takie jak czatowanie wielu użytkowników w grupie, dwóch użytkowników rozmawiających niezależnie, wszystkie rodzaje dostępnych emotikonów, aktualizacje wysyłane natychmiast do użytkownika itp., Ale zapomniał zajrzeć do dokumentu wymagań, który wyraźnie wspomniał, że gdy dwóch użytkowników czatuje niezależnie, należy włączyć opcję rozmowy wideo.
Klient wprowadził na rynek aplikację do czatu, twierdząc, że pozwala ona dzwonić, podczas gdy dwóch użytkowników rozmawia niezależnie. Możesz sobie wyobrazić, co by się stało z aplikacją do czatu.
Również czytać => Jak stworzyć macierz śledzenia wymagań
Jak przyjąć właściwą metodę pokrycia testów?
Świadomość jest wszystkim:
Po pierwsze, zespół ds. Zapewnienia jakości musi wiedzieć, ile pracy wymaga i gdzie są zadania projektowe. W ten sposób będą świadomi, czy należy dodać więcej testów. Aby to zrobić, możesz użyć RTM, co jest typową praktyką.
=> Przeczytaj ten artykuł, aby dowiedzieć się więcej na jego temat i jak go używać: Jak stworzyć macierz śledzenia wymagań - dokładny proces z przykładowym szablonem
Po drugie, sprawdź przydział zasobów i proces wykonywania testów aby sprawdzić, czy wszystko jest przetestowane w bardziej efektywny sposób.
Pomocna może być poniższa tabela:
Typ testu | Całkowita liczba przypadków | Sprawy wykonane | Status | Komentarze |
---|---|---|---|---|
Funkcjonalny | 100 | 80 | 50 przejść, 30 nie przejść | |
Zgodność | 100 | pięćdziesiąt | 45 przejść, 5 przejść | |
Użyteczność | 100 | 100 | 98 przechodzi, 2 nie | |
Ostateczna regresja | 100 | 100 | 99 przechodzi, 1 kończy się niepowodzeniem |
Jak się upewnić, że wszystko zostało przetestowane?
- Każdy tester powinien być świadomy wymagań i metod testowania
- Ustal priorytety swoich wymagań i skup swoją energię tam, gdzie jest najbardziej potrzebna
- Otrzymuj informacje o tym, czym różni się dana wersja od poprzedniej, aby dokładniej zidentyfikować krytyczne wymagania i skupić się na maksymalnym pozytywnym pokryciu
- Dostosuj automatyzację testów
- Użyj narzędzi do zarządzania testami zawsze wiedzieć
- Inteligentne przydzielanie zadań - Skieruj swoje najlepsze zasoby na krytyczne zadania i pozwól nowym testerom zbadać więcej, aby uzyskać świeże spojrzenie
- Utrzymanie lista kontrolna dla wszystkich zadań i różne działania
- Więcej interakcji z zespołami Dev / Scrum / BA, aby uzyskać wgląd w zachowanie aplikacji
- Śledź wszystkie cykle kompilacji i poprawki
- Zidentyfikuj najbardziej wpływające problemy w początkowych kompilacjach (jeśli to możliwe), aby późniejsze mogły działać dla lepszej stabilności i dotrzeć do obszarów zablokowanych przez wcześniejsze problemy
Krytyczne obszary i metody skutecznego testowania
# 1)Mieszanie zasobów: Wymieniaj zadania między członkami zespołu. Pomaga to zwiększyć zaangażowanie i zapobiega koncentracji wiedzy.
#dwa)Zakres kompatybilności: Upewnij się, że znasz i uwzględniasz rozszerzenie różne przeglądarki i platformy aby przetestować Twoją aplikację.
# 3)Własność: Spraw, aby testerzy byli odpowiedzialni i daj im swobodę (oczywiście z monitorowaniem i wsparciem) w zakresie modułu / zadania, nad którym pracują. Pomaga to w budowaniu odpowiedzialności i pozwala im próbować kreatywnych sposobów zamiast podążać utartymi drogami.
# 4)Terminy: Znajomość terminów wydania przed rozpoczęciem fazy testowej pomaga w efektywnym planowaniu
# 5)Komunikacja : Pozostań w kontakcie z deweloperami i innymi zespołami między cyklami wydawniczymi, aby wiedzieć, co się dzieje.
# 6)Utrzymaj RTM: Działa jako dobra pochodna dla Interesariusze lub klienci , na podstawie którego można potwierdzić harmonogram wydań
Zalety świadomości pokrycia testowego dla testera:
- Pomaga przede wszystkim w ustalaniu priorytetów zadań testowych
- Pomaga osiągnąć 100% pokrycie wymagań lub innymi słowy, zapobiega wyciekowi wymagań
- Analiza wpływu staje się łatwiejsze
- Przydatne w określaniu Kryteria EXIT
- Umożliwia testowi przygotowanie klarownego raport z zakończenia testu
Wniosek
Pokrycie testowe nie kończy się na wymienionych kontekstach. Istnieje wiele innych punktów, które należy wziąć pod uwagę, jeśli chodzi o pokrycie testowania.
Nie zawsze jest prawdą, że kiedy testujesz więcej, wyniki są lepsze. W rzeczywistości, gdy będziesz testować więcej bez widocznej strategii, prawdopodobnie w końcu zainwestujesz dużo czasu.
Dzięki bardziej ustrukturyzowanemu podejściu, dążeniu do 100% pokrycia wymagań i skutecznym metodom testowania, nie pójdziesz na kompromis w kwestii jakości.
pytania na rozmowę kwalifikacyjną na poziomie podstawowym
Mamy nadzieję, że techniki opisane w tym artykule dadzą Ci kilka wskazówek.
Dodaj swoje komentarze i opinie na temat postu. Jak zwykle bardzo nam się podoba.
rekomendowane lektury
- Najlepsze narzędzia do testowania oprogramowania 2021 (Narzędzia do automatyzacji testów QA)
- Asystent testowania oprogramowania
- Kurs testowania oprogramowania: Do którego Instytutu Testowania Oprogramowania mam dołączyć?
- Wybór testowania oprogramowania jako swojej kariery
- Testowanie oprogramowania Praca pisarz treści technicznych Freelancer
- Czy testowanie oprogramowania to zadanie emocjonalne?
- Kilka interesujących pytań do rozmowy kwalifikacyjnej dotyczącej testowania oprogramowania
- Opinie i recenzje dotyczące kursu testowania oprogramowania