Metodologie testowania oprogramowania: poznaj modele kontroli jakości

Spisie treści:

Anonim

Co to jest metodologia testowania oprogramowania?

Metodologia testowania oprogramowania jest zdefiniowana jako strategie i typy testów używane do poświadczania, że ​​testowana aplikacja spełnia oczekiwania klienta. Metodologie testów obejmują testy funkcjonalne i niefunkcjonalne w celu walidacji AUT. Przykładami metodologii testowania są testy jednostkowe, testy integracyjne, testy systemowe, testy wydajnościowe itp. Każda metodologia testowania ma określony cel testu, strategię testowania i produkty dostarczane.

Uwaga : Ponieważ testowanie oprogramowania jest integralną częścią każdej metodologii programistycznej, wiele firm używa potocznie terminu `` metodologie rozwoju i metodologie testowania ''. Stąd metodologie testowania mogą również odnosić się do modeli Waterfall, Agile i innych modeli zapewniania jakości, w przeciwieństwie do powyższej definicji metodologii testowania. Dyskusja na temat różnych typów testów nie wnosi wartości dodanej dla czytelników. Dlatego omówimy różne modele rozwoju.

W tym samouczku nauczysz się:

  • Model wodospadu
  • Rozwój iteracyjny
  • Metodyka zwinna
  • Ekstremalne programowanie
  • Którą metodologię oprogramowania wybrać?
  • Jak skonfigurować metodologie testowania oprogramowania?

Model wodospadu

Co to jest?

W modelu kaskadowym rozwój oprogramowania przebiega przez różne fazy, takie jak analiza wymagań, projektowanie itp. - sekwencyjnie .

W tym modelu kolejna faza rozpoczyna się dopiero po zakończeniu wcześniejszej fazy.

Jakie jest podejście do testowania?

Pierwsza faza modelu kaskadowego to faza wymagań, w której wszystkie wymagania projektu są całkowicie zdefiniowane przed rozpoczęciem testów. W tej fazie zespół testowy omawia zakres testów, strategię testów i opracowuje szczegółowy plan testów.

Dopiero po zakończeniu projektowania oprogramowania zespół przejdzie do wykonania przypadków testowych, aby upewnić się, że opracowane oprogramowanie zachowuje się zgodnie z oczekiwaniami.

W tej metodologii zespół testujący przechodzi do następnej fazy dopiero po zakończeniu poprzedniej fazy.

Zalety

Ten model inżynierii oprogramowania jest bardzo prosty w planowaniu i zarządzaniu. Dlatego projekty, w których wymagania są jasno zdefiniowane i określone z góry, można łatwo przetestować za pomocą modelu kaskadowego.

Niedogodności

W modelu wodospadu można rozpocząć od następnej fazy dopiero po zakończeniu poprzedniej fazy. W związku z tym model ten nie może uwzględniać nieplanowanych zdarzeń i niepewności.

Ta metodologia nie jest odpowiednia dla projektów, w których wymagania często się zmieniają.

Rozwój iteracyjny

Co to jest?

W tym modelu duży projekt jest podzielony na małe części, a każda część jest poddawana wielokrotnym iteracjom modelu wodospadu. Pod koniec iteracji tworzony jest nowy moduł lub ulepszany moduł istniejący. Ten moduł jest zintegrowany z architekturą oprogramowania i cały system jest testowany razem

Jakie jest podejście do testowania?

Po zakończeniu iteracji cały system poddawany jest testom. Informacje zwrotne z testów są natychmiast dostępne i są uwzględniane w następnym cyklu. Czas testowania wymagany w kolejnych iteracjach można skrócić na podstawie doświadczenia zdobytego w poprzednich iteracjach.

Zalety

Główną zaletą rozwoju iteracyjnego jest to, że informacje zwrotne z testów są natychmiast dostępne pod koniec każdego cyklu.

Niedogodności

Model ten znacznie zwiększa narzuty komunikacyjne, ponieważ pod koniec każdego cyklu należy przekazać informacje zwrotne na temat rezultatów, wysiłku itp.

Metodyka zwinna

Co to jest?

Tradycyjne metodologie tworzenia oprogramowania opierają się na założeniu, że wymagania dotyczące oprogramowania pozostają niezmienne przez cały projekt. Jednak wraz ze wzrostem złożoności wymagania ulegają licznym zmianom i stale ewoluują. Czasami sam klient nie jest pewien, czego chce. Chociaż model iteracyjny rozwiązuje ten problem, nadal jest oparty na modelu kaskadowym.

W metodologii Agile oprogramowanie jest tworzone w przyrostowych, szybkich cyklach. Podkreśla się raczej interakcje między klientami, programistami i klientami niż procesy i narzędzia. Zwinna metodologia koncentruje się na reagowaniu na zmianę, a nie na szeroko zakrojonym planowaniu.

Jakie jest podejście do testowania?

Testowanie przyrostowe jest stosowane w metodach programowania zwinnego, dlatego każde wydanie projektu jest dokładnie testowane. Gwarantuje to, że wszelkie błędy w systemie zostaną naprawione przed kolejną wersją.

Zalety

W każdym momencie istnieje możliwość wprowadzenia zmian w projekcie w celu spełnienia wymagań.

To testowanie przyrostowe minimalizuje ryzyko.

Niedogodności

Stała interakcja z klientem oznacza dodatkową presję czasu na wszystkich interesariuszy, w tym na samego klienta, zespoły programistyczne i testowe.

Ekstremalne programowanie

Co to jest?

Programowanie ekstremalne to rodzaj zwinnej metodologii, która wierzy w krótkie cykle rozwojowe. Projekt jest podzielony na proste zadania inżynierskie. Programiści kodują proste oprogramowanie i zwracają się do klienta w celu uzyskania opinii. Punkty recenzji od klienta są uwzględniane, a programiści przechodzą do następnego zadania.

W programowaniu ekstremalnym programiści zwykle pracują w parach.

Programowanie ekstremalne jest stosowane w miejscach, w których wymagania klientów stale się zmieniają.

Jakie jest podejście do testowania?

Programowanie ekstremalne następuje po rozwoju opartym na testach, który jest opisany w następujący sposób -

  1. Dodaj przypadek testowy do zestawu testów, aby zweryfikować nową funkcjonalność, która nie została jeszcze opracowana
  2. Uruchom wszystkie testy i oczywiście nowy dodany przypadek testowy musi zakończyć się niepowodzeniem, ponieważ funkcja nie jest jeszcze zakodowana
  3. Napisz kod, aby zaimplementować tę funkcję / funkcjonalność
  4. Uruchom ponownie zestaw testów. Tym razem nowy przypadek testowy powinien przejść, ponieważ kod funkcjonalny został zakodowany

Zalety

Klienci, którzy myślą o niejasnym projekcie oprogramowania, mogą używać programowania ekstremalnego

Ciągłe testowanie i ciągła integracja małych wersji zapewniają, że dostarczany kod oprogramowania jest wysokiej jakości

Niedogodności

Spotkania zespołu programistów i klientów zwiększają wymagania czasowe.

Którą metodologię oprogramowania wybrać?

Dostępnych jest mnóstwo metodologii tworzenia oprogramowania i odpowiednich testów. Każda technika i metodologia testowania jest zaprojektowana w określonym celu i ma swoje względne zalety i wady.

Wybór określonej metodologii zależy od wielu czynników, takich jak charakter projektu, wymagania klienta, harmonogram projektu itp.

Z perspektywy testowania niektóre metodologie naciskają na testowanie danych wejściowych na wczesnym etapie cyklu rozwojowego, podczas gdy inne czekają, aż działający model systemu będzie gotowy.

Jak skonfigurować metodologie testowania oprogramowania?

Metodologie testowania oprogramowania nie powinny być tworzone tylko w celu testowania kodu oprogramowania. Należy wziąć pod uwagę szerszy obraz, a głównym celem projektu powinna być metodologia testowania.

Planowanie

Realistyczne planowanie jest kluczem do wdrożenia skutecznej metodologii testowania, a harmonogram powinien odpowiadać potrzebom każdego członka zespołu.

Zdefiniowane rezultaty

Aby wszyscy członkowie zespołu byli na tej samej stronie, należy zapewnić dobrze zdefiniowane produkty. Produkty dostarczane powinny zawierać bezpośrednią treść bez żadnych niejasności.

Podejście testowe

Po zakończeniu planowania i udostępnieniu określonych produktów, zespół testujący powinien być w stanie sformułować właściwe podejście do testów. Dokumenty definiujące i spotkania programistów powinny wskazywać zespołowi najlepsze podejście do testowania, które można zastosować w projekcie.

Raportowanie

Przejrzyste raportowanie jest bardzo trudne do osiągnięcia, ale ten krok determinuje skuteczność podejścia testowego zastosowanego w projekcie.