functional testing vs performance testing
Testy funkcjonalne a testy wydajnościowe:
Różnice pomiędzy Testowanie wydajności, testowanie obciążenia i testowanie obciążeniowe zostały wyjaśnione przykładami w naszym ostatnim samouczku.
Testowanie oprogramowania obejmuje szeroki zakres obszarów, w których może wystąpić weryfikacja lub walidacja funkcjonalności oprogramowania. Czasami aspekty niefunkcjonalne stają się mniej dotyczące aspektów funkcjonalnych. Nie są wykonywane praktycznie; jednocześnie podczas testowania oprogramowania.
=> Kliknij tutaj, aby uzyskać pełną serię samouczków dotyczących testowania wydajności
W tym artykule wyjaśniono dodatkowe korzyści wynikające z jakości oprogramowania w różnych scenariuszach cyklu życia testowania oprogramowania kiedy zarówno funkcjonalne, jak i niefunkcjonalne są brane jednocześnie.
Czego się nauczysz:
- Szybka różnica między testami wydajnościowymi a testami funkcjonalnymi
- Dlaczego testy funkcjonalne i testy wydajnościowe powinny być wykonywane jednocześnie?
- Studium przypadku
- Wniosek
- rekomendowane lektury
Szybka różnica między testami wydajnościowymi a testami funkcjonalnymi
Sl NO | Testy funkcjonalności | Test wydajności |
---|---|---|
1 | Weryfikacja dokładności oprogramowania z określonymi danymi wejściowymi względem oczekiwanych wyników | Aby zweryfikować zachowanie systemu w różnych warunkach obciążenia |
dwa | Może to być ręczne lub automatyczne | Może być skutecznie wykonywany, jeśli jest zautomatyzowany |
3 | Jeden użytkownik wykonujący wszystkie operacje | Kilku użytkowników wykonujących żądane operacje |
4 | Wymagane zaangażowanie klienta, testera i programisty | Wymagane jest zaangażowanie zespołu zarządzającego Klientem, Testerem, Programistą, DBA i N / W |
5 | Środowisko testowe o wielkości produkcyjnej nie jest obowiązkowe, a wymagania H / W są minimalne | Żądania blisko środowiska testowego i kilku urządzeń H / W, aby zapełnić obciążenie |
Dlaczego testy funkcjonalne i testy wydajnościowe powinny być wykonywane jednocześnie?
Testowanie funkcjonalne staje się znacznie ważniejsze w przypadku każdego oprogramowania w wersji wstępnej. Rzeczywiste wyniki oparte weryfikacja i walidacja w replikowanym środowisku produkcyjnym lub testowym to miejsce, w którym zwykle przeprowadza się testy.
Wyciek wady może stać się jednym z największych problemów:
Testerzy ponoszą większą odpowiedzialność za jakość produktu niż programiści. Zasadniczo nie chcą, aby testowany produkt miał wyciek defektu. Testerzy zazwyczaj wykonują tylko testy funkcjonalne, aby to osiągnąć.
Poniżej znajduje się rozmowa między aKierownik testów i tester :
(Kierownik Testów jest określany jako „TM”, a Tester jako „TR”)
TM : Hej kolego… Jak sobie radzimy z testem „A” produktu?
TR : Tak… Postępujemy w większym stopniu.
TM : To fantastyczne… A jaki jest nasz zakres w zakresie testów wydajnościowych, gdy testy funkcjonalne są w trakcie wykonywania?
TR : Nie omawiamy ich, nasze produkty powinny znajdować się tylko w obszarze funkcjonalnym, a nie w obszarze niefunkcjonalnym. Ponadto środowisko testowe, którego używamy, nie jest dokładną repliką produkcji.
Należy wziąć pod uwagę kilka pytań z powyższej rozmowy:
- Czy testowanie funkcjonalne ma zależny czynnik od wydajności?
- Co się stanie, jeśli wydajność oprogramowania ulegnie pogorszeniu, ale dostawa produktu odbywa się bez sprawdzenia wydajności?
- Testowanie wydajnościowe - czy współistnieje w ramach procesu testowania funkcjonalnego?
Powszechną praktyką stało się, że testerzy nie pracują nad aspektami niefunkcjonalnymi, chyba że zostaną o to poproszeni. Często należy tego unikać testy niefunkcjonalne dopóki klient nie zgłosi problemów z wydajnością testowanego oprogramowania.
Masz więc do rozważenia 2 pytania:
- Wydajność - czy wpływa na testy funkcjonalne?
- Czy utrzymujemy testy wydajnościowe jako oddzielny produkt, nawet jeśli martwi to klienta?
Testowanie wydajności jest ważny !
najlepszy program do naprawy błędów rejestru
Oprogramowanie działa w oparciu o różne architektury i modele, w tym:
- Modele odpowiedzi na wymagane odpowiedzi
- Systemy oparte na transakcjach
- Systemy oparte na obciążeniu
- Systemy oparte na replikacji danych
Zachowanie testowania funkcjonalnego wyżej wymienionego modelu systematycznego zależy od wydajności systemu.
Punkt widzenia automatyzacji wymaga dużej uwagi przy testowaniu wydajności.
Poniżej znajduje się rozmowa między aklienta i Kierownika Testów.
(Klient jest określany jako „CL”, a menedżer testów jako „TM”)
CL : W związku z tym, dochodząc do rozwiązania, o które prosiliśmy, mam nadzieję, że będzie wiele iteracji testów, które są obecnie wykonywane.
TM : Tak, można to zrobić. Jak już powiedziałeś, prawdopodobieństwo powtórzenia się testów będzie większe. Chcielibyśmy zaproponować automatyzację testów funkcjonalnych (regresyjnych).
CL : OK świetnie, prześlij nam swoje podejście, abyśmy mogli to zatwierdzić. Automatyzacja będzie miała znacznie wyższą wydajność przy minimalnym wysiłku.
TM : Dokładnie. Popracujemy nad podejściem i skontaktujemy się z Tobą, przedstawiając dowód słuszności koncepcji.
Z powyższej rozmowy jasno wynika, że potrzebą klientów jest optymalizacja wydajności.
Studium przypadku
Firma ABC pracuje nad projektem dotyczącym rozwoju oprogramowania A. Testowanie oprogramowania A prowadzi firma XYZ.
Umowa dla firmy ABC i XYZ zawiera pewne ograniczenia dotyczące ich współpracy. Wszelkie dyskusje między dwiema firmami powinny odbywać się raz w tygodniu lub trzy razy w miesiącu. System działa na modelu trybu żądanie-odpowiedź. Faza rozwoju została zakończona przez firmę ABC.
Teraz nadszedł czas, aby firma XYZ przeprowadziła formalne testy funkcjonalne na oprogramowaniu A. XYZ rozpoczyna pracę nad testowaniem oprogramowania A. Po dwóch cyklach testowania przeszli do oprogramowania i dali „Go” do wdrożenia na żywo.
Pomimo certyfikatu jakości od zespołu testującego, wdrożenie na żywo nie przebiegło pomyślnie. Było wiele błędów poprodukcyjnych. Klienci mieli do czynienia z wieloma problemami, w tym z przerwą w funkcjonowaniu kompleksowych procesów biznesowych.
Więc co to jestproblem?
- Czy jest to problem z ograniczeniem współpracy między zespołem programistów a zespołem testującym?
- Czy to dlatego, że wymagania nie zostały uwzględnione w 100%?
- Czy produkt nie został przetestowany w odpowiednim środowisku testowym?
- Lub inne przyczyny?
Po dokładnych badaniach i analizachwywnioskowano następujące:
- Było kilka aplikacji zależnych i współzależnych, które miały problemy z wydajnością podczas pobierania odpowiedzi.
- Zastosowane dane wejściowe testowe nie były bezwzględne.
- Nie zadbano o solidność oprogramowania.
- Wiele problemów z synchronizacją między wieloma niezależnymi aplikacjami.
- Testowanie oprogramowania wykonało wiele poprawek, które nie zostały uwzględnione.
Stąd podziałania zapobiegawczezespół planowania wkroczył, zasugerowano:
- Należy zwiększyć interakcję między zespołem programistycznym a zespołem testującym.
- Wszystkie aplikacje zależne muszą być połączone i uwzględnione w testach funkcjonalnych systemu
- Wartość limitu czasu żądania i odpowiedzi musi zostać zwiększona, aby zapewnić miejsce dla środowisk nieprodukcyjnych
- W testach funkcjonalnych należy stosować różne dane wejściowe, od prostych do złożonych
- Testy niefunkcjonalne, zwłaszcza testy wydajności i obciążenia, należy wykonać zgodnie z zaleceniami zespołu naprawczego.
- Oprócz testowania systemu należy przeprowadzić testy integracji systemu.
- Należy zapewnić minimalny odstęp czasu między dowolnymi dwiema iteracjami testowymi. Służy do ponownego testowania wcześniej zidentyfikowanych błędów.
- Wszystkie błędy zidentyfikowane w poprzednich iteracjach powinny zostać naprawione w bieżącej iteracji.
Zespół testowy wdrożył wszystkie zaproponowane działania i w krótkim czasie wykryto dużą liczbę defektów.
Obserwacje:
- Harmonogram wdrażania oprogramowania na żywo znacznie się poprawił dzięki optymalizacji czasów cykli testowych.
- Nastąpił duży postęp w optymalizacji jakości oprogramowania. W związku z tym po wdrożeniu nastąpił ogromny spadek liczby zgłoszeń do pomocy technicznej.
- Zmniejszono liczbę przeróbek i zamiast przerabiać, testowano iteracje. Między różnymi iteracjami zaobserwowano lepszą poprawę jakości.
Wniosek
Wykonywanie testów niefunkcjonalnych podczas wykonywania testów funkcjonalnych jest bardziej korzystne i doda więcej korzyści do ogólnej jakości oprogramowania. Pozwoli to zidentyfikować błędy wydajności (ograniczone do środowiska testowego i zależności), a tym samym ograniczy sytuacje związane z założeniami dotyczącymi problemów funkcjonalnych.
Należy przeprowadzić wystarczające planowanie wykonywania testów funkcjonalnych i niefunkcjonalnych (na minimalnym poziomie) w celu utrzymania silnych relacji między innymi interesariuszami projektu.
O autorze: To jest artykuł napisany przez Nagarajana. Pracuje jako tester z ponad 6-letnim doświadczeniem w testowaniu w różnych obszarach funkcjonalnych, takich jak bankowość, linie lotnicze, telekomunikacja, zarówno w zakresie ręcznym, jak i automatyzacji.
Nasz nadchodzący samouczek wyjaśni więcej na temat planu testów wydajności i strategii testów.
=> Odwiedź tutaj, aby zapoznać się z pełną serią samouczków dotyczących testowania wydajności
POPRZEDNIA samouczek | NEXT Tutorial
rekomendowane lektury
- Testy funkcjonalne a testy niefunkcjonalne
- Najlepsze narzędzia do testowania oprogramowania 2021 (Narzędzia do automatyzacji testów QA)
- Testy wydajnościowe a testy obciążeniowe a testy obciążeniowe (różnica)
- Georgia Tech standaryzuje testy wydajności w RadView WebLOAD
- Różnica między testami na komputerach stacjonarnych, serwerach klienckich i testach internetowych
- Testing Primer Pobierz eBook
- Różnice między testowaniem jednostkowym, testowaniem integracyjnym i testowaniem funkcjonalnym
- Testowanie wydajności w chmurze: dostawcy usług testowania obciążenia w chmurze