complete non functional testing guide
Kompletny przewodnik po testach niefunkcjonalnych: jego cel, typy, narzędzia, przypadki testowe z przykładami
Co to jest testowanie niefunkcjonalne?
Testy niefunkcjonalne są wykonywane w celu sprawdzenia niefunkcjonalnych wymagań aplikacji, takich jak wydajność, użyteczność itp.
Sprawdza, czy zachowanie systemu jest zgodne z wymaganiami, czy nie. Obejmuje wszystkie aspekty, które nie zostały uwzględnione testy funkcjonalności . W naszych codziennych testach wiele uwagi poświęcamy testom funkcjonalnym i wymaganiom funkcjonalnym.
Klienci są również zainteresowani spełnieniem wymagań funkcjonalnych, które są bezpośrednio związane z funkcjonalnością aplikacji. Ale w fazie rzeczywistej, tj. Kiedy jesteś testowany funkcjonalnie, oprogramowanie wchodzi na rynek i jest używane przez prawdziwych użytkowników końcowych, i są szanse, że napotka pewne problemy związane z wydajnością.
Problemy te nie są związane z funkcjonalnością systemu, ale mogą negatywnie wpływać na komfort użytkowania. Dlatego ważne jest, aby oprogramowanie lub aplikacja były testowane również pod kątem wymagań niefunkcjonalnych, aby uniknąć negatywnych doświadczeń klientów.
Testowanie można ogólnie podzielić na dwa typy:
- Testy funkcjonalności
- Testowanie niefunkcjonalne
Czego się nauczysz:
- Znaczenie
- Cel, powód
- Przykład
- Zalety
- Jak wychwycić wymagania niefunkcjonalne?
- Różnica w wymaganiach funkcjonalnych i niefunkcjonalnych
- Czy to test czarnoskrzynkowy czy białoskrzynkowy?
- Lista kontrolna niefunkcjonalnych przypadków testowych
- Dokument podejścia
- Rodzaje testów niefunkcjonalnych
- Niefunkcjonalne narzędzia testowe
- Wniosek
- rekomendowane lektury
Znaczenie
Testom tym brakowało należytej uwagi, biorąc pod uwagę, że nie mają one wpływu na funkcjonalność systemu.
We wcześniejszych cyklach testowych również nie poświęcono należytej uwagi wymaganiom niefunkcjonalnym. Jednak to się teraz zmieniło. Testy niefunkcjonalne są teraz najważniejsze, ponieważ uwzględniają obecnie wszystkie problemy z wydajnością i bezpieczeństwem aplikacji.
To testowanie ma większy wpływ na aplikacje, jeśli chodzi o wydajność aplikacji przy dużym ruchu użytkowników. Te testy zapewniają, że aplikacja jest stabilna i jest w stanie wytrzymać obciążenie w ekstremalnych warunkach.
Jak sama nazwa wskazuje, testowanie koncentruje się na niefunkcjonalnym aspekcie aplikacji. Więc jakie są aspekty niefunkcjonalne? A może powinienem powiedzieć, jakie są funkcje, które nie są związane z funkcjonalnością aplikacji?
Oto odpowiedzi na te:
- Jak aplikacja działa w normalnych okolicznościach?
- Jak zachowuje się aplikacja, gdy zbyt wielu użytkowników loguje się jednocześnie?
- Czy aplikacja radzi sobie ze stresem?
- Jak bezpieczna jest aplikacja?
- Czy aplikacja może odzyskać sprawność po awarii?
- Czy aplikacja może zachowywać się w ten sam sposób w innym środowisku lub systemie operacyjnym?
- Jak łatwo jest przenieść aplikację do innego systemu?
- Czy dokumenty / instrukcja obsługi dostarczone wraz z aplikacją są łatwe do zrozumienia?
Lista jest długa. Ale chodzi o to, że - czy te cechy nie mają wpływu na jakość aplikacji? Odpowiedź brzmi tak. Te cechy są równie ważne.
Wyobraź sobie, że aplikacja doskonale spełnia wszystkie wymagania użytkownika, ale jakiś nieautoryzowany użytkownik z łatwością przechodzi i łamie dane wprowadzone przez użytkownika do aplikacji lub aplikacja umiera, gdy załaduje się więcej niż 5BB dowolnego pliku. Czy powiedziałbyś, że aplikacja jest dobrej jakości? Oczywiście nie w porządku !!
Cel, powód
Jedynym celem tego typu testów jest upewnienie się, że niefunkcjonalne aspekty aplikacji są testowane, a aplikacja działa dobrze w tym samym kontekście.
Celem jest zbadanie wszystkich cech aplikacji, które pomagają w dostarczeniu aplikacji spełniającej oczekiwania biznesowe.
Przykład
To ważny rodzaj testów.
Testowanie funkcjonalne sprawdza funkcjonalność aplikacji i zapewnia, że działa ona zgodnie z oczekiwaniami, ale testy niefunkcjonalne zapewniają, że aplikacja działa wystarczająco dobrze, aby spełnić oczekiwania biznesowe.
Aby zrozumieć jego znaczenie, weźmy prosty przykład:
Aplikacja jest tworzona i całkowicie testowana pod kątem funkcjonalności, ale testy niefunkcjonalne nie są wykonywane na tej samej aplikacji.
W międzyczasie, gdy aplikacja zostanie uruchomiona, może to spowodować krytyczne lub poważne problemy, takie jak zwiększenie obciążenia aplikacji, staje się ona zbyt wolna i jej otwieranie zajmuje dużo czasu.
Czas odpowiedzi może się wydłużyć lub gdy obciążenie zostanie zwiększone do pewnego stopnia, aplikacja może się zawiesić. To pokazuje, jak ważne jest testowanie niefunkcjonalnych aspektów aplikacji.
Zalety
Poniżej podano niektóre zalety testu niefunkcjonalnego:
- Obejmuje testy, które nie mogą być objęte testami funkcjonalnymi.
- Zapewnia, że aplikacja działa wydajnie i jest wystarczająco niezawodna.
- Zapewnia bezpieczeństwo aplikacji.
Jak wychwycić wymagania niefunkcjonalne?
Podczas przeprowadzania testów koncentrujemy się głównie na testach funkcjonalnych, które sprawdzają funkcjonalność produktu. Jednak testowanie niefunkcjonalne jest równie ważne jak testowanie funkcjonalne, a jego wymagania należy brać pod uwagę od samego początku istnienia produktu.
Wymagania niefunkcjonalne służą do przeprowadzania testów niefunkcjonalnych. Wymagania te obejmują wydajność, której oczekuje się od aplikacji lub testowanego oprogramowania. Zasadniczo obejmuje to czas potrzebny oprogramowaniu do obsługi określonego systemu.
Wymagania niefunkcjonalne uwzględniają również zachowanie, gdy duża liczba osób korzysta z oprogramowania w tym samym czasie. W większości przypadków serwery są zajęte lub niedostępne z powodu dużego obciążenia (tj. Korzysta z nich więcej osób w tym samym czasie). Rezerwacja biletów kolejowych online może być najlepsza przykład takiej sytuacji.
W związku z tym prawidłowe udokumentowanie wymagania niefunkcjonalnego i prawidłowe wykonanie testów zapewni wysoki poziom satysfakcji z użyteczności przez potencjalnych klientów.
Chociaż testy te nie mają bezpośredniego wpływu biznesowego na funkcjonalność systemu, mogą w większym stopniu zwiększyć komfort użytkowania i przyjazność dla użytkownika, co z kolei będzie miało większy wpływ na jakość oprogramowania.
Przykład:
Rozważmy ten sam przykład strony logowania na Facebooku. W tym przypadku zakres testów niefunkcjonalnych polega na zanotowaniu czasu wymaganego przez system do zalogowania się do Facebooka po wprowadzeniu ważnych danych uwierzytelniających.
Można również sprawdzić, kiedy (powiedzmy 100) użytkownicy logują się w tym samym czasie, ile czasu zajmuje zalogowanie użytkownika na Facebooku.
Gwarantuje to, że system może obsłużyć obciążenie i ruch, co z kolei zapewnia dobre wrażenia użytkownika.
W zwinności wymaganie niefunkcjonalne powinno zostać uchwycone za pomocą danych wejściowych.
Wymaganie niefunkcjonalne powinno być ujęte jako:
- Historie użytkownika / techniczne
- W kryteriach akceptacji
- W Artefakcie
9
# 1) Historie użytkownika / techniczne
Niefunkcjonalne wymaganie można przechwycić za pomocą historie użytkownika lub historie techniczne. Przechwytywanie wymagań niefunkcjonalnych jako historyjki użytkownika jest takie samo, jak przechwytywanie dowolnego innego wymagania. Jedyną różnicą w historii użytkownika i historii technicznej jest to, że historia użytkownika wymaga dyskusji i jest widoczna.
# 2) Kryteria akceptacji
Kryteria przyjęcia to punkt, który jest zdefiniowany w celu przyjęcia produktu przez klienta, tj. aby produkt został zaakceptowany do zdefiniowanych punktów, powinien być w stanie pozytywnym.
Kryteria akceptacji powinny zawierać wymaganie niefunkcjonalne, ale czasami nie jest możliwe przetestowanie wymagań niefunkcjonalnych z każdą historią, tj. W każdej iteracji. W związku z tym wymagania należy dodawać lub testować tylko za pomocą odpowiedniej iteracji.
# 3) W artefaktach
Dla wymagań niefunkcjonalnych należy przygotować osobny artefakt, co z kolei pomogłoby w lepszym zrozumieniu tego, co należy przetestować i jak można to zrobić w iteracjach.
Różnica w wymaganiach funkcjonalnych i niefunkcjonalnych
Istnieje kilka różnic między wymaganiami funkcjonalnymi i niefunkcjonalnymi, a kilka z nich przedstawiono poniżej:
S.No. | Wymagania funkcjonalne | Wymaganie niefunkcjonalne |
---|---|---|
Wydajność | Testerzy wydajności za pomocą narzędzia, które traktuje operację jako transakcję wykonywaną przez określoną liczbę jednoczesnych użytkowników, podczas gdy tester analizuje całą logistykę | Czas odpowiedzi |
1 | Wymóg funkcjonalny jest oparty na kliencie. | Wymaganie niefunkcjonalne opiera się na programistach i wiedzy technicznej zespołu. |
dwa | Wymaganie funkcjonalne określa, które funkcje należy wziąć pod uwagę, tj. Co należy przetestować. | Wymagania niefunkcjonalne określają sposób testowania. |
3 | Testy funkcjonalne są wykonywane przed uruchomieniem aplikacji. | Wymagania niefunkcjonalne obejmują testy konserwacyjne, testy dokumentacji, które nie są wymagane podczas wykonywania, ale aplikacja została uruchomiona. |
4 | Jest to znane tylko jako wymaganie funkcjonalne. | Znane również jako wymagania jakościowe. |
5 | Plan wdrożenia wymagań funkcjonalnych jest określony w dokumencie projektowym systemu. | Plan implementacji wymagania niefunkcjonalnego jest zdefiniowany w architekturze systemu. |
6 | Wymagania funkcjonalne obejmują testowanie funkcjonalności technicznej systemu. | Wymóg niefunkcjonalny obejmuje takie cechy, jak bezpieczeństwo, użyteczność itp. |
Dalsza lektura => Różnice między testami funkcjonalnymi i niefunkcjonalnymi
Czy to test czarnoskrzynkowy czy białoskrzynkowy?
Test niefunkcjonalny jest objęty zakresem a testowanie czarnoskrzynkowe technika.
Technika ta nie ogranicza się tylko do testowania funkcjonalności, ale może być również stosowana do testowania wymagań niefunkcjonalnych, jak również wydajności, użyteczności itp. Technika testowania czarnoskrzynkowego nie wymaga żadnej znajomości systemu wewnętrznego, tj. Nie wymaga znajomość kodu testerowi.
Lista kontrolna niefunkcjonalnych przypadków testowych
Lista kontrolna służy do upewnienia się, że żaden ważny aspekt nie pozostanie bez testów.
Lista kontrolna jest zwykle używana, gdy nie ma czasu na dokumentację, a produkt musi zostać przetestowany lub gdy istnieje ograniczenie czasowe, można skorzystać z listy kontrolnej, aby upewnić się, że uwzględniono wszystkie ważne aspekty.
Zobaczmyprzykładlisty kontrolnej testów wydajności, bezpieczeństwa i dokumentacji.
Lista kontrolna do testowania wydajności
- Czas odpowiedzi aplikacji należy zweryfikować, tj. jak długo trwa ładowanie aplikacji, każde wejście podane do aplikacji zapewnia wynik w jakim czasie, odświeżenie przeglądarki itp.
- Wydajność należy zweryfikować liczbę transakcji zakończonych podczas testu obciążenia.
- Środowisko konfiguracja powinna być taka sama, jak środowisko na żywo, inaczej wyniki nie byłyby takie same.
- Czas przetwarzania - Czynności procesowe, takie jak import i eksport programu Excel, należy przetestować wszelkie obliczenia w aplikacji.
- Interoperacyjność powinno zostać zweryfikowane, tj. oprogramowanie powinno być w stanie współdziałać z innym oprogramowaniem lub systemami.
- ETL należy zweryfikować czas, czyli czas potrzebny na wyodrębnienie, przekształcenie i załadowanie danych z jednej bazy danych do drugiej.
- Zwiększanie obciążenia na wniosku należy zweryfikować.
Lista kontrolna do testowania bezpieczeństwa
- Poświadczenie: Tylko autentyczny użytkownik powinien móc się zalogować.
- Upoważniony: Użytkownik powinien mieć możliwość logowania się do tych modułów tylko do których jest uprawniony lub do których ma dostęp.
- Hasło: Wymagane hasło powinno zostać zweryfikowane, tj. Hasło powinno być zgodne z definicją w wymaganiu, tj. Długość, znaki specjalne, cyfry itp.
- Koniec czasu: Jeśli aplikacja jest nieaktywna, powinna wygasnąć w określonym czasie.
- Backup danych: Kopię zapasową danych należy wykonać w określonym czasie i skopiować do zabezpieczonej lokalizacji.
- Linki wewnętrzne do aplikacji internetowej nie powinny być dostępne po umieszczeniu bezpośrednio w przeglądarce.
- Cała komunikacja powinna być szyfrowana.
Lista kontrolna do testowania dokumentacji
- Dokumentacja użytkownika i systemu.
- Dokumenty do celów szkoleniowych.
Dokument podejścia
Opracuj konkretny dokument dotyczący podejścia do etapu testów wydajnościowych, udoskonalając ogólną strategię testów. To podejście do testowania prowadzi do planowania i wykonywania wszystkich zadań testu wydajności.
konwerter youtube na mp4 do pobrania za darmo w pełnej wersji
- Zakres testu
- Metryki testowe
- Narzędzia testowe
- Najważniejsze daty i elementy dostarczane
Zakres testu
Przeprowadzaj testy wydajności z różnych perspektyw, takich jak wydajność użytkowników, procesy biznesowe, stabilność systemu, zużycie zasobów i tak dalej. Rodzaje testów wydajnościowych, które należy wykonać, omówiono w powyższej sekcji artykułu (np. Test obciążenia, test obciążeniowy itp.)
Metryki testowe
Podejście Testowe precyzuje metryki do pomiaru i raportowania podczas testowania, takie jak:
- Czas odpowiedzi (online)
- Okno partii (partia)
- Wydajność ( Na przykład liczba transakcji w jednostce czasu)
- Wykorzystanie ( Na przykład , procent wykorzystanych zasobów)
Narzędzia testowe
Przeważnie testy wydajnościowe wymagają użycia odpowiednich narzędzi:
- Narzędzia do generowania obciążenia
- Narzędzia do monitorowania wydajności
- Narzędzia do analizy wydajności
- Narzędzia do profilowania aplikacji
- Narzędzia do podszewek.
Najważniejsze daty i elementy dostarczane
Dokument dotyczący podejścia do testu wydajności powinien opisywać następujące elementy:
- Data i godzina każdego przeprowadzenia testu wydajności.
- Rodzaje testów i połączenie funkcjonalności, które należy uwzględnić w każdym przeprowadzeniu testu wydajności.
- Daty zakończenia testów wydajności.
Rodzaje testów niefunkcjonalnych
Poniższy obraz przedstawia typy testów niefunkcjonalnych:
Test wydajności:
Ocenia ogólną wydajność systemu .
Kluczowe elementy są następujące:
- Sprawdza, czy system osiągnął oczekiwany czas odpowiedzi.
- Ocenia, czy istotne elementy aplikacji spełniają żądany czas odpowiedzi.
- Można go również przeprowadzić w ramach testów integracyjnych i testów systemowych.
Testowanie obciążenia:
Ocenia, czy działanie systemu jest zgodne z oczekiwaniami w normalnych i oczekiwanych warunkach.
Kluczowe punkty to:
- Sprawdza, czy system działa zgodnie z oczekiwaniami, gdy współbieżni użytkownicy uzyskują dostęp do aplikacji i uzyskują oczekiwany czas odpowiedzi.
- Ten test jest powtarzany dla wielu użytkowników, aby uzyskać czas odpowiedzi i przepustowość.
- W czasie testowania baza danych powinna być realistyczna.
- Test należy przeprowadzić na dedykowanym serwerze, który stymuluje rzeczywiste środowisko.
Test naprężeń:
Ocenia, czy wydajność systemu jest zgodna z oczekiwaniami, gdy brakuje zasobów.
Kluczowe punkty to:
- Testuj na małej ilości pamięci lub wolnego miejsca na dysku na klientach / serwerach, które ujawniają wady, których nie można znaleźć w normalnych warunkach.
- Wielu użytkowników wykonuje te same transakcje na tych samych danych.
- Wielu klientów jest połączonych z serwerami z różnymi obciążeniami.
- Skróć czas myślenia do „zera”, aby maksymalnie zestresować serwery.
Pomyśl o czasie: Podobnie jak przedział czasu między wpisaniem użytkownika i hasła.
Testowanie objętości:
Ocenia zachowanie oprogramowania w przypadku dużej ilości danych.
Kluczowe punkty to:
- Gdy oprogramowanie jest narażone na duże ilości danych, sprawdza limit, w którym oprogramowanie zawiedzie.
- Tworzony jest maksymalny rozmiar bazy danych, a wielu klientów wysyła zapytania do bazy danych lub tworzy większy raport.
- Przykład - Jeśli aplikacja przetwarza bazę danych w celu utworzenia raportu, test wolumenu polegałby na użyciu dużego zestawu wyników i sprawdzeniu, czy raport jest drukowany poprawnie.
Test użyteczności:
Ocenia system do użytku przez ludzi lub sprawdza, czy nadaje się do użytku.
Kluczowe punkty to:
- Czy dane wyjściowe są poprawne i znaczące oraz czy są takie same, jak oczekiwano w firmie?
- Czy błędy zostały prawidłowo zdiagnozowane?
- Czy GUI jest poprawne i zgodne ze standardem?
- Czy aplikacja jest łatwa w użyciu?
Testowanie interfejsu użytkownika:
Ocenia GUI.
Kluczowe punkty to:
- Graficzny interfejs użytkownika powinien zapewniać pomoc i podpowiedzi, aby był łatwy w użyciu.
- Spójny w swoim wyglądzie?
- Dane są przesyłane poprawnie z jednej strony na drugą?
- Graficzny interfejs użytkownika nie powinien denerwować użytkownika ani utrudniać zrozumienia.
Testowanie zgodności:
Ocenia, czy aplikacja jest kompatybilna z innym sprzętem / oprogramowaniem przy minimalnej i maksymalnej konfiguracji.
Kluczowe punkty to:
- Przetestuj każdy sprzęt z minimalną i maksymalną konfiguracją.
- Przetestuj w różnych przeglądarkach.
Przypadki testowe są takie same, jak te, które zostały wykonane podczas testów funkcjonalnych. - W przypadku, gdy liczba sprzętu i oprogramowania jest zbyt duża, możemy użyć technik OATS, aby uzyskać przypadki testowe, aby uzyskać maksymalne pokrycie.
Testowanie regeneracji:
Ocenia, czy aplikacja kończy się bezproblemowo w przypadku jakiejkolwiek awarii, a dane są odpowiednio odzyskiwane z wszelkich awarii sprzętu i oprogramowania.
Testy nie są ograniczone do poniższych punktów:
- Przerwa w zasilaniu klienta podczas wykonywania czynności CURD.
- Nieprawidłowe wskaźniki i klucze bazy danych.
- Proces bazy danych został przerwany lub przedwcześnie zakończony.
- Wskaźniki bazy danych, pola i klucze są uszkodzone ręcznie i bezpośrednio w bazie danych.
- Fizycznie odłącz komunikację, wyłącz zasilanie, wyłącz routery i serwery sieciowe.
Testowanie niestabilności:
Ocenia i potwierdza, czy oprogramowanie jest poprawnie instalowane i odinstalowywane.
c ++ wbudowane funkcje
Kluczowe punkty to:
- Sprawdza, czy składniki systemu są poprawnie zainstalowane na wyznaczonym sprzęcie.
- Sprawdza, czy nawigacja na nowym komputerze aktualizuje istniejącą instalację i starsze wersje.
- Potwierdza, że przy niewystarczającej ilości miejsca na dysku nie ma niedopuszczalnego zachowania.
Testowanie dokumentacji:
Ocenia dokumenty i inne podręczniki użytkownika.
Kluczowe punkty obejmują:
- Potwierdza, że podane dokumenty są dostępne w produkcie.
- Sprawdza wszystkie podręczniki użytkownika, konfiguruje instrukcje, czyta pliki, uwagi do wydania i pomoc online.
Testowanie awaryjne:
Testy przełączania awaryjnego są wykonywane w celu sprawdzenia, czy w przypadku awarii systemu system jest w stanie obsłużyć dodatkowe zasoby, takie jak serwery.
Aby zapobiec takiej sytuacji, dużą rolę odgrywają testy kopii zapasowych. Tworzenie systemu kopii zapasowych jest tym, o co chodzi w tym procesie. Jeśli kopia zapasowa jest dostępna, pomaga odzyskać system.
Testy bezpieczeństwa:
Testy bezpieczeństwa ma na celu zapewnienie, że aplikacja nie ma luk, które mogłyby prowadzić do utraty danych lub zagrożeń. Jest to jeden z ważnych aspektów testowania niefunkcjonalnego i jeśli nie zostanie wykonany prawidłowo, może prowadzić do zagrożeń bezpieczeństwa.
Obejmuje testowanie uwierzytelniania, autoryzacji, integralności i dostępności.
Testowanie skalowalności:
Testowanie skalowalności ma na celu sprawdzenie, czy aplikacja jest w stanie obsłużyć zwiększony ruch, liczbę transakcji, wolumen danych itp. System powinien działać zgodnie z oczekiwaniami, gdy ilość danych lub zmiana rozmiaru danych zostanie zakończona.
Testy zgodności:
Testy zgodności są wykonywane w celu sprawdzenia, czy określone standardy są przestrzegane, czy nie. Audyty mają na celu sprawdzenie tego samego.
Dla Przykład , Audyty są przeprowadzane w celu weryfikacji procesu tworzenia przypadków testowych / planów testów i umieszczania ich we współdzielonej lokalizacji o standardowej nazwie, która jest wykonywana lub nie. W kontroli jakości podczas nazywania przypadków testowych jest stosowana lub nie standardowa nazwa przypadku testowego. Dokumentacja jest kompletna i zatwierdzona lub nie.
To kilka wskazówek, które są uwzględniane podczas audytu.
Testy wytrzymałościowe:
Testowanie wytrzymałości ma na celu zweryfikowanie zachowania systemu, gdy obciążenie jest zwiększane przez długi czas.
Nazywa się to również testowaniem zanurzeniowym i testowaniem wydajności. Pomaga to sprawdzić, czy w systemie nie ma wycieków pamięci. Testy wytrzymałościowe to podzbiór testów obciążeniowych.
Testowanie lokalizacji:
Testowanie lokalizacji ma na celu weryfikację aplikacji w różnych językach, tj. w różnych lokalizacjach. Aplikacja powinna zostać zweryfikowana pod kątem określonej kultury lub lokalizacji. Głównym celem jest przetestowanie zawartości, GUI aplikacji.
Testowanie internacjonalizacji:
Testowanie internacjonalizacji jest również znany jako testowanie i18n.
I18n reprezentuje I - osiemnaście liter - N. Robi się to w celu sprawdzenia, czy aplikacja działa zgodnie z oczekiwaniami we wszystkich ustawieniach języka. Sprawdza, czy żadna funkcjonalność lub sama aplikacja nie psuje się, tj. Aplikacja powinna być wystarczająco zdolna do obsługi wszystkich ustawień międzynarodowych.
Sprawdza również, czy aplikacja została zainstalowana bez żadnych problemów.
Testowanie niezawodności:
Testowanie niezawodności ma na celu sprawdzenie, czy aplikacja jest niezawodna i jest testowana przez określony czas w zdefiniowanym środowisku. Aplikacja powinna za każdym razem dawać takie same wyniki, jak oczekiwano, tylko wtedy można ją uznać za wiarygodną.
Testowanie przenośności:
Testowanie przenośności przeprowadza się w celu sprawdzenia, czy w przypadku, gdy oprogramowanie / aplikacja jest instalowane w innym systemie lub na innej platformie, powinno działać zgodnie z oczekiwaniami, tj. Zmiana środowiska nie powinna mieć wpływu na żadną funkcjonalność.
Podczas testowania wymagane jest również przetestowanie zmiany w konfiguracji sprzętowej, takiej jak miejsce na dysku twardym, procesor, a także z różnymi systemami operacyjnymi, aby zapewnić prawidłowe działanie aplikacji i oczekiwane działanie.
Testowanie podstawowe:
Testowanie podstawowe jest również znane jako testy porównawcze ponieważ tworzy podstawę do testowania każdej nowej aplikacji.
Na przykład: W pierwszej iteracji czas odpowiedzi aplikacji wynosił 3 sekundy. Teraz zostało to ustawione jako punkt odniesienia dla następnej iteracji, aw następnej iteracji czas odpowiedzi zmienia się na 2 sekundy. Zasadniczo jest to dokument walidacyjny, który służy jako podstawa do przyszłych odniesień.
Testowanie wydajności:
Testy wydajności są wykonywane w celu sprawdzenia, czy aplikacja działa wydajnie i ile wymaganych zasobów, wymagane narzędzia, złożoność, wymagania klienta, wymagane środowisko, czas, jaki to rodzaj projektu itp.
Oto niektóre ze wskazówek, które pomogłyby określić, jak wydajnie działałaby aplikacja, gdyby wszystkie rozważane parametry działały zgodnie z oczekiwaniami.
Testowanie odtwarzania po awarii:
Testowanie to ma na celu zweryfikowanie współczynnika powodzenia przywracania aplikacji lub systemu w przypadku wystąpienia jakiejkolwiek krytycznej awarii oraz tego, czy system jest w stanie przywrócić dane i aplikację, czy też system może z łatwością poradzić sobie z przywróceniem wcześniejszego działania, tj. front operacyjny.
Testowanie konserwacyjności:
Po uruchomieniu aplikacji / produktu istnieje szansa, że problem pojawi się w aktywnym środowisku lub klient może chcieć ulepszenia aplikacji, która już działa.
W takim przypadku dostępny jest zespół testowy, który przetestuje wspomniane powyżej scenariusze. Po uruchomieniu aplikacja nadal wymaga konserwacji, nad którą pracuje zespół testujący.
Niefunkcjonalne narzędzia testowe
Na rynku dostępnych jest kilka narzędzi do testowania wydajności (obciążenia i obciążenia).
Kilka z nich jest wymienionych poniżej:
- JMeter
- Loadster
- Loadrunner
- Loadstorm
- Neoload
- Prognoza
- Ładowanie zakończone
- Narzędzie Webserver Stress Tool
- WebLoad Professional
- Loadtracer
- vPerformer
Czy testy niefunkcjonalne są zawsze przeprowadzane bez dokumentacji i przypadków testowych? Dlaczego?
„Zawsze uczymy się, jak pisać funkcjonalne przypadki testowe. Dlaczego? Czy „testowanie niefunkcjonalne” przeprowadza się bez dokumentacji (innymi słowy, na zasadzie ad hoc), czy też jest to oddzielny proces, który jest znacznie trudniejszy do zrozumienia? W jaki sposób są pisane przypadki testowe dla różnych rodzajów testów, które mają miejsce w aplikacji? ”
To jedno z najbardziej oryginalnych, charakterystycznych i nieszablonowych pytań, jakie ostatnio mi zadano. Znajdźmy odpowiedź.
Dlaczego nigdy nie możemy zobaczyć i poćwiczyć pisania niefunkcjonalnych przypadków testowych?
Zacznijmy od tego, co wiemy i jak zwykle od praktycznego scenariusza.
Przykład: Poniżej przedstawiono kroki, które należy wykonać w aplikacji bankowości internetowej, aby wykonać przelew. Użyjmy tego jako naszego testu w celach informacyjnych.
- Zaloguj się do serwisu.
- Wybierz konto bankowe.
- Wybierz odbiorcę (ten odbiorca może należeć do tego samego banku lub innego - zależy to od wyboru danych do wykonania tego kroku. W każdym razie wybierz jednego. Ponadto zakładamy, że odbiorca jest już dodany). .
- Wprowadź kwotę do przelewu (wartość dodatnia, w ramach limitu, prawidłowy format itp.).
- Kliknij Przenieś i sprawdź, czy otrzymałeś potwierdzenie, saldo konta zostało zaktualizowane i tak dalej.
To jest funkcjonalny przypadek testowy, prawda?
Na tej samej aplikacji, na tej samej stronie transferów, powiedzmy, że wykonujemy Testowanie wydajności, bezpieczeństwa i użyteczności . To są typy niefunkcjonalne, prawda?
Jak napisalibyśmy przypadki testowe?
# 1) Testowanie użyteczności Przypadki testowe
Testowanie użyteczności to gatunek testowania oprogramowania, który zajmuje się doświadczeniem użytkownika. Oto niektóre z pytań, na które staramy się odpowiedzieć.
- Jak łatwa jest obsługa aplikacji?
- Jak satysfakcjonujące jest korzystanie z systemu?
- Jeśli nie tak znajomo od razu, jak łatwo jest się nauczyć?
Więcej informacji na ten temat można znaleźć tutaj: Przewodnik po testowaniu użyteczności
Jak użytkownik określiłby odpowiedzi na powyższe pytania w kontekście testów użyteczności?
Użytkownik wykonałby dokładnie te same kroki, co w przypadku testu funkcjonalnego. Czy mam rację?
# 2) Testowanie wydajności Przypadki testowe
Istnieje kilka odmian testowania wydajności, ale zasadniczo służy do uzyskiwania statystyk dotyczących systemu, jego wykorzystania zasobów, czasu odpowiedzi, zużycia sieci itp. W różnych punktach obciążenia.
Sprawdź nasze Samouczki testowania wydajności aby dowiedzieć się więcej na ten temat.
Teraz, gdybym miał przetestować wydajność transakcji transferów, miałbym 10, 20, 30, 100… 1000… itd. Użytkowników wykonujących operację transferu jednocześnie lub przyrostowo, w zależności od tego, do czego chcę kierować i na temat których chcę zebrać dane.
Jakie kroki powinien wykonać każdy użytkownik, aby skorzystać z transferu w trakcie testu wydajności?
Dokładnie takie same kroki jak w teście funkcjonalnym, prawda?
# 3) Testowanie bezpieczeństwa przypadków
Testowanie bezpieczeństwa to gałąź kontroli jakości, która pomaga uczynić systemy oprogramowania odpornymi na włamania. Identyfikuje podatności (potencjalne obszary problemowe w systemie oprogramowania), wykorzystuje je za pomocą technik penetracyjnych lub testowania białego kapelusza, a po znalezieniu luk są one opracowywane.
Kiedy chcę sprawdzić, czy przelewy są odporne na włamania i czy są poprawnie kierowane do zamierzonych odbiorców oraz czy w całym procesie nie ma czarnych punktów? Wykonałbym transfer, podczas gdy proces monitorowania wycieków bezpieczeństwa będzie przebiegał równolegle.
Dlatego w efekcie wykonuję dokładnie te same kroki, które normalnie zrobiłbym w przypadku testu funkcjonalnego.
Myślę, że mamy wystarczająco dużo, aby ustalić, że kroki we wszystkich sytuacjach są takie same. Metoda i intencja stojąca za tym procesem są różne.
Spójrzmy na porównanie:
Rodzaj badań | WHO? | Dlaczego? Zamiar |
---|---|---|
Testy funkcjonalności | Testerzy kontroli jakości | Precyzja |
Wydajność | ||
Możliwość zastosowania biznesowego | ||
Użyteczność | Testerzy kontroli jakości lub użytkownicy w czasie rzeczywistym | Łatwość użycia |
Łatwość nauki | ||
Wydajność | ||
Wykorzystanie sieci itp. | ||
Bezpieczeństwo | Narzędzia skanujące i inny system monitorowania przez wyspecjalizowanych ekspertów ds. Bezpieczeństwa | Bezpieczne hakowanie |
Ochrona odbiorcy i tożsamości płatnika itp. |
Warto zauważyć, że bez względu na to, jaką formę testowania chcemy przeprowadzić, wszystkie kroki są takie same .
Prawdziwa różnica polega na tym, że:
- Kto wykonuje te czynności?
- Jaki jest zamiar, czyli innymi słowy, co próbuję osiągnąć za pomocą tego testu?
- Zastosowane narzędzia i techniki.
Wracając do naszego pytania, dlaczego nigdy nie nauczymy się pisać niefunkcjonalnych przypadków testowych ze wszystkimi szczegółowymi krokami, które do nich należą?
To dlatego, że ,w istocie kroki testowe dla odmiany typów testów dla określonej funkcji są takie same, funkcjonalne lub nie. To zamiar robi różnicę i być może metoda.
Wniosek
Przed wykonaniem testów niefunkcjonalnych konieczne jest prawidłowe zaplanowanie strategii testowania, aby zapewnić prawidłowe testowanie. Na rynku dostępne są różne narzędzia do przeprowadzania tego typu testów, takie jak Load Runner, RPT itp.
Testy te odgrywają ważną rolę w powodzeniu aplikacji i budowaniu dobrych relacji z klientami, dlatego nie należy ich lekceważyć. Jest to jedna z ważnych części testowania oprogramowania i bez tego testowania nie można uznać za zakończone.
Możemy uwzględnić szczegóły testów niefunkcjonalnych w planie testów lub stworzyć dla nich oddzielną strategię. W obu przypadkach celem jest odpowiednie pokrycie niefunkcjonalnych aspektów oprogramowania.
Mamy nadzieję, że ten proces zagłębiania się w ten temat był dla Was równie zabawny, jak został wam wszystkim przedstawiony. Chcielibyśmy poznać Twoją opinię i przemyślenia na ten temat.
Jak radzisz sobie z testowaniem niefunkcjonalnym w swoich zespołach? I jak zawsze, daj nam znać, jeśli się zgadzasz, nie zgadzasz lub masz coś do dodania do tego, co tu się dzieje.
rekomendowane lektury
- Testy funkcjonalne a testy niefunkcjonalne
- Testy alfa i testy beta (kompletny przewodnik)
- Podręcznik testowania zabezpieczeń aplikacji internetowych
- Kompletny przewodnik po testach funkcjonalnych z typami i przykładami
- Kompletny przewodnik po testach weryfikacyjnych kompilacji (testy BVT)
- Najlepsze narzędzia do testowania oprogramowania 2021 (Narzędzia do automatyzacji testów QA)
- Przewodnik dla początkujących po testach penetracyjnych aplikacji internetowych
- Kompletny przewodnik po testowaniu obciążenia dla początkujących