fbpx

Testowanie niefunkcjonalne odnosi się do testowania oprogramowania, które jest przeprowadzane w celu przetestowania niefunkcjonalnych aspektów aplikacji.

Istnieje wiele różnych rodzajów testów niefunkcjonalnych, a niektóre rodzaje testów oprogramowania mogą być uważane zarówno za testy funkcjonalne, jak i niefunkcjonalne w tym samym czasie.

Testy niefunkcjonalne są konieczne, ponieważ oceniają istotne kryteria użytkownika, takie jak wydajność i użyteczność oraz sprawdzają, czy oprogramowanie działa zgodnie z oczekiwaniami poza jego podstawową funkcjonalnością.

W tym artykule, badamy definicję i charakterystykę testowania niefunkcjonalnego obok rodzajów testowania niefunkcjonalnego, podejść do testowania niefunkcjonalnego i narzędzi testowych, które mogą pomóc w optymalizacji i poprawie własnych procesów testowania niefunkcjonalnego.

 

Czym jest testowanie niefunkcjonalne?

checklist uat, narzędzia do testowania aplikacji internetowych, automatyzacja i inne

Testowanie niefunkcjonalne to każdy rodzaj testowania oprogramowania, w którym testowane są niefunkcjonalne aspekty budowy oprogramowania.

Przykłady testów niefunkcjonalnych obejmują testy mające na celu ocenę pojemności, wydajności, użyteczności, odzyskiwania i przenośności.

Weryfikacja jakości i stanu każdego z tych niefunkcjonalnych kryteriów jest tak samo ważna jak weryfikacja funkcji kawałka oprogramowania, ale te parametry nie są testowane w standardowych testach funkcjonalnych.

Zasadniczo, testowanie niefunkcjonalne oznacza testowanie „jak” działają funkcje oprogramowania, a nie testowanie „czy” działają.

 

1. Kiedy potrzebne są testy niefunkcjonalne?

 

Testowanie niefunkcjonalne przeprowadzane jest w fazie testowania systemu w testowaniu oprogramowania po przeprowadzeniu testów jednostkowych i testów integracyjnych.

Podczas testowania systemu testerzy przeprowadzą zarówno testy funkcjonalne, jak i niefunkcjonalne, zaczynając od testów funkcjonalnych.

Gdy testerzy ustalą, że oprogramowanie działa zgodnie z oczekiwaniami, przeprowadzają testy niefunkcjonalne, aby ocenić, czy spełnia ono również parametry niefunkcjonalne.

Zazwyczaj konieczne jest przeprowadzenie testów funkcjonalnych przed testami niefunkcjonalnymi, ponieważ niemożliwe jest przetestowanie niezawodności lub wydajności funkcji, które w ogóle nie działają. Testowanie niefunkcjonalne jest jednym z ostatnich etapów testowania oprogramowania przed testami akceptacji przez użytkownika i wydaniem finalnego produktu.

 

2. Kiedy nie potrzebujesz testów niefunkcjonalnych

 

Zawsze ważne jest testowanie niefunkcjonalnych aspektów oprogramowania, chyba że zostały one już przetestowane i uznane za odpowiednie.

Nawet jeśli przeprowadziłeś wcześniej testy niefunkcjonalne oprogramowania, może być konieczne ponowne przetestowanie parametrów niefunkcjonalnych, na przykład, jeśli do oprogramowania zostały dodane nowe funkcje lub jeśli w kodzie zostały wprowadzone zmiany, które mogą mieć wpływ na wydajność i niezawodność.

 

Cele testowania niefunkcjonalnego

wyjaśnienie pewnych nieporozumień w automatyzacji testowania oprogramowania

Cele testów niefunkcjonalnych to sprawdzenie, czy produkt spełnia oczekiwania użytkownika oraz optymalizacja produktu przed wydaniem.

Może również pomóc programistom i testerom lepiej zrozumieć oprogramowanie i wykorzystać tę wiedzę w przyszłych optymalizacjach.

 

1. Kontrola jakości

 

Testowanie niefunkcjonalne ma na celu przetestowanie czynników, które wpływają na użyteczność, niezawodność, utrzymanie, przenośność i wydajność produktu.

Testowanie tych elementów zapewnia, że produkt, który trafia na rynek jest odpowiednio wysokiej jakości i spełnia oczekiwania użytkowników w zakresie wydajności, czasu ładowania i pojemności użytkowej.

 

2. Zarządzanie ryzykiem

 

Testy niefunkcjonalne zmniejszają również ryzyko i koszty związane z wypuszczeniem produktu na rynek poprzez maksymalizację szans zespołu na wypuszczenie satysfakcjonującego produktu.

Sprawdzając parametry niefunkcjonalne budowanego oprogramowania, można zmniejszyć koszty wydania produktu, ponieważ zmniejsza się potrzeba dalszego rozwoju i zmian oprogramowania w późniejszym czasie.

 

3. Optymalizacja

 

Testowanie niefunkcjonalne pomaga testerom i deweloperom w optymalizacji budowy oprogramowania i optymalizacji wydajności podczas instalacji, konfiguracji, wykonania i użytkowania.

Możesz również użyć testów niefunkcjonalnych do optymalizacji sposobu, w jaki zarządzasz i monitorujesz budowę oprogramowania.

 

4. Zbieranie danych

 

Testowanie niefunkcjonalne pozwala testerom na zbieranie i tworzenie pomiarów i metryk, które mogą być wykorzystane przez zespoły testujące do wewnętrznych badań i rozwoju.

Możesz wykorzystać dane, które zbierasz z testów niefunkcjonalnych, aby zrozumieć, jak działa Twój produkt i jak możesz go bardziej efektywnie zoptymalizować dla użytkowników.

 

5. Poszerzenie wiedzy

 

Testowanie niefunkcjonalne poprawia i zwiększa wiedzę zespołu testującego na temat zachowania produktu i technologii, które wykorzystuje.

Nie tylko pomaga to zespołom testującym lepiej zrozumieć oprogramowanie, nad którym pracują, ale może również dostarczyć użytecznej wiedzy, która pomoże testerom lepiej zrozumieć przyszłe kompilacje.

 

Kto bierze udział w testowaniu niefunkcjonalnym?

kto jest zaangażowany w testowanie oprogramowania

Testy niefunkcjonalne są zwykle przeprowadzane przez testerów w środowisku QA, ale czasami deweloperzy mogą przeprowadzać testy niefunkcjonalne podczas rozwoju.

Testowanie systemu jest prawie zawsze przeprowadzane przez testerów i jest to faza testowania, w której odbywa się większość testów niefunkcjonalnych.

Jeśli testy niefunkcjonalne zakończą się niepowodzeniem, testerzy odeślą oprogramowanie do deweloperów, aby poprawili błędy w działaniu przed ponownym testowaniem.

 

Korzyści wynikające z testowania niefunkcjonalnego

testy akceptacyjne użytkownika (UAT)

Istnieje wiele korzyści z przeprowadzania testów niefunkcjonalnych, a testowanie niefunkcjonalne jest niezbędnym krokiem w testowaniu systemu.

Bez testów niefunkcjonalnych zespoły testujące nie byłyby w stanie zweryfikować, czy oprogramowanie rzeczywiście spełnia wymagania klienta lub czy spełnia wymagania określone w planie rozwoju oprogramowania.

 

1. Zwiększenie wydajności oprogramowania

 

Testowanie niefunkcjonalne może pomóc testerom i deweloperom w poprawieniu ogólnej wydajności aplikacji programowych. Testy niefunkcjonalne identyfikują obszary, w których brakuje wydajności oprogramowania, na przykład pod względem szybkości ładowania lub wydajności przetwarzania, i skłaniają zespoły programistów do wprowadzenia zmian w celu usunięcia tych wad.

Dzięki temu zespoły programistów wydają oprogramowanie tylko wtedy, gdy jest ono gotowe i gdy jego wydajność jest wystarczająco dobra.

 

2. Utrzymanie bezpieczeństwa oprogramowania

 

Testy niefunkcjonalne obejmują testy bezpieczeństwa, które są krytyczne w zapewnieniu, że budowane oprogramowanie jest bezpieczne i chronione przed zewnętrznymi zagrożeniami i atakami.

Testy bezpieczeństwa umożliwiają testerom i programistom sprawdzenie, czy oprogramowanie odpowiednio chroni poufne dane i czy posiada wystarczające zabezpieczenia przed współczesnymi cyberatakami.

 

3. Zwiększenie przyjazności oprogramowania dla użytkownika

 

Testy niefunkcjonalne są najlepszym sposobem na uczynienie oprogramowania bardziej przyjaznym dla użytkownika, zwłaszcza poprzez przeprowadzenie testów użyteczności, które oceniają, jak łatwo jest użytkownikom nauczyć się, jak używać i obsługiwać oprogramowanie.

Przyjazność dla użytkownika jest bardzo ważna, ponieważ określa, jak bardzo użytkownicy są zadowoleni z Twojego oprogramowania i zapewnia, że użytkownicy są w stanie w pełni wykorzystać wszystko, co oferuje Twoje oprogramowanie.

 

4. Zapewnienie, że oprogramowanie spełnia potrzeby użytkownika

 

Zapewnienie, że oprogramowanie spełnia potrzeby użytkowników powinno być jednym z głównych priorytetów wszystkich zespołów zajmujących się tworzeniem i testowaniem oprogramowania. Oprócz tego, że użytkownicy oczekują, że oprogramowanie będzie funkcjonalne, oczekują również, że będzie ono dobrze działać, płynnie się uruchamiać i chronić poufne dane.

Testowanie niefunkcjonalne jest jednym z jedynych sposobów na zapewnienie, że Twoje oprogramowanie spełnia te wymagania.

 

Wyzwania związane z testowaniem niefunkcjonalnym

Przeprowadzanie testów niefunkcjonalnych ma pewne wady. Podczas gdy testowanie niefunkcjonalne jest niezbędne w fazie testowania systemowego oprogramowania, proces testowania niefunkcjonalnego może stanowić wyzwanie dla zespołów programistycznych, które nie mają wystarczających zasobów i narzędzi.

 

1. Powtórzenie

 

Testy niefunkcjonalne w testowaniu oprogramowania muszą być przeprowadzane za każdym razem, gdy oprogramowanie jest aktualizowane przez programistów lub za każdym razem, gdy kod jest zmieniany. Oznacza to, że testy niefunkcjonalne mogą być bardzo powtarzalne, co nie tylko zabiera czas, ale również męczy testerów.

Zmęczeni testerzy wykonujący bardzo powtarzalne zadania są również bardziej narażeni na rozproszenie uwagi i popełnianie błędów.

 

2. Koszt

 

Ponieważ testowanie niefunkcjonalne jest tak powtarzalne, może być również dość kosztowne, zwłaszcza dla zespołów testujących, które polegają na ręcznym testowaniu niefunkcjonalnym.

Zespoły programistów muszą przeznaczyć czas i budżet na częste testy niefunkcjonalne, a twórcy oprogramowania będą musieli dodatkowo zapłacić za te dodatkowe testy.

 

Co testujemy w testach niefunkcjonalnych?

 

Testowanie niefunkcjonalne może być wykorzystywane do testowania wielu różnych parametrów niefunkcjonalnych, z których każdy wpływa na jakość i użyteczność systemu. Każdy z tych parametrów jest sprawdzany podczas testowania systemu pod kątem kryteriów określonych w planie testowania.

 

1. Bezpieczeństwo

 

Testy bezpieczeństwa to rodzaj testów niefunkcjonalnych, które mierzą jak dobrze system jest zabezpieczony przed zewnętrznymi zagrożeniami i atakami. Należą do nich zarówno celowe naruszenia bezpieczeństwa, jak i wycieki danych oraz inne powszechne naruszenia.

Testowanie bezpieczeństwa jest ważnym krokiem w testach niefunkcjonalnych, ponieważ daje użytkownikom końcowym i klientom pewność, że ich dane są bezpieczne.

 

2. Niezawodność

 

Testerzy używają testów niefunkcjonalnych do oceny niezawodności oprogramowania i zapewnienia, że oprogramowanie może stale wykonywać swoje określone funkcje bez awarii.

Podczas gdy testy funkcjonalne zapewniają, że oprogramowanie wykonuje swoje kluczowe funkcje, tylko testy niefunkcjonalne faktycznie testują niezawodność i powtarzalność tych wyników.

 

3. Survivability

 

Przetrwanie opisuje, jak system oprogramowania reaguje w przypadku awarii, a testowanie przetrwania zapewnia, że jeśli wystąpią błędy i awarie, system będzie w stanie sam się odbudować.

Testowanie przeżywalności może sprawdzić, czy oprogramowanie jest w stanie zapisać dane, aby zminimalizować ich utratę na przykład w przypadku nagłej awarii.

 

4. Dostępność

 

Dostępność oprogramowania odnosi się do stopnia, w jakim użytkownik może polegać na systemie podczas jego działania. Nazywa się to również stabilnością, a sprawdza się to poprzez testy stabilności.

Badanie stabilności przypomina nieco badanie niezawodności, ponieważ sprawdza, czy system może działać zgodnie z oczekiwanymi standardami w sposób ciągły.

 

5. Użyteczność

 

Testowanie użyteczności to kolejny ważny rodzaj testów niefunkcjonalnych w testowaniu oprogramowania. Ten rodzaj testów ocenia, jak dobrze użytkownik może nauczyć się, obsługiwać i korzystać z systemu oprogramowania, postępując zgodnie z instrukcjami podanymi na ekranie i innymi podstawowymi przewodnikami.

Testowanie użyteczności jest ważne, ponieważ jeśli oprogramowanie nie jest wysoce użyteczne, większość użytkowników po prostu je porzuci lub wybierze coś innego.

 

6. Skalowalność

 

Testowanie skalowalności sprawdza, do jakiego stopnia aplikacja może rozszerzyć swoją zdolność przetwarzania, aby sprostać rosnącemu zapotrzebowaniu.

Na przykład, jeśli oprogramowanie jest przeznaczone do jednoczesnego korzystania przez wielu użytkowników w jednej sieci, jak działa, gdy dziesięciu użytkowników zaloguje się w tym samym czasie? Czy większa liczba użytkowników znacząco wpływa na wydajność lub czasy ładowania?

 

7. Interoperacyjność

 

Testowanie interoperacyjności jest rodzajem testowania niefunkcjonalnego, które sprawdza, jak dobrze system oprogramowania łączy się z innymi systemami oprogramowania.

Jest to szczególnie ważne, gdy oprogramowanie jest projektowane jako część pakietu produktów, które wszystkie integrują się ze sobą.

 

8. Wydajność

 

Wydajność w testowaniu oprogramowania odnosi się do stopnia, w jakim system oprogramowania może obsłużyć pojemność, ilość i czas odpowiedzi.

Na przykład testerzy mogą ocenić, ilu użytkowników może się jednocześnie zalogować do systemu, jak długo trwa pobieranie danych z bazy danych lub jak szybko oprogramowanie może wykonywać podstawowe zadania.

 

9. Elastyczność

 

Elastyczność mierzy stopień, w jakim system oprogramowania może współpracować z różnymi typami sprzętu i urządzeń peryferyjnych.

Na przykład, ile pamięci RAM wymaga oprogramowanie lub czy wymaga określonej ilości procesora. Im niższe wymagania stawiane aplikacji, tym oprogramowanie jest bardziej elastyczne.

 

10. Przenośność

 

Testowanie przenośności służy do sprawdzenia, jak elastycznie oprogramowanie może być przeniesione z obecnego środowiska sprzętowego lub programowego i jak łatwo jest to zrobić.

Przenośność jest ważna, ponieważ wpływa na to, jak łatwo użytkownicy końcowi mogą zarządzać oprogramowaniem i przenosić je między różnymi systemami.

 

11. Możliwość ponownego wykorzystania

 

Testowanie wielokrotnego użytku jest rodzajem testowania niefunkcjonalnego, które testuje, czy części systemu oprogramowania mogą być przekształcone do ponownego użycia w ramach innej aplikacji.

Chociaż testowanie możliwości ponownego wykorzystania nie dotyczy zwykle klientów i użytkowników końcowych, jest dobrym odzwierciedleniem tego, jak skutecznie programiści tworzą komponenty, które mogą być ponownie wykorzystane w przyszłości.

 

Charakterystyka testów niefunkcjonalnych

Zrozumienie, czym są testy niefunkcjonalne, wiąże się ze zrozumieniem cech charakterystycznych dla testów niefunkcjonalnych. Te cechy definiują testowanie niefunkcjonalne w testowaniu oprogramowania.

 

1. Wymierne

 

Testy niefunkcjonalne są zawsze ilościowe i mierzalne, co oznacza, że testerzy nie używają subiektywnych zwrotów takich jak „ładny” czy „dobry”, zamiast tego używając liczb i faktów do opisania wyników testów niefunkcjonalnych.

Na przykład zamiast opisywać czasy ładowania jako „szybkie” lub „powolne”, testy niefunkcjonalne powinny skutkować konkretnymi liczbami pokazującymi, ile razy.

 

2. Konkretnie

 

Podczas przeprowadzania testów niefunkcjonalnych, cel testów powinien być specyficzny dla specyfikacji projektowej oprogramowania.

Na przykład, jeśli plan projektu oprogramowania odnosi się do liczby użytkowników, którzy powinni być w stanie zalogować się jednocześnie, powinno to być priorytetowe podczas testów niefunkcjonalnych.

 

3. Nieznany

 

Podczas gdy testy niefunkcjonalne mogą być specjalnie zaprojektowane do pomiaru atrybutów określonych w planach projektu, w wielu przypadkach te atrybuty nie będą określone z góry.

W tym przypadku testerzy powinni po prostu przeprowadzić testy niefunkcjonalne, aby ocenić oprogramowanie na podstawie każdego parametru, a później porównać je z oczekiwaniami.

 

Cykl życia testów niefunkcjonalnych

Ponieważ testowanie niefunkcjonalne nie odnosi się do konkretnej fazy w cyklu życia testowania oprogramowania, ale po prostu do rodzaju testów, które zwykle występują w fazie testowania systemu w testowaniu oprogramowania, cykl życia testowania niefunkcjonalnego może się bardzo różnić między projektami.

Ogólnie rzecz biorąc, podąża za podobnym cyklem życia jak inne rodzaje testowania oprogramowania, który zaczyna się od analizy wymagań projektu, a kończy na wykonaniu testów i wypełnieniu cyklu.

 

1. Analiza wymagań programowych

 

Pierwszym etapem cyklu życia testów niefunkcjonalnych jest analiza wymagań dotyczących oprogramowania. Zespoły programistów pracują nad określonymi kryteriami podczas budowania i testowania aplikacji, a kryteria te powinny dyktować, jaki rodzaj testów należy przeprowadzić.

 

2. Planowanie badań

 

Kolejnym etapem cyklu życia jest planowanie testów. Podczas etapu planowania testów, lider QA stworzy szczegółowy plan testów, który wyszczególnia co będzie testowane, kto będzie przeprowadzał testy oraz jakie podejścia, metody i narzędzia testowe będą używane.

Plan testów powinien zawierać wszystkie niezbędne szczegóły, których testerzy potrzebują do stworzenia i wykonania przypadków testowych.

 

3. Tworzenie przypadków testowych

 

Tworzenie przypadków testowych to kolejny etap testowania niefunkcjonalnego. Etap ten polega na opracowaniu niefunkcjonalnych przypadków testowych, które testerzy wykonają w późniejszym etapie w celu przetestowania niefunkcjonalnych wymagań systemu.

Przypadki testowe opisują co będzie testowane, jak będzie testowane i jaki jest oczekiwany wynik testu.

 

4. Konfiguracja środowiska badawczego

 

Kolejnym etapem cyklu życia testów niefunkcjonalnych jest ustawienie środowiska testowego przed rozpoczęciem testów.

Środowisko testowe jest miejscem, w którym odbywają się wszystkie testy i jest domem dla zasobów i narzędzi, których będziesz używać do wykonywania testów niefunkcjonalnych.

Zespół testujący przygotowuje środowisko testowe skonfigurowane przed wykonaniem testu.

 

5. Wykonanie testu

 

Wykonanie testu to kolejna faza cyklu życia testów niefunkcjonalnych. Polega ona na wykonaniu stworzonych wcześniej przypadków testowych w celu przetestowania różnych aspektów oprogramowania, w tym bezpieczeństwa, czasu ładowania, wydajności i przenośności.

Zespół testowy wykonuje każdy przypadek indywidualnie i sprawdza wynik każdego testu z oczekiwanym wynikiem.

 

6. Powtarzanie cyklu

 

Ostatnim etapem cyklu życia testów niefunkcjonalnych jest spełnienie cyklu i powtórzenie. Po wykonaniu wszystkich przypadków testowych, testerzy sprawdzają, które testy przeszły, a które nie.

Testy, które się nie powiodły, zwykle wskazują na istnienie defektu, który musi zostać naprawiony przez deweloperów. Po wprowadzeniu przez programistów poprawek lub edycji kodu, cykl testowania oprogramowania powtarza się ponownie, aż nie zostaną znalezione żadne defekty.

 

Wyjaśnienie pewnych nieporozumień:

Testy niefunkcjonalne a testy funkcjonalne

Porównanie testów UAT do testów regresyjnych i innych

Testy funkcjonalne i testy niefunkcjonalne to dwa różne, ale równie ważne rodzaje testów oprogramowania, które razem służą do oceny, czy aplikacja spełnia wymagania użytkowników określone w briefie projektu.

Podczas gdy oba są niezbędnymi rodzajami testów, które pozwalają zespołom programistycznym zidentyfikować defekty w budowanym oprogramowaniu, testy funkcjonalne i niefunkcjonalne są całkowicie różne od siebie.

 

1. Jaka jest różnica między testowaniem funkcjonalnym a niefunkcjonalnym?

 

Różnica między testami funkcjonalnymi i niefunkcjonalnymi jest w tym, co testują. Testy funkcjonalne testują funkcje aplikacji i sprawdzają, czy działają one zgodnie z oczekiwaniami. Testy niefunkcjonalne testują inne aspekty aplikacji, które wpływają na satysfakcję użytkownika i jakość aplikacji.

Testy funkcjonalne i niefunkcjonalne występują w różnych fazach testowania oprogramowania, ale oba rodzaje testów są zwykle przeprowadzane w fazie testowania systemu.

Zarówno testy funkcjonalne, jak i niefunkcjonalne mogą pomóc nam zrozumieć, jak dobrze działa aplikacja i czy odpowiednio wykonuje swoje zadania.

Na przykład, jeśli testujesz aplikację mobilną, która pozwala użytkownikom na zapisywanie list rzeczy do zrobienia i list zakupów, testy funkcjonalne mogą testować funkcje takie jak tworzenie nowej listy, zapisywanie listy i dokonywanie edycji istniejących list.

Testy niefunkcjonalne mogą ocenić, jak dobrze aplikacja działa na różnych urządzeniach mobilnych, jak szybko ładują się listy i jak bardzo wydajność aplikacji jest zakłócona, gdy inne aplikacje działają w tle.

 

2. Wnioski: testowanie niefunkcjonalne a testowanie funkcjonalne

 

Zarówno testy funkcjonalne, jak i niefunkcjonalne są ważnymi rodzajami testowania oprogramowania, które mogą pomóc testerom i zespołom QA ocenić, czy aplikacja spełnia aktualne wymagania.

Podczas gdy testy funkcjonalne testują funkcje oprogramowania, testy niefunkcjonalne testują inne aspekty, które mogą wpływać na wydajność, efektywność i bezpieczeństwo.

Testy jednostkowe, testy integracyjne i testy API to wszystko formy testów funkcjonalnych. W każdym z tych etapów testowania oprogramowania, testerzy oceniają jak dobrze funkcje i cechy działają indywidualnie lub razem i identyfikują błędy i defekty, które uniemożliwiają funkcjom działanie zgodnie z oczekiwaniami.

Testy bezpieczeństwa, testy użyteczności, testy przenośności i testy obciążenia to wszystkie formy testów niefunkcjonalnych, które pozwalają testerom ocenić, jak dobrze aplikacja wykonuje swoje funkcje i wspiera potrzeby użytkowników.

 

Rodzaje testów niefunkcjonalnych

Testowanie niefunkcjonalne: co to jest, różne typy, podejścia i narzędzia

Istnieje wiele różnych rodzajów testów niefunkcjonalnych, z których każdy testuje inny niefunkcjonalny aspekt wydajności lub efektywności aplikacji.

Każdy z tych rodzajów testów będzie badał inne parametry, a niektóre testy mogą badać te same parametry na różne sposoby.

 

1. Testy wydajności

 

Testy wydajnościowe to rodzaj testów niefunkcjonalnych, które sprawdzają jak dobrze działają różne komponenty oprogramowania. Zamiast testować ich funkcjonalność, co robi testowanie funkcjonalne, testy wydajnościowe mogą testować czasy odpowiedzi, wąskie gardła i punkty awarii. Testowanie wydajności pomaga testerom zapewnić, że oprogramowanie jest wysokiej jakości i że jest szybkie, stabilne i niezawodne.

 

2. Testy warunków skrajnych

 

Testy wytrzymałościowe to rodzaj testów niefunkcjonalnych, które sprawdzają, jak dobrze oprogramowanie działa, gdy jest poddawane nienormalnym obciążeniom. Może to oznaczać testowanie, jak oprogramowanie zachowuje się, gdy ktoś próbuje użyć wielu różnych funkcji naraz, lub podczas uruchamiania wielu innych aplikacji w tym samym czasie.

Testy obciążeniowe mają na celu określenie granicy, przy której oprogramowanie przestaje działać prawidłowo i co się dzieje, gdy system jest pod wpływem stresu. Pozwala to testerom zrozumieć, czy system potrafi się sam odzyskać i czy powiadamia użytkowników za pomocą odpowiednich komunikatów o błędach.

 

3. Próby obciążeniowe

 

Testy obciążeniowe to rodzaj testów, które oceniają, jak dobrze oprogramowanie zachowuje się zarówno w normalnych warunkach, jak i przy większych obciążeniach. Jest on używany do określenia, ile oprogramowanie może obsłużyć jednocześnie bez negatywnego wpływu na wydajność.

Testy obciążeniowe mogą być użyte do sprawdzenia jak działają aplikacje, gdy wielu użytkowników korzysta z nich jednocześnie lub gdy użytkownicy próbują pobrać wiele danych w tym samym czasie.

Testowanie obciążenia jest ważne, jeśli chcesz sprawdzić, czy twoje oprogramowanie jest skalowalne.

 

4. Testy bezpieczeństwa

 

Testy bezpieczeństwa oceniają aplikacje programowe i szukają luk w zabezpieczeniach oprogramowania. Obejmują one potencjalne zagrożenia bezpieczeństwa, które mogą skutkować utratą danych lub naruszeniami, które narażają poufne dane.

Testy bezpieczeństwa są ważne, ponieważ zapewniają, że produkt jest odpowiednio chroniony przed włamaniami, naruszeniem danych i innymi zewnętrznymi zagrożeniami bezpieczeństwa.

Niektóre przykłady testów bezpieczeństwa, które testerzy mogą wykonać to audyty bezpieczeństwa, etyczny hacking, testy penetracyjne, skanowanie bezpieczeństwa i oceny postawy.

 

5. Testy aktualizacji i instalacji

 

Testowanie aktualizacji i instalacji jest rodzajem niefunkcjonalnego testowania oprogramowania, które weryfikuje, jak dobrze oprogramowanie działa na różnych maszynach.

Celem tego typu testów jest upewnienie się, że nowi użytkownicy mogą łatwo zainstalować oprogramowanie na swoich maszynach, a istniejący użytkownicy mogą je uaktualnić, gdy pojawią się nowe aktualizacje.

Testy aktualizacji i instalacji są ważne, ponieważ użytkownicy końcowi muszą być w stanie łatwo zainstalować Twój produkt pod warunkiem, że pracują na maszynie, która jest z nim kompatybilna.

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

6. Badania objętości

 

Testy objętościowe to rodzaj testów, które istnieją w celu sprawdzenia, co się dzieje, gdy duże ilości danych są dodawane do bazy danych jednocześnie. Określa to, czy aplikacja może obsługiwać duże ilości danych i co się dzieje z systemem, jeśli nie może.

Testy objętościowe są również znane jako testy zalewowe i można je wykorzystać do oceny utraty danych i komunikatów o błędach, które występują podczas dodawania znacznych ilości danych do systemu.

Testy objętościowe to jedyny sposób na zapewnienie, że oprogramowanie poradzi sobie z ilością danych, jakiej będą oczekiwać od niego użytkownicy.

 

7. Testy odzyskiwania

 

Testy odzyskiwania polegają na wymuszeniu awarii systemu oprogramowania w celu sprawdzenia, jak dobrze system odzyskuje się po awarii.

Testy odzyskiwania mogą pomóc testerom zrozumieć, w jaki sposób oprogramowanie odzyskuje dane i zapobiega stratom, jeśli sprzęt zostanie odłączony podczas użytkowania, jeśli oprogramowanie zostanie odłączone od sieci podczas transferu danych lub jeśli niespodziewanie zrestartujesz system.

Tego typu testy są ważne, ponieważ systemy bez odpowiednich protokołów odzyskiwania danych mogą doznać poważnych strat w przypadku wystąpienia takich wypadków.

 

Czego potrzebujesz, aby rozpocząć testowanie niefunkcjonalne

Czym jest testowanie obciążenia?

Zanim rozpoczniesz testowanie niefunkcjonalne, musisz upewnić się, że przygotowałeś środowisko testowe i zebrałeś razem narzędzia i dane, których potrzebujesz.

 

1. Plan badań

 

Zanim rozpoczniesz testowanie niefunkcjonalne, upewnij się, że masz gotowy plan testów, który został podpisany przez odpowiednie osoby.

Twój plan testów powinien zawierać wszystkie istotne szczegóły dotyczące tego, co zamierzasz przetestować i jak. Powinien wyjaśniać, kiedy zamierzasz używać testów ręcznych, a kiedy automatycznych, jak również nakreślać role i obowiązki wszystkich osób zaangażowanych w proces testowania.

 

2. Przypadki testowe

 

Zanim będziesz mógł wykonać testy niefunkcjonalne, będziesz musiał stworzyć przypadki testowe. Każdy przypadek testowy przedstawia konkretną rzecz, którą zamierzasz przetestować, wyjaśnia, jak zamierzasz ją przetestować i opisuje oczekiwany wynik testu.

Na przykład, jeśli przeprowadzasz testy obciążeniowe, przykładowym przypadkiem testowym może być sprawdzenie, jak zachowuje się oprogramowanie, gdy dziesięciu użytkowników korzysta z tego samego modułu w tym samym czasie.

 

3. Weryfikacja funkcjonalna

 

Nie można przeprowadzić testów niefunkcjonalnych na komponentach oprogramowania, jeśli nie są one funkcjonalne.

Na przykład, jeśli chcesz przetestować, ilu użytkowników może obsługiwać oprogramowanie będąc zalogowanymi w tym samym czasie, najpierw ważne jest, aby sprawdzić, czy poszczególni użytkownicy mogą rzeczywiście zalogować się do oprogramowania.

Zanim zaczniesz testy niefunkcjonalne, upewnij się, że wszystkie twoje testy funkcjonalne przeszły i że twoje oprogramowanie działa tak, jak tego oczekujesz.

Oznacza to zwykle, że przeprowadzono już testy dymu, testy sanity, testy jednostkowe, integrację i funkcjonalne testy systemowe.

 

4. Narzędzia badawcze

 

Zanim rozpoczniesz testowanie niefunkcjonalne, zbierz wszystkie narzędzia testowe, których chcesz użyć do przeprowadzenia testów.

Niezależnie od tego, czy używasz narzędzi do automatyzacji, aby częściowo zautomatyzować niektóre z twoich testów lub narzędzia dokumentacyjne, które pomogą Ci zarządzać i przechowywać raporty z testów do późniejszego wykorzystania, upewnij się, że narzędzia, których chcesz użyć, są dostępne i gotowe do użycia, a każdy w zespole testowym wie, jak prawidłowo używać każdego narzędzia.

 

5. Środowisko badawcze

 

Skonfiguruj środowisko testowe przed rozpoczęciem testów niefunkcjonalnych. Być może masz już odpowiednie środowisko testowe, zwłaszcza jeśli możesz użyć tego samego środowiska do niefunkcjonalnego testowania systemu i funkcjonalnego testowania systemu.

Idealne środowisko testowe pozwala przetestować każdy potrzebny element na odpowiednich urządzeniach.

Na przykład, jeśli testujesz obsługę głośności na urządzeniach typu smartfon, lepiej przetestować to na rzeczywistym urządzeniu typu smartfon, niż próbować emulować środowisko mobilne na komputerze stacjonarnym.

 

Proces testowania niefunkcjonalnego

Co to jest testowanie jednostkowe

Testowanie niefunkcjonalnych aspektów budowy oprogramowania jest procesem wieloetapowym, który obejmuje przygotowanie środowiska testowego, stworzenie przypadków testowych, zebranie danych testowych oraz wykonanie testów niefunkcjonalnych.

Możliwe jest rozbicie procesu testowania na małe kawałki, aby ułatwić śledzenie go dla początkujących w testowaniu niefunkcjonalnym.

 

1. Kontrola gotowości do testów niefunkcjonalnych

 

Zanim zaczniesz testy niefunkcjonalne, ważne jest, aby zweryfikować, czy jesteś gotowy do tej fazy testów.

Może to oznaczać ocenę kryteriów wyjścia z ostatniej fazy testów, aby upewnić się, że oprogramowanie ją przeszło oraz upewnienie się, że oprogramowanie przeszło wszystkie testy funkcjonalne wymagane przed przeprowadzeniem testów niefunkcjonalnych.

Niektóre zespoły mogą stworzyć kryteria wejścia dla testów niefunkcjonalnych, które obejmują wszystkie warunki, które muszą być spełnione przed rozpoczęciem testów niefunkcjonalnych.

 

2. Utwórz plan testów

 

Być może przeprowadziłeś ten krok już wcześniej, jeśli wykonujesz testy niefunkcjonalne jako część testowania systemu i podążasz za swoim planem testowania systemu. Plan testów przedstawia wszystkie testy, które musisz przeprowadzić i jak zamierzasz je przeprowadzić.

Bez jasnego planu testów łatwo stracić z oczu zakres i cele przeprowadzanych testów.

 

3. Tworzenie przypadków testowych

 

Kolejnym etapem testowania niefunkcjonalnego jest tworzenie przypadków testowych przeznaczonych do testowania każdego parametru niefunkcjonalnego oprogramowania.

Każdy przypadek testowy powinien mieć identyfikator, nazwę przypadku testowego, opis i szczegóły dotyczące oczekiwanego wyniku testu, jak również wszelkie kryteria zaliczenia lub odrzucenia, które są ustalone z góry. Pomaga to testerom zrozumieć, jak przeprowadzić każdy test i jakich wyników szukać.

 

4. Gromadzenie danych z badań

 

Zanim będziesz mógł wykonać każdy przypadek testowy, będziesz musiał zebrać dane testowe, których użyjesz dla każdego przypadku testowego.

Zazwyczaj oznacza to zbieranie kodu i danych z różnych modułów i komponentów, które składają się na funkcje i obszary, które zamierzasz przetestować. Jeśli maksymalizujesz pokrycie testowe, powinieneś mieć dużo danych testowych do pracy.

 

5. Przygotowanie środowiska testowego

 

Kolejnym etapem testowania niefunkcjonalnego jest przygotowanie środowiska testowego. Środowisko testowe to serwer testowy, którego będziesz używał do przeprowadzania testów oprogramowania wielu różnych typów.

Pozwala na stworzenie identycznych warunków, w których można testować oprogramowanie, a także na ustawienie oprogramowania w różnych konfiguracjach do testowania konfiguracji, testowania bezpieczeństwa i innych rodzajów testów niefunkcjonalnych.

 

6. Przeprowadzenie testów niefunkcjonalnych

 

Gdy środowisko testowe jest już gotowe, czas na wykonanie testów niefunkcjonalnych. Możesz zdecydować się na wykonanie testów w kolejności według rodzaju, na przykład zaczynając od testów wydajnościowych przed przejściem do testów bezpieczeństwa i innych rodzajów testów niefunkcjonalnych.

Po przeprowadzeniu każdego testu, zanotuj wyniki w swoim raporcie z testów. Jeśli automatyzujesz testy, twoje narzędzie automatyzacji będzie miało standardowy sposób raportowania wyników jasno i jednoznacznie, jak również.

 

7. Przedstawić wyniki badań

 

Po wykonaniu każdego przypadku testowego, skompiluj wyniki testów niefunkcjonalnych w jeden raport.

Raport ten powinien jasno określać wyniki każdego z testów i jednoznacznie wskazywać, czy każdy z testów przeszedł pozytywnie czy negatywnie.

Postępuj zgodnie ze standardową strukturą dla swojego raportu z testu, aby upewnić się, że wszystkie informacje, które będziesz musiał przekazać, są zawarte.

 

8. Naprawić wady

 

Po otrzymaniu wyników testów, przekaż oprogramowanie z powrotem deweloperom, jeśli testy nie powiodły się lub jeśli zidentyfikowałeś jakieś niefunkcjonalne błędy, które wymagają naprawy.

Na przykład, jeśli oprogramowanie nie obsługuje odpowiedniej liczby użytkowników jednocześnie lub jeśli wydajność zbytnio zwalnia, gdy wiele programów jest uruchomionych w tym samym czasie, te problemy prawdopodobnie będą musiały zostać naprawione w kodzie, aby zapewnić, że użytkownicy są zadowoleni z produktu.

 

9. Powtórzenie cyklu badań

 

Kiedy programiści naprawią wszelkie defekty znalezione podczas wstępnej fazy testów niefunkcjonalnych, cykl testowania może rozpocząć się ponownie.

Deweloperzy przetestują zmiany, które wprowadzają i przekażą nowy build z powrotem do testerów QA, którzy następnie przeprowadzą pełny zestaw testów, zaczynając od testów dymnych, testów jednostkowych, testów integracyjnych i wreszcie testów systemowych.

Cykl testowania jest powtarzany do momentu, gdy w żadnym punkcie nie pojawią się błędy lub defekty, po czym build może wejść w ostatni etap testowania: testy akceptacyjne użytkownika.

 

Przypadki testowe dla testów niefunkcjonalnych

artykuł o testach grey box - narzędzia, podejścia, komapryzacja vs. white box i black box testing, gray box free i narzędzia dla przedsiębiorstw.

Przypadki testowe są ważnym aspektem wszystkich testów oprogramowania, a kiedy przeprowadzasz zarówno testy funkcjonalne, jak i niefunkcjonalne, będziesz używał przypadków testowych, aby zdefiniować, co będziesz testował i jak będziesz to testował.

Każdy przypadek testowy może być postrzegany jako mini-test, a każdy przypadek testowy będzie miał swoje własne zdefiniowane wyjścia i wyniki.

 

1. Czym są przypadki testowe w testowaniu niefunkcjonalnym?

 

Przypadek testowy to zestaw czynności wykonywanych na kompilacji oprogramowania w celu sprawdzenia, czy spełnia ona warunki zdefiniowane w planie oprogramowania. Każdy przypadek testowy skutecznie mówi testerom, co i jak mają testować, i jest zaprojektowany do testowania konkretnej funkcji lub niefunkcjonalnej cechy aplikacji.

Przypadki testów niefunkcjonalnych mogą obejmować testowanie, co się stanie, gdy ktoś spróbuje uzyskać dostęp do bezpiecznych danych w systemie lub testowanie, jak szybko oprogramowanie ładuje się podczas uruchamiania.

 

2. Jak projektować niefunkcjonalne przypadki testowe?

 

Kiedy projektujesz przypadki testowe dla testów niefunkcjonalnych, ważne jest, aby podążać za standardowymi praktykami przypadków testowych, jednocześnie pamiętając o celach swoich testów niefunkcjonalnych.

Wykonaj poniższe kroki, aby napisać przypadki testowe dla testów niefunkcjonalnych, które jasno określają, co testerzy muszą zrobić, aby wykonać każdy test.

 

1. Zdefiniuj obszar, który chcesz objąć

 

Dla każdego przypadku testowego zastanów się, jaki obszar Twojego oprogramowania ten przypadek testowy będzie obejmował.

Na przykład, jeśli piszesz przypadki testowe dla testów instalacji i aktualizacji, możesz zawrzeć przypadki testowe, które oceniają, jak łatwo jest zainstalować aplikację na różnych urządzeniach i jak długo trwa aktualizacja oprogramowania przy użyciu nowej łatki.

 

2. Utwórz unikalny identyfikator przypadku testowego

 

Każdy przypadek testowy powinien mieć unikalny identyfikator. Ułatwia to późniejsze odnalezienie opisu przypadku testowego i wyników, a także wyjaśnia wszelkie niejasności dotyczące tego, do którego przypadku testowego się odnosisz, jeśli dwa przypadki testowe mają podobne nazwy lub opisy.

 

3. Nazwij i opisz każde badanie

 

Podczas gdy ID przypadku testowego identyfikuje test, będziesz także chciał podać nazwę i opis dla każdego przypadku testowego, który napiszesz.

Powinna to być prosta nazwa, która podsumowuje to, co testujesz, natomiast opis to jedno zdanie, które rozwija to nieco bardziej szczegółowo.

Opis powinien być na tyle jasny, aby testerzy wiedzieli, co i jak testować, a także jakie szczególne warunki muszą być spełnione w teście.

 

4. Określenie oczekiwanego wyniku

 

Dla każdego przypadku testowego nakreśl wynik, który powinien wystąpić, jeśli oprogramowanie działa zgodnie z oczekiwaniami.

W testach niefunkcjonalnych, takich jak testy wydajności i testy obciążeniowe, może to w wielu przypadkach oznaczać, że oprogramowanie po prostu kontynuuje normalne działanie bez spowolnienia, opóźnienia lub awarii.

W innych przypadkach może to oznaczać, że pojawiają się określone komunikaty o błędach, aby powiadomić użytkownika o problemie i zalecić rozwiązanie.

 

5. Rekomendowanie technik testowania

 

Dla każdego przypadku testowego zarekomenduj rodzaj technik testowania i narzędzi do testowania niefunkcjonalnego, które Twoim zdaniem tester powinien zastosować podczas testowania.

W testach niefunkcjonalnych testerzy mogą stosować bardzo różne podejścia do różnych rodzajów testów.

Na przykład, testy obciążenia i testy warunków skrajnych mogą wymagać automatyzacji, ponieważ niepraktyczne jest ręczne symulowanie ekstremalnie dużego ruchu, podczas gdy inne rodzaje testów mogą być łatwiejsze do przeprowadzenia bez żadnych konkretnych narzędzi lub technologii.

 

6. Uzyskanie recenzji każdego przypadku testowego

 

Zanim podpiszesz się pod każdym przypadkiem testowym, niech każdy przypadek zostanie zweryfikowany przez kogoś, z kim pracujesz. Może to być inny tester lub lider QA.

Wzajemne recenzowanie przypadków testowych zapewnia, że są one wystarczająco jasne, aby mógł je śledzić tester zewnętrzny i nie zawierają żadnych dwuznaczności lub błędów, które mogłyby prowadzić do niewłaściwego testowania.

 

3. Przykłady przypadków testów niefunkcjonalnych

 

Jeśli piszesz przypadki testowe dla testów niefunkcjonalnych, mogą one wyglądać coś jak poniższe przykłady testów niefunkcjonalnych.

 

Przykład badania skalowalności

Identyfikator przypadku testowego: 6671
Nazwa przypadku testowego: Test logowania wielu użytkowników
Opis: Emuluj 20+ użytkowników logujących się do oprogramowania w tym samym czasie za pomocą narzędzi automatyzacji.
Oczekiwane rezultaty: Oprogramowanie powinno działać normalnie dla każdego użytkownika, umożliwiając każdemu użytkownikowi pomyślne zalogowanie się w czasie poniżej 5 sekund.

 

Przykład badania kompatybilności

Identyfikator przypadku testowego: 5214
Nazwa przypadku testowego: Ładowanie aplikacji w przeglądarce Opera
Opis: Załaduj aplikację w przeglądarce internetowej Opera.
Spodziewane rezultaty: Aplikacja ładuje się normalnie w przeglądarce internetowej Opera przy standardowej rozdzielczości i układzie wyświetlania.

 

Manualne czy automatyczne testy niefunkcjonalne?

widzenie komputerowe w testowaniu oprogramowania

Kiedy wybierasz pomiędzy różnymi technikami testowania niefunkcjonalnego, będziesz musiał zdecydować, czy chcesz przeprowadzić manualne czy automatyczne testy niefunkcjonalne.

Testy manualne są wykonywane przez ludzkich testerów, co oznacza, że ich przeprowadzenie jest zazwyczaj bardziej czasochłonne, ale dają one również możliwość przeprowadzenia testów eksploracyjnych.

Zautomatyzowane testy niefunkcjonalne są szybsze i pod pewnymi względami bardziej niezawodne, ale wymagają też więcej zasobów lub narzędzi. Automatyzacja i hiperautomatyzacja staje się coraz bardziej popularna w testowaniu, szczególnie jeśli chodzi o testy niefunkcjonalne.

 

Manualne testowanie niefunkcjonalne: Korzyści, wyzwania i procesy

 

Manualne testy niefunkcjonalne są przeprowadzane wyłącznie przez testerów, którzy będą testować każdy poszczególny element niefunkcjonalny niezależnie.

Podczas przeprowadzania manualnych testów niefunkcjonalnych, testerzy muszą zebrać informacje o oprogramowaniu, stworzyć indywidualne przypadki testowe, które pasują do planu testów i wykonać te przypadki testowe ręcznie.

Zajmuje to sporo czasu, ale oznacza również, że testerzy QA mają swobodę w określaniu, co i jak jest testowane.

 

1. Niektóre z korzyści płynących z testowania manualnego obejmują:

 

● Testowanie ręczne może być tańsze niż automatyczne, ponieważ nie wymaga specyficznych technologii ani wiedzy technicznej.

● Testowanie manualne pozwala testerom zaoferować ludzki wgląd i subiektywność w to, jak funkcjonuje oprogramowanie i czy działa w sposób zadowalający.

● Testowanie ręczne może być wykorzystywane do przeprowadzania testów systemu w scenariuszach, w których niemożliwe jest zautomatyzowanie.

● Testy manualne pozwalają testerom ocenić wizualne aspekty systemu, takie jak interfejs graficzny i inne czynniki, które mogą wpływać na użyteczność.

Testowanie ręczne oferuje testerom szerszą perspektywę systemu jako całości i tego, jak różne moduły i komponenty współpracują ze sobą.

 

Są jednak także wady testów manualnych.

 

2. Niektóre z wyzwań związanych z testowaniem manualnym obejmują:

 

Niektóre rodzaje testów niefunkcjonalnych, w tym testy obciążeniowe i testy wydajności, są niepraktyczne do przeprowadzenia ręcznie.

Testowanie ręczne zajmuje znacznie więcej czasu niż zautomatyzowane testowanie niefunkcjonalne

Testerzy manualni mogą się rozpraszać, tracić koncentrację i popełniać błędy, zwłaszcza podczas wykonywania bardzo powtarzalnych zadań testowych

 

Zautomatyzowane testowanie niefunkcjonalne: Korzyści, wyzwania i procesy

Zautomatyzowane testy niefunkcjonalne są przeprowadzane przez automatyczne skrypty i narzędzia testowe. W przypadku stosowania metod testowania automatycznego, testerzy mogą przeprowadzać testy w tle, zajmując się innymi zadaniami, po zainicjowaniu testów automatycznych.

 

1. Niektóre korzyści z automatyzacji testów niefunkcjonalnych to:

 

1. Oszczędność czasu i zasobów poprzez zmniejszenie ilości czasu poświęcanego na długotrwałe, czasochłonne zadania

2. Automatyzacja umożliwia zwiększenie pokrycia testowego poprzez objęcie szerszego zakresu komponentów i funkcji

3. Częste przeprowadzanie testów automatycznych jest bardziej opłacalne, ponieważ ich wykonanie zajmuje mniej czasu

4. Testy automatyczne są idealne dla czasochłonnych zadań testowych, takich jak testy obciążenia, testy objętościowe i testy warunków skrajnych, które są bardzo trudne do przeprowadzenia ręcznie.

5. Istnieje mniejsze prawdopodobieństwo wystąpienia błędów podczas wykonywania testów automatycznych

 

Jednakże, istnieją również pewne wady testów automatycznych, co oznacza, że nie zawsze jest to właściwe podejście dla wszystkich rodzajów testów niefunkcjonalnych.

 

2. Niektóre z wyzwań związanych z automatycznym testowaniem niefunkcjonalnym obejmują:

 

1. Automatyzacja testów jest droższa niż testowanie manualne

2. Konfiguracja automatyzacji testów może wymagać czasu i zasobów technicznych

3. Automatyzacja testów nie daje miejsca na testy eksploracyjne

4. Automatyzacja testów nadal wymaga czasu na tworzenie przypadków testowych

 

Wnioski: Ręcznie czy automatycznie

testowanie niefunkcjonalne?

Korzyści z utworzenia Centrum Doskonalenia Testów. Czy testy wydajnościowe różnią się od testów funkcjonalnych?

W większości rodzajów testowania oprogramowania, łączenie testów ręcznych i automatycznych zwykle oferuje najlepsze wyniki. Dzięki temu zespoły testujące mogą korzystać z wydajności, niezawodności i dokładności testów automatycznych, jednocześnie przeprowadzając testy eksploracyjne, które umożliwiają testerom ocenę oprogramowania z bardziej subiektywnej perspektywy.

W testach niefunkcjonalnych zarówno testy manualne, jak i automatyczne są praktycznie niezbędne dla większości zespołów testowych.

Testowanie ręczne najlepiej wykorzystać do realizacji zadań związanych z testowaniem niefunkcjonalnym, takich jak testowanie użyteczności, natomiast testowanie automatyczne jest najczęściej wykorzystywane do przeprowadzania testów, które byłyby zbyt czasochłonne i trudne do przeprowadzenia ręcznie, takich jak testowanie stresu lub testowanie objętości.

Testowanie niefunkcjonalne jest jednym z najbardziej oczywistych obszarów do wykorzystania technik automatyzacji testów, ponieważ jest to ilościowy, mierzalny rodzaj testowania, który nie prosi o subiektywne wyniki.

Podobnie jak w przypadku innych rodzajów testów, testowanie niefunkcjonalne jest zwykle przeprowadzane przy użyciu mieszanki testów ręcznych i testów automatycznych.

Jednak testowanie automatyczne jest praktycznie konieczne dla wielu rodzajów testów niefunkcjonalnych, a parametry i metryki testów niefunkcjonalnych oznaczają, że automatyzacja jest bardziej odpowiednia dla tego typu testów niż dla testów funkcjonalnych.

Najlepsze praktyki w zakresie testowania niefunkcjonalnego

Czym jest testowanie oprogramowania?

Kiedy podejmujesz się testowania niefunkcjonalnego po raz pierwszy, przestrzeganie najlepszych praktyk testowania może pomóc ci w standaryzacji procesu testowania i optymalizacji skuteczności twoich testów.

Najlepsze praktyki służą jako wytyczne dla zespołów testujących oprogramowanie, które chcą poprawić procesy testowe i dostosować się do standardów branżowych.

 

1. Wykorzystaj narzędzia automatyzacji

 

W testach niefunkcjonalnych bardziej niż w innych typach testów, ważne jest użycie narzędzi do automatyzacji pewnych typów testów, a konkretnie testów objętościowych, stress testów i testów obciążeniowych.

Tego typu testy zazwyczaj sprawdzają, jak dobrze oprogramowanie działa pod dużą presją użytkowników, danych i ruchu, co może być bardzo trudne do naśladowania ręcznie.

Automatyzacja tego typu testów niefunkcjonalnych będzie nie tylko bardziej wydajna, ale również dokładniejsza i pozwoli testerom na łatwe replikowanie większych obciążeń i naprężeń.

 

2. Wzajemny przegląd całej dokumentacji

 

Tak jak prosisz rówieśników o przeglądanie przypadków testowych, które tworzysz, poproś rówieśników z zespołu testującego o przeglądanie raportów o błędach, raportów z testów, planów testów i innych form formalnej dokumentacji tworzonej podczas procesu testowania.

Zmniejsza to ryzyko wystąpienia drobnych błędów, które mogłyby spowodować poważne opóźnienia w procesie testowania i rozwoju.

 

3. Zdefiniuj wymierne wymagania

 

Kiedy definiujesz wymagania swojego oprogramowania przed rozpoczęciem testów niefunkcjonalnych, upewnij się, że każde wymaganie jest obiektywne i mierzalne.

Ułatwia to testerom stwierdzenie, czy oprogramowanie spełnia te wymagania podczas testów i nie pozostawia miejsca na interpretację.

Co liczy się jako „szybkie” lub „wydajne”? Używaj liczb i wartości ilościowych, aby określić, czego szukasz.

 

4. Starannie rozważ metrykę testów

 

Przed podjęciem decyzji o tym, jakich metryk użyjesz do mierzenia wydajności swojego oprogramowania, zastanów się, czego będą chcieli użytkownicy oprogramowania i które metryki rzeczywiście są zgodne z planem i wymaganiami oprogramowania.

Większość oprogramowania powinna być szybka i niezawodna, ale na jakie inne metryki mogą zwrócić uwagę Twoi użytkownicy? Czy istnieją jakieś metryki specyficzne dla oprogramowania, które powinieneś wziąć pod uwagę podczas procesu testowania?

 

Rodzaje danych wyjściowych z testu niefunkcjonalnego

jak działa testowanie automatyzacji w branżach takich jak np. bankowość

Kiedy przeprowadzasz testy niefunkcjonalne, otrzymasz różne rodzaje danych wyjściowych z testów, które wykonujesz.

Są one zwykle dość różne od wyjść testów funkcjonalnych, które są często wyraźniej wycięte, ponieważ testy funkcjonalne po prostu testują, czy funkcja działa tak, jak powinna, czy nie.

Podobnie jak w przypadku testów funkcjonalnych, testerzy powinni ustalić jasne oczekiwania dla każdego przypadku testowego, które ułatwią określenie, czy dany test przejdzie czy nie.

 

1. Liczby bezwzględne

 

Podczas przeprowadzania testów wydajności, testów warunków skrajnych i innych rodzajów testów niefunkcjonalnych, dane wyjściowe, na które najczęściej patrzysz, to prędkości i inne liczby bezwzględne.

Testy wydajnościowe weryfikują jak szybko system może wykonać pewne zadania, a to będzie mierzone w sekundach lub milisekundach.

Jeśli przeprowadzasz testy obciążenia, możesz ocenić, ile danych oprogramowanie może obsłużyć jednocześnie bez awarii lub opóźnień.

 

2. Informowanie o błędach

 

Testy niefunkcjonalne weryfikują również, jak system działa w przypadku wystąpienia błędów, takich jak błędy bezpieczeństwa, błędy walidacji i błędy konfiguracji.

Ważne jest, aby systemy wyświetlały dokładne i jasne komunikaty o błędach, gdy one wystąpią, tak aby użytkownicy mogli podjąć kroki w celu usunięcia problemu i kontynuowania korzystania z oprogramowania.

Komunikaty o błędach powinny pojawiać się także podczas testów bezpieczeństwa, gdy system uniemożliwia użytkownikom złamanie wbudowanych w oprogramowanie zabezpieczeń.

 

3. Zderzenia

 

Awaria jest oznaką awarii systemu i zwykle wskazuje, że system nie jest w stanie wykonać na poziomie, który testujesz i może oznaczać, że test został zaliczony.

W niektórych przypadkach system może ulec awarii, a mimo to przejść test, nad którym pracujesz, na przykład jeśli system wytrzyma wymaganą ilość stresu lub ruchu przed awarią.

Podczas przeprowadzania testów niefunkcjonalnych, testerzy powinni spodziewać się regularnych awarii systemu, zwłaszcza gdy przesuwają go do granic możliwości w testach obciążeniowych i innych testach wydajnościowych.

 

Przykłady testów niefunkcjonalnych

Testowanie end-to-end - Czym jest testowanie E2E, narzędzia, rodzaje i więcej

Przykłady testów niefunkcjonalnych są podobne do powyższych przykładów dla przypadków testowych niefunkcjonalnych.

Możesz spojrzeć na przykłady testów niefunkcjonalnych, aby lepiej zrozumieć, czym jest testowanie niefunkcjonalne i co testuje w ramach aplikacji.

 

1. Przykład badania wydajności

 

Jeśli pracujesz nad aplikacją mobilną, która łączy użytkowników z bazą danych online, ważne jest, aby duża liczba użytkowników mogła uzyskać dostęp i pobrać dane z tej bazy w tym samym czasie.

Jest to również kluczowa część testów skalowalności, zwłaszcza jeśli chcesz zwiększyć liczbę użytkowników w aplikacji w przyszłości.

Następnie przetestujesz, jak system reaguje, gdy np. 1000 użytkowników próbuje uzyskać dostęp do tej samej bazy danych w tym samym czasie i ustalisz wymagania dotyczące tego, jak szybko aplikacja powinna się ładować w tych warunkach.

 

2. Badanie kompatybilności

 

Jeśli testujesz nową aplikację do zarządzania dokumentami, musisz sprawdzić, czy działa ona na wszystkich urządzeniach, dla których jest przeznaczona.

Oznacza to testowanie, że można zainstalować i załadować aplikację na wszystkich najnowszych wersjach systemów Windows, Mac i wszelkich innych systemach operacyjnych (takich jak Linux), z którymi oprogramowanie ma być kompatybilne.

 

3. Testy bezpieczeństwa

 

Podczas przeprowadzania testów bezpieczeństwa przetestujesz niektóre sposoby, w jakie ludzie mogą próbować uzyskać dostęp do poufnych danych lub naruszyć zabezpieczenia oprogramowania, aby sprawdzić, czy system zachowuje się w tych sytuacjach tak, jak tego oczekujesz.

Na przykład możesz zalogować się jako użytkownik i spróbować uzyskać dostęp do plików, do których nie masz uprawnień bezpieczeństwa, aby upewnić się, że system nie pozwoli Ci na dostęp do tych plików.

 

Rodzaje wykrytych błędów i usterek

poprzez testowanie niefunkcjonalne

zaptest-runtime-error.png

Testy niefunkcjonalne mogą ujawnić wiele błędów i defektów, które nie są tak łatwe do znalezienia jak te zidentyfikowane w testach funkcjonalnych. To dlatego, że testowanie niefunkcjonalne często wymaga od testerów weryfikacji różnych konfiguracji, ustawień i kombinacji warunków, aby ocenić, jak dobrze system działa w niezliczonej ilości różnych ustawień.

 

1. Wady użytkowe

 

Wady wydajności powstają, gdy system działa, ale nie działa tak szybko lub tak sprawnie, jak tego oczekujesz.

Na przykład możesz zauważyć, że system nie ładuje się wystarczająco szybko w pewnych warunkach lub nawet zawiesza się, jeśli zbyt wielu użytkowników zaloguje się w tym samym czasie.

Wady wydajności nie uniemożliwiają całkowicie korzystania z oprogramowania, ale mogą sprawić, że będzie ono mniej użyteczne i mniej prawdopodobne, że spełni wymagania użytkownika.

 

2. Wady bezpieczeństwa

 

Wady bezpieczeństwa to te wady, które wpływają na bezpieczeństwo systemu oprogramowania i przechowywanych w nim danych.

Wady bezpieczeństwa mogą powstać, jeśli na przykład użytkownicy mogą uzyskać dostęp do poufnych danych, do których nie powinni mieć dostępu, lub jeśli pewne części aplikacji nie są prawidłowo zabezpieczone hasłem, lub jeśli szyfrowanie zawiedzie.

Mogą one skutkować naruszeniem bezpieczeństwa, co może mieć poważny wpływ na reputację wydawcy oprogramowania.

 

3. Wady funkcjonalne

 

Podczas gdy testowanie niefunkcjonalne nie jest przeznaczone do testowania funkcji aplikacji, w niektórych przypadkach testowanie niefunkcjonalne może zidentyfikować defekty funkcjonalne w oprogramowaniu.

Na przykład, celem testów niezawodności nie jest sprawdzenie, czy aplikacja działa, ale sprawdzenie, czy aplikacja działa niezawodnie przy powtarzających się próbach.

Może to ujawnić, że niektóre cechy nie działają niezawodnie, gdy czynność jest powtarzana, a te mogą być klasyfikowane jako błędy funkcjonalne.

 

Wspólne metryki testów niefunkcjonalnych

korzyści z utworzenia centrum doskonałości testów (TCoE)

Metryki testów niefunkcjonalnych opisują te metryki, za pomocą których mierzona jest wydajność i efektywność systemu.

Różne rodzaje testów niefunkcjonalnych polegają na różnych metrykach, a Ty możesz wybrać różne metryki w zależności od ostatecznych celów projektu.

 

1. Czas

 

Metryka czasu mierzy, jak długo trwa wykonywanie określonych zadań lub jak długo użytkownicy muszą czekać na załadowanie się funkcji.

Niektóre przykłady metryk czasowych to liczba transakcji lub pobrań, które aplikacja może wykonać w określonym czasie, czasy reakcji różnych funkcji oraz czas potrzebny aplikacji na wykonanie określonej operacji.

Różne rodzaje testów będą mierzyć wyniki w sekundach lub jako prezentację ile operacji na sekundę.

 

2. Przestrzeń

 

Przestrzeń jest kolejną ważną metryką w testach niefunkcjonalnych. Metryka miejsca może sprawdzać, ile miejsca na procesorze wymaga system lub ile miejsca na dysku twardym zajmuje oprogramowanie po jego pełnej instalacji.

Niektóre przykłady metryk przestrzeni obejmują pamięć podręczną, pamięć główną i pamięć pomocniczą.

Oprogramowanie, które wymaga dużej ilości miejsca do sprawnego działania, może być odpowiednie dla mniejszej liczby klientów.

 

3. Użyteczność

 

Niektóre metryki w testach niefunkcjonalnych biorą pod uwagę użyteczność systemu, na przykład, jak długo trwa szkolenie użytkowników w zakresie prawidłowego korzystania z systemu, jak wiele wyborów użytkownicy muszą nawigować, aby wykonać kluczowe funkcje, lub ile kliknięć myszką potrzeba, aby wykonać pewne zadania.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Testy niefunkcjonalne mogą mierzyć każdą z tych metryk w sposób ilościowy, przy czym niższe liczby zazwyczaj oznaczają wyższy poziom użyteczności.

 

4. Niezawodność

 

Kolejną ważną metryką w testach niefunkcjonalnych jest niezawodność. Niezawodność odzwierciedla prawdopodobieństwo, że system zachowuje się w ten sam sposób raz po raz lub działa tak, jak powinien przez długi okres czasu.

Niektóre przykłady metryk, które są wykorzystywane do pomiaru niezawodności, obejmują średni czas do awarii, wskaźnik awarii, dostępność i prawdopodobieństwo przestoju.

Każda z tych metryk pomaga testerom zweryfikować, czy system może działać przez długi czas bez doświadczania awarii czy załamań.

 

5. Wytrzymałość

 

Solidność jest miarą tego, jak dobrze system radzi sobie z awariami i jak dobrze system może się odbudować w przypadku awarii.

Niektóre przykłady metryk mierzących solidność obejmują czas potrzebny na odzyskanie systemu po awarii, odsetek incydentów prowadzących do katastrofalnej awarii oraz prawdopodobieństwo, że pliki danych zostaną uszkodzone po awarii systemu.

Są to ważne metryki, ponieważ użytkownicy oczekują, że systemy mogą czasami zawieść bez utraty wszystkich danych lub uszkodzenia plików.

 

6. Przenośność

 

Metryka przenośności mierzy, jak łatwo oprogramowanie może być przeniesione do różnych systemów lub przeniesione do nowej lokalizacji w sieci.

Niektóre przykłady metryk, które mierzą przenośność, obejmują procent kodu nie nadającego się do przeniesienia i liczbę systemów, na których oprogramowanie może działać.

W idealnym przypadku oprogramowanie, które może działać na wielu różnych systemach, jest bardziej przenośne i dlatego wygodniejsze w użyciu w miejscach, które mogą wymagać częstego przenoszenia lub zmiany lokalizacji.

 

Strategie przeprowadzania testów niefunkcjonalnych

Co to jest testowanie jednostkowe?

Kiedy rozpoczynasz testowanie niefunkcjonalne, ważne jest, aby podejść do tej fazy testowania z myślą o strategii. Kierownicy działów QA i kierownicy testów oprogramowania powinni rozważyć ryzyko związane z testowaniem, zasoby, którymi dysponują oraz cel testowania przed rozpoczęciem testów niefunkcjonalnych.

Opracowanie strategii może pomóc w optymalizacji testów niefunkcjonalnych od samego początku.

 

1. Przydzielenie ról i obowiązków

 

Zanim rozpoczniesz testowanie niefunkcjonalne, przydziel role i obowiązki kluczowym członkom zespołu testującego. Dzięki temu łatwiej jest zarządzać nakładem pracy związanym z testami niefunkcjonalnymi oraz zapewnić, że doświadczeni testerzy są odpowiedzialni za utrzymanie jakości i skuteczności przeprowadzanych testów.

Upewnij się, że osoby, które wybierzesz do objęcia tych ról, mają wiedzę i doświadczenie potrzebne do wykonania zadań, których od nich oczekujesz, zwłaszcza jeśli zadania te wymagają umiejętności technicznych.

 

2. Zgromadzenie odpowiednich narzędzi testowych

 

Zbierz wszystkie technologie i narzędzia, które chcesz wykorzystać do przeprowadzenia testów niefunkcjonalnych. Upewnij się, że cały Twój zespół wie, jak efektywnie z nich korzystać, a w razie potrzeby przeprowadź szkolenie, aby uzupełnić braki w umiejętnościach.

Upewnienie się, że wszyscy wiedzą, jakich narzędzi testowych używać i jak ich używać przed rozpoczęciem testów niefunkcjonalnych, zmniejsza ryzyko konieczności wstrzymania testów lub ponownego wykonania testów z powodu niewystarczającej wiedzy.

 

3. Nadanie priorytetu testom

 

Zanim rozpoczniesz testowanie niefunkcjonalne, zrób listę wszystkich aspektów systemu, które musisz przetestować i nadaj im priorytety na podstawie pilności i ważności.

Możesz nadać priorytet testom niefunkcjonalnym w oparciu o poziom ryzyka związanego z każdym aspektem systemu, który testujesz.

Na przykład, podstawowe testy bezpieczeństwa mogą mieć miejsce, ponieważ odpowiednie bezpieczeństwo jest uważane za niezwykle ważne w nowoczesnym oprogramowaniu. Im wcześniej zidentyfikujesz defekty wysokiego ryzyka, tym mniejszy może być potencjalny wpływ tych defektów na inne aspekty systemu.

 

7 najlepszych narzędzi do testowania niefunkcjonalnego

najlepsze darmowe i korporacyjne narzędzia do testowania oprogramowania + automatyzacji RPA

Narzędzia do testowania niefunkcjonalnego mogą usprawnić proces testowania, sprawić, że automatyzacja testów będzie łatwiejsza i bardziej opłacalna oraz pomóc liderom QA w zarządzaniu procesem testowania i dokumentacji.

Istnieje wiele darmowych narzędzi do testowania niefunkcjonalnego dostępnych online, jak również niektóre narzędzia, za które można zapłacić miesięczną opłatę za aktualizację.

 

1. ZAPTEST edycja FREE

 

ZAPTEST to popularne narzędzie do testowania oprogramowania, które pozwala użytkownikom szybko i łatwo przeprowadzić zarówno funkcjonalne, jak i niefunkcjonalne testy oprogramowania. Możesz użyć ZAPTEST do automatyzacji testów oprogramowania i wykorzystać technologię RPA do emulacji różnych funkcji i warunków w testach niefunkcjonalnych.

Edycja ZAPTEST FREE jest tylko okrojoną wersją edycji enterprise, oferującą wiele z tych samych funkcjonalności na mniejszą skalę. Możesz szukać wsparcia na forum ZAPTEST i przeprowadzać testy wydajnościowe z nieograniczoną liczbą wirtualnych użytkowników.

 

2. Appium

 

Appium to darmowe narzędzie do testowania oprogramowania, które jest najbardziej odpowiednie do testowania aplikacji mobilnych na wielu różnych platformach, w tym zarówno na urządzeniach z systemem iOS, jak i Android. Appium oferuje użytkownikom dużą elastyczność w tworzeniu własnych ram i strategii testowania, jednocześnie korzystając z możliwości automatyzacji, jakie oferuje Appium.

 

3. Loadium

 

Loadium to narzędzie do testowania niefunkcjonalnego, które jest najlepiej wykorzystywane do przeprowadzania testów wydajnościowych i testów obciążenia, dwóch rodzajów testów niefunkcjonalnych, które są znacznie łatwiejsze do przeprowadzenia przy użyciu narzędzi automatyzacji.

Loadium umożliwia użytkownikom przeprowadzanie testów obciążeniowych na dużą skalę i oferuje niestandardowe rozwiązania, dzięki czemu można dostosować testy do celów oprogramowania.

Możesz wypróbować Loadium za darmo lub zapłacić za pobranie pełnej wersji aplikacji.

 

4. Obkio

 

Obkio jest narzędziem do testowania oprogramowania, które pomaga kierownikom działów QA i kierownikom testów nadawać priorytety i kategoryzować problemy na podstawie tego, jak bardzo są poważne. Obkio może wykryć problemy zanim zrobią to użytkownicy, oferuje użytkownikom inteligentne powiadomienia i może pomóc w wykryciu, gdzie jest problem.

Obkio nie jest tylko do testowania niefunkcjonalnego, ale jest bardzo użytecznym darmowym narzędziem do testowania, które może być wykorzystane na wszystkich etapach cyklu życia testów.

 

5. SonarQube

 

SonarQube to open-source’owe narzędzie do testowania bezpieczeństwa, które może automatycznie analizować kod w celu wykrycia błędów i luk. Napisany w Javie, możesz użyć SonarQube do analizy kodu w ponad dwudziestu różnych językach programowania, a czysty interfejs systemu ułatwia wykrycie problemów, które mogą spowodować luki bezpieczeństwa w przyszłości.

 

6. Tsung

 

Tsung to kolejne narzędzie do testowania niefunkcjonalnego, które jest idealne, jeśli chcesz zautomatyzować testy obciążeniowe i obciążeniowe, ale nie radzisz sobie z darmową wersją Loadium.

Tsung jest narzędziem open-source, które pozwala użytkownikom przeprowadzać wysokonakładowe testy obciążeniowe na wielu protokołach i serwerach, w tym HTTP i SOAP.

Tsung jest całkowicie darmowy i może pomóc testerom w upewnieniu się, że oprogramowanie, nad którym pracują, oferuje wysoki poziom wydajności w różnych trudnych warunkach.

 

7. Sikuli

 

Sikuli to kolejna aplikacja, która wykorzystuje automatyzację procesów robotycznych do automatyzacji procesu testowania. Aplikacja może zautomatyzować wszystko, co widać na ekranie. Możesz użyć Sikuli do testowania aplikacji nie opartych na stronie internetowej i do szybkiego odtwarzania błędów.

 

Testy niefunkcjonalne lista kontrolna, wskazówki i triki

Lista kontrolna testowania oprogramowania

Przed rozpoczęciem testów niefunkcjonalnych sprawdź, czy masz wszystko, co jest potrzebne do przeprowadzenia dokładnych testów niefunkcjonalnych w przygotowanym środowisku.

Wykonaj poniższą listę kontrolną, aby uzyskać wskazówki i sztuczki przed rozpoczęciem testów niefunkcjonalnych.

 

1. Pracuj zgodnie z harmonogramem

 

Niezależnie od tego, czy włączysz go do planu testów, czy stworzysz dla niego osobny dokument, zorganizuj swoje testy oprogramowania wokół harmonogramu testów.

Jeśli znajdziesz więcej błędów i defektów niż się spodziewasz, możesz czasem zbaczać z harmonogramu, ale posiadanie harmonogramu na początek może pomóc w prowadzeniu testerów i zmotywować ich do efektywnej pracy, zwłaszcza podczas przeprowadzania czasochłonnych testów manualnych.

 

2. Zidentyfikuj swój zespół testowy

 

Delegowanie obowiązków i przypisywanie członkom zespołu testowego oficjalnych ról i tytułów może pomóc upewnić się, że proces testowania przebiega płynnie.

Jasno komunikuj role i obowiązki w zespole przed rozpoczęciem testów i przydziel różnym testerom odpowiedzialność za różne aspekty testów niefunkcjonalnych, tak aby każdy był odpowiedzialny za swoje zadania.

 

3. Wybierz narzędzia i technologie przed testowaniem

 

Jeśli zdecydujesz się na pracę z konkretnymi narzędziami i technologią dopiero po rozpoczęciu testów niefunkcjonalnych, może to wstrzymać proces testowania i spowodować zamieszanie wśród testerów.

Zamiast tego, wykonaj badania z wyprzedzeniem i zdecyduj, czy są jakieś narzędzia, które chcesz wykorzystać przed rozpoczęciem testów. Dzięki temu łatwo jest włączyć te narzędzia do planu testów i przeszkolić testerów w ich używaniu przed rozpoczęciem testów.

 

4. Zawsze uzyskuj formalny podpis na testach i dokumentacji

 

Testowanie to proces zapewnienia jakości, a najlepszym sposobem na zmaksymalizowanie wartości testów, które przeprowadzasz, jest wykonanie podstawowego QA na testach, które planujesz i uruchamiasz również.

Wprowadzić proste protokoły, które wymagają od testerów, aby poprosili kierowników działu QA i menedżerów o przejrzenie i podpisanie planów testów i raportów z testów przed przejściem do następnego etapu.

To ogromnie zwiększa szansę, że błędy w testowaniu zostaną wcześnie wychwycone i naprawione.

 

7 błędów i pułapek, których należy unikać podczas wdrażania testów niefunkcjonalnych

Porównanie testów UAT do testów regresyjnych i innych

Jeśli jesteś nowy w testowaniu niefunkcjonalnym, może być łatwo popełnić kilka wspólnych błędów, w które często wpadają testerzy i specjaliści QA.

Testowanie niefunkcjonalne jest złożoną pracą, która wymaga rozpatrywania budowy oprogramowania ze wszystkich kątów i perspektyw.

Poniżej znajduje się lista niektórych z najczęstszych pułapek, które testerzy popełniają podczas wykonywania testów niefunkcjonalnych.

 

1. Brak planowania

 

Jeśli jesteś nowy w testowaniu niefunkcjonalnym, możesz myśleć, że możesz po prostu zanurkować prosto do etapu testowania bez wcześniejszego tworzenia dokładnego planu testów.

Niektóre zespoły testowe mogą składać niekompletne dokumenty testowe lub powierzchowne podsumowania planu testów, które nie nakreślają odpowiednio działań, jakie testerzy muszą podjąć podczas testów niefunkcjonalnych.

 

2. Nieumiejętne zarządzanie badaniami

 

Problemy mogą się pojawić, jeśli testy są źle zarządzane na każdym etapie procesu testowania. Nieodpowiednie zarządzanie może oznaczać, że testerzy nie mają odpowiednich zasobów do dokładnego przeprowadzenia testów lub że testerzy nie mają wystarczająco dużo czasu na przetestowanie każdego aspektu budowy.

Kierownicy testów muszą być w stanie uczyć się na błędach, które popełniają i rozwijać bardziej efektywne plany testowania w przyszłości.

 

3. Słaba komunikacja

 

Słaba komunikacja może powodować wiele problemów podczas procesu testowania, szczególnie w ramach testów niefunkcjonalnych.

Może to oznaczać słabą komunikację wewnątrz zespołu testującego lub słabą komunikację pomiędzy testerami, deweloperami i interesariuszami.

Często zdarza się to, gdy testerzy nie utrzymują odpowiednio dokumentów testowych lub nie komunikują się regularnie z innymi działami podczas procesu testowania.

 

4. Ignorowanie deweloperów

 

Testerzy i deweloperzy zazwyczaj pracują całkiem oddzielnie od siebie, ale zespoły testujące, które ściśle współpracują z deweloperami, mogą skorzystać z dodatkowej wiedzy o tym, jak działa oprogramowanie i jak różne moduły współdziałają ze sobą.

Zaangażowanie deweloperów w proces testowania lub żądanie od nich informacji zwrotnych w kluczowych momentach może pomóc zespołom testującym w tworzeniu bardziej efektywnych i dokładnych planów testów.

 

5. Cel badania

 

Wielu testerów nadal uważa, że celem testowania jest sprawdzenie, czy oprogramowanie działa lub zademonstrowanie interesariuszom i inwestorom, że oprogramowanie działa.

Zamiast tego, testerzy powinni podejść do testowania z nastawieniem, że celem testowania jest szukanie defektów.

Testerzy, którzy nie znajdują defektów, mogą być zadowoleni, że testowane przez nich oprogramowanie jest wolne od błędów tylko wtedy, gdy są zadowoleni, że szukali wszędzie tam, gdzie można znaleźć defekty.

 

6. Błędy ręczne a błędy automatyzacji

 

Ważne jest, aby poświęcić czas na rozważenie, czy testowanie ręczne lub automatyczne jest lepsze dla każdego rodzaju testów, które przeprowadzasz.

Automatyczne metody testowania są bardzo dobrze przystosowane do prawie wszystkich form testowania niefunkcjonalnego, a zespoły testujące przyzwyczajone do testowania funkcjonalnego mogą popełnić błąd zakładając, że mogą testować niefunkcjonalne cechy ręcznie tak samo łatwo.

 

7. Używanie niewłaściwych narzędzi testowych

 

Łatwo jest wybrać niewłaściwe narzędzia i technologie testowe przed rozpoczęciem testów niefunkcjonalnych, zwłaszcza jeśli zespoły testujące są przyzwyczajone do przeprowadzania testów manualnych i nie są przyzwyczajone do korzystania z narzędzi testowych.

Zbadaj z wyprzedzeniem metody testowania niefunkcjonalnego, które chcesz zastosować, i wybierz narzędzia programowe i narzędzia automatyzacji, które spełniają specyficzne wymagania Twojego projektu.

 

Wniosek

Testowanie niefunkcjonalne jest istotnym krokiem w procesie testowania, który umożliwia testerom sprawdzenie, jak dobrze system działa i w jakim stopniu spełnia wymagania niefunkcjonalne, takie jak czas ładowania, pojemność i zabezpieczenie bezpieczeństwa.

Istnieje wiele różnych sposobów przeprowadzania testów niefunkcjonalnych, ale współczesne narzędzia automatyzacji ułatwiają maksymalizację pokrycia testowego i dokładności bez uszczerbku dla jakości wyników.

 

Najczęściej zadawane pytania i zasoby

Jeśli chcesz dowiedzieć się więcej o testach niefunkcjonalnych, istnieje wiele FAQ i zasobów dostępnych online.

Przeglądaj nasze ulubione zasoby online dotyczące testowania niefunkcjonalnego poniżej lub przeczytaj odpowiedzi na niektóre z najczęściej zadawanych pytań dotyczących testowania niefunkcjonalnego.

 

1. Najlepsze kursy z zakresu testowania niefunkcjonalnego

 

Istnieje wiele kursów dostępnych online, które mogą pomóc Ci poszerzyć swoją wiedzę na temat metod i podejść do testowania niefunkcjonalnego.

Niektóre z tych kursów są dostępne za darmo, a inne mogą oferować certyfikat lub kwalifikacje w zamian za opłatę. Jeśli chcesz podjąć akredytowany kurs, możesz zapytać swojego pracodawcę, czy będzie Cię sponsorował i pokryje koszty nauki.

 

Niektóre z najlepszych kursów dotyczących testowania niefunkcjonalnego obejmują:

 

  • TSG: Szkolenie niefunkcjonalne 2-dniowe

 

  • Udemy: The Complete 2023 Software Testing Bootcamp

 

  • Edx: Software Testing Professional Certificate

 

  • Edukacyjny: Automatyzacja testów wydajności 101

 

2. Jakie jest 5 najlepszych pytań na wywiad dotyczący testowania niefunkcjonalnego?

 

Jeśli przygotowujesz się do rozmowy kwalifikacyjnej do pracy w testowaniu oprogramowania, twój rozmówca może zadać ci pytania o testowanie niefunkcjonalne, aby upewnić się, że rozumiesz, jak działa ten istotny etap testowania oprogramowania. Przygotuj się do rozmowy kwalifikacyjnej, przygotowując z wyprzedzeniem skuteczne odpowiedzi na typowe pytania z rozmowy kwalifikacyjnej.

● Jak podejścia i metody, które stosujesz w testowaniu niefunkcjonalnym mogą się różnić od podejść, które stosujesz w testowaniu funkcjonalnym?

● Czym różni się testowanie niefunkcjonalne od funkcjonalnego?

● Jakie istnieją różne rodzaje testów niefunkcjonalnych?

● Jak nadawać priorytety testom funkcjonalnym i przypadkom testowym?

● Na jakim etapie testowania oprogramowania przeprowadza się zazwyczaj testy funkcjonalne?

 

3. Najlepsze tutoriale na YouTube dotyczące testowania niefunkcjonalnego

 

Jeśli wolisz uczyć się poprzez oglądanie filmów, możesz znaleźć tutoriale YouTube na temat testowania niefunkcjonalnego jako użyteczny sposób, aby dowiedzieć się więcej o tym rodzaju testowania oprogramowania.

Poniżej znajdują się jedne z najlepszych dostępnych obecnie tutoriali YouTube dotyczących testowania oprogramowania.

Czym jest niefunkcjonalne testowanie oprogramowania? Samouczek testowania oprogramowania
Pomoc w testowaniu oprogramowania: Testowanie niefunkcjonalne
Testy niefunkcjonalne w testowaniu oprogramowania
Odwiedź W3Schools
Testy funkcjonalne i niefunkcjonalne

 

4. Jak utrzymywać testy niefunkcjonalne

 

Właściwe utrzymanie testów zapewnia, że testy oprogramowania mogą być powtarzane bez uszczerbku dla jakości wyników testów.

Utrzymując testy niefunkcjonalne, możesz zapewnić, że testowanie na każdym etapie procesu rozwoju jest odpowiednie i że twoje testy są zawsze aktualizowane zgodnie z ciągle zmieniającym się kodem.

 

Możesz utrzymać testy niefunkcjonalne, stosując się do naszych wskazówek poniżej.

 

Komunikuj się jasno z całym zespołem testowym podczas tworzenia przypadków testowych i pisania dokumentacji

● Zawsze stosuj najlepsze praktyki projektowania testów

● Ponowna ocena protokołów badań na różnych etapach procesu badań

Aktualizuj zmiany w swoim teście na bieżąco

Uwzględnienie przyszłych projektów przy wprowadzaniu zmian do obecnych testów

 

5. Czy testy niefunkcjonalne to testy typu black box czy white box?

 

Testowanie niefunkcjonalne jest rodzajem testowania w czarnej skrzynce, co oznacza, że testerzy nie są zainteresowani wewnętrznym działaniem systemu, a jedynie jego zewnętrznymi wynikami.

To kontrastuje z testami białej skrzynki, które testują sposób, w jaki system działa wewnętrznie. Przykłady testów białej skrzynki obejmują testy jednostkowe i testy integracyjne.

Testowanie wymagań funkcjonalnych i niefunkcjonalnych to przykłady testów czarnej skrzynki. Oznacza to, że testerzy nie potrzebują zaawansowanych umiejętności technicznych ani znajomości programowania komputerowego, aby przeprowadzać testy czarnej skrzynki, nie muszą też uczyć się implementacji systemów, które testują.

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo