software development
Jakie są metody opracowywania i testowania oprogramowania?
Testowanie jest istotną częścią procesu tworzenia oprogramowania. Solidne i stabilne oprogramowanie można dostarczyć przy użyciu standardowych metod testowania, które pomogą przewidzieć harmonogram systemu oprogramowania.
Aplikacja może stać się jeszcze bardziej złożona przy dużej liczbie platform i urządzeń. Co ważniejsze, wymagane jest zapewnienie, czy spełniają one określone wymagania i czy mogą być wydajnie zainstalowane i obsługiwane na maszynie użytkownika, czy nie.
Za pomocą środków bezpieczeństwo , zgodność i użyteczność, oprogramowanie powinno być testowane przy użyciu odpowiedniej metodologii testowania.
W tym artykule , omówimy szczegółowo, co oznaczają metodologie testowania, czym różnią się one od strategii testowania i szczegółowo omówimy rodzaje metod testowania oprogramowania.
Czego się nauczysz:
- Znaczenie metodologii testowania
- Techniki testowania
- Modele w SDLC
- Różnica między metodologiami testowania a strategiami testowania
- Wniosek:
- rekomendowane lektury
Znaczenie metodologii testowania
Metodologie można traktować jako zbiór mechanizmów testowych używanych w cyklu życia oprogramowania od testowania jednostkowego do testowania systemu. Za podstawę procesu testowania uważa się wybór odpowiedniej metodologii testowania.
Techniki testowania
Zasadniczo istnieją 3 metodologie testowania, które są używane do testowania. Są to testy białoskrzynkowe, testy czarnoskrzynkowe i Testowanie szarej skrzynki . Są one również nazywane jako Techniki testowania . Poniżej opisano każdą technikę testowania, aby ułatwić zrozumienie.
# 1) Testowanie w białej skrzynce:
Technika testowania białoskrzynkowego służy do badania struktury programu i logiki biznesowej, sprawdza poprawność kodu lub programu aplikacji. Nazywa się to również jako Testowanie w przezroczystym pudełku, testowanie w szklanym pudełku lub testowanie w otwartym pudełku .
Techniki testowania białoskrzynkowego obejmują:
- Zakres wyciągu: Sprawdza wszystkie instrukcje programowania.
- Zakres oddziału: Seria uruchomionych testów, aby upewnić się, że przetestowane są wszystkie gałęzie.
- Pokrycie ścieżki: Testuje wszystkie możliwe ścieżki, aby objąć każdą instrukcję i gałąź.
# 2) Testowanie czarnoskrzynkowe:
Metoda testowania Black Box służy do testowania funkcjonalności aplikacji na podstawie specyfikacji wymagań. W przeciwieństwie do White Box Testing nie koncentruje się na wewnętrznej strukturze / kodzie aplikacji.
Techniki czarnej skrzynki obejmują:
- Analiza wartości brzegowych
- Podział na klasy równoważności (podział na klasy równoważności)
- Tabele decyzyjne
- Testy domen
- Modele stanu
- Testowanie eksploracyjne (wymaga mniej przygotowań, a także pomaga szybko znaleźć defekty).
# 3) Testowanie w szarej skrzynce:
Ta metoda testowania jest wykonywana z mniejszą ilością informacji o wewnętrznej strukturze aplikacji. Generalnie jest to wykonywane jak tylko testowanie czarnoskrzynkowe, ale w niektórych krytycznych obszarach aplikacji stosuje się testowanie białoskrzynkowe.
Modele w SDLC
Dobór odpowiednich metodologii testowania wiąże się również z wyborem odpowiedniego modelu w SDLC.
Modele obejmują:
- Model wodospadu
- W modelu
- Zwinny model
- Model spiralny
- RAD
Przyjrzyjmy się bliżej każdej z metodologii tworzenia oprogramowania z krótkim wyjaśnieniem.
1) Model wodospadu
Model wodospadu to podstawowy model cyklu życia, który został opracowany przez Winstona Royce'a w 1970 roku. Model ten przedstawia wiele etapów lub procesów w sposób sekwencyjny, który stopniowo spada.
Takie podejście jest przydatne, gdy wymagania są dobrze znane, technologia jest zrozumiała, a zasoby z wymaganą wiedzą są dostępne.
Model wodospadu jest definiowany przez następujące etapy:
- Gromadzenie i analiza wymagań: Uchwyć i przeanalizuj wszystkie wymagania i upewnij się, czy są one testowalne, czy nie.
- Projekt systemu: Twórz i dokumentuj projekty w oparciu o analizę wymagań. Zdefiniuj wymagania sprzętowe i programowe.
- Realizacja: Twórz solidny kod dla komponentów zgodnie z projektem i integruj je.
- Testowanie systemu: Zintegrowane komponenty tworzą cały system, faza ta jest wykonywana w celu upewnienia się, czy system działa zgodnie z wymaganiami, śledzenia i raportowania postępu testów.
- Wdrożenie systemu: Upewnij się, że system jest stabilny i nie zawiera żadnych błędów, a wszystkie kryteria testowe zostały spełnione
spełnione, upewnij się, że konfiguracja środowiska itp. - Konserwacja systemu: Zapewnia, czy aplikacja działa wydajnie zgodnie z wymaganiami w odpowiednim środowisku. W przypadku wykrycia usterki należy ją naprawić i wdrożyć (zaktualizować) w środowisku.
Zalety modelu wodospadu:
- Proste i łatwe do zrozumienia.
- Łatwe w zarządzaniu, ponieważ każda faza ma swoje własne, specyficzne produkty.
- Unika się nakładania się etapów.
- Dobre dla małych projektów.
Wady modelu wodospadu:
- Zwiększenie kwoty ryzyka i niepewności.
- Po wejściu w fazę testowania nie można nic zmienić w poprzednich etapach na przykład Projekt i kodowanie itp.
- Nie nadaje się do złożonych i dużych projektów.
- Nie nadaje się tam, gdzie wymagania ciągle się zmieniają.
# 2) W modelu
Model V. jest rozszerzenie modelu wodospadu gdzie wykonanie procesu odbywa się w stylu sekwencyjnym w kształcie litery V i jest również znane jako model weryfikacji i walidacji. W tym podejściu istnieje bezpośrednio związana faza testowania w każdej pojedynczej fazie cyklu rozwoju.
Udowodniono, że jest korzystny i opłacalny niż model kaskadowy, ponieważ testy przeprowadza się na każdej fazie rozwoju, a nie na końcu cyklu rozwoju.
Model V jest podzielony na 3 fazy.
- Faza weryfikacji
- Faza kodowania
- Faza walidacji
a) Faza weryfikacji :
- Analiza wymagań biznesowych: Komunikuj się z klientem, aby zrozumieć jego oczekiwania i wymagania.
- Projekt systemu: Projektkompletnysystem i jego komponenty wraz z wymaganiami sprzętowymi i programowymi.
- Styl architektoniczny: Na tym etapie rejestrowane są specyfikacje architektoniczne. Jest to również znane jako projektowanie wysokiego poziomu.
- Projekt modułu: Jest to również znane jako projekt niskiego poziomu, szczegółowy projekt wewnętrzny dla wszystkich określonych modułów systemu.
b) Faza kodowania:
Ta faza obejmuje faktyczną fazę kodowania w cyklu rozwoju. Języki programowania należy wybierać na podstawie systemu i projektu architektonicznego określonego w poprzedniej fazie platformy technologicznej. Kodowanie odbywa się zgodnie ze standardami i wytycznymi, które są wcześniej zdefiniowane.
c) Faza walidacji :
- Testów jednostkowych: Wykonywany na pojedynczym module w celu wyeliminowania błędów na wczesnym etapie.
- Testy integracyjne: Wykonywany w celu przetestowania komunikacji między różnymi modułami w systemie.
- Testowanie systemu: Testowanie systemu jest wykonywana w systemie jako całości.
- Testy akceptacyjne: Jest to związane z wymaganiami biznesowymi. Jest wykonywana w środowisku użytkownika z punktu widzenia użytkownika.
Zalety modelu V.
- Prosty, łatwy w użyciu i zrozumiały.
- Nakładanie się jest unikane, ponieważ fazy są wykonywane pojedynczo.
- Łatwy w zarządzaniu i odpowiedni dla małych projektów.
Wady modelu V są mniej więcej podobne do wad modelu Waterfall.
# 3) Model zwinny
Zwinny model pokazuje podejście iteracyjne i przyrostowe. To podejście dzieli produkt na małe jednostki przyrostowe w celu zapewnienia iteracji. Następnie każda iteracja obejmuje takie kroki, jak planowanie, analiza wymagań, projektowanie, kodowanie, testy jednostkowe, testy akceptacyjne itp.
Takie podejście umożliwia również ciągłą interakcję z klientem w celu uzyskania informacji zwrotnych i poprawiania wymagań w regularnych odstępach czasu.
Poniższy diagram pomoże ci dokładniej zrozumieć podejście Agile Model:
Poniższy obraz przedstawia cykl iteracji w modelu Agile:
Zalety modelu Agile:
- Realistyczne podejście do tworzenia oprogramowania.
- Promuje pracę zespołową.
- Eliminuje niezgodność między wymaganiami a przypadkami testowymi.
- Szybki i wymaga minimalnej ilości zasobów.
- Nadaje się do dużych i długoterminowych projektów.
- Dobre dla zmieniających się wymagań.
- Łatwe w zarządzaniu.
Wady modelu Agile:
- Nie nadaje się do złożonych projektów.
- Wymaga dużej ilości interakcji z klientem, co może powodować opóźnienia.
- Błędne określenie wymagań może spowodować nieprawidłowy rozwój oprogramowania.
- Zwiększone ryzyko konserwacji.
- Przekazanie gry innemu zespołowi może być dość trudne.
# 4) Model spiralny
Model spiralny obejmuje iteracyjne podejście do rozwoju wraz z systematycznym podejściem modelu wodospadu. Jest podobny do modelu przyrostowego i kładzie nacisk na analizę ryzyka.
Model spiralny ma cztery etapy:
- Faza planowania
- Ocena ryzyka
- Faza inżynieryjna
- Faza oceny
1) Faza planowania: Na tym etapie wymagania są zbierane i przeglądane w celu sfinalizowania przypadku testowego.
2) Analiza ryzyka: Ten etap obejmuje identyfikację, monitorowanie i szacowanie ryzyk zarządczych. Wymagania są analizowane w celu identyfikacji zagrożeń za pomocą technik takich jak burza mózgów, przewodnik itp.
3) Faza inżynieryjna: Na tym etapie oprogramowanie jest opracowywane i testowane na końcu.
4) Faza oceny: Jest to ostatni etap, w którym klient ocenia wyniki projektu i przekazuje informacje zwrotne do następnej spirali lub zatwierdzenia.
Graficzne przedstawienie modelu spiralnego:
Kiedy używać modelu spiralnego:
- Do projektów wysokiego ryzyka.
- Gdy wymagania są złożone.
- Jeśli projekt jest duży.
- Miej wystarczająco dużo czasu na zebranie opinii użytkowników na temat następnej spirali.
- Wymaga znaczących zmian w związku z badaniami i eksploracją.
- Użytkownicy nie są pewni swoich potrzeb.
Zalety modelu spiralnego:
- Unikanie ryzyka, ponieważ wiąże się z dużą ilością analizy ryzyka.
- Szybki rozwój.
- Zmiany wymagań są łatwo dostosowywane.
- Wymagania można uzyskać dokładniej.
Wady modelu spiralnego:
- Kompleksowe zarządzanie.
- Nie nadaje się do małych projektów.
- Może obejmować nie. spiral (nieokreślony).
- Kosztowny.
- Sukces projektu wymaga dużej ilości analizy ryzyka i wiedzy specjalistycznej.
# 5) Model RAD
Rapid Application Development (RAD) to rodzaj modelu przyrostowego. W tym podejściu komponenty są opracowywane równolegle.
Jest to szybkie podejście i może dać klientowi szybki produkt w celu uzyskania opinii.
Fazy w RAD są następujące:
- Modelowanie biznesowe: Identyfikuje istotne informacje i ich przepływ między różnymi kanałami biznesowymi.
- Modelowanie danych: Informacje zebrane na poprzednim etapie służą do definiowania obiektów danych wymaganych w biznesie.
- Modelowanie procesów: Obiekty danych są konwertowane, aby uzyskać cel biznesowy i przepływ informacji.
- Generowanie aplikacji: Na tym etapie narzędzia do automatyzacji są używane do konwersji modelu procesu na rzeczywisty kod.
- Testowanie i obrót: Testuje wszystkie komponenty systemu, dzięki czemu całkowity czas testowania jest skrócony.
Zalety modelu RAD:
- Postęp można zmierzyć.
- Skraca czas rozwoju.
- Zwiększona możliwość ponownego użycia.
- Szybkie wstępne recenzje.
- Poprawia opinie klientów.
Wady modelu RAD:
- Wymaga wysoko wykwalifikowanych zasobów.
- Kosztorysowanie.
- Nie dotyczy tańszych projektów.
- Duża zależność od umiejętności modelowania.
- Za pomocą RAD można zbudować tylko system modułowy.
Różnica między metodologiami testowania a strategiami testowania
Odpowiedź na to nie jest skomplikowana, ponieważ istnieje prosta różnica między nimi.
Metodologie testowania to metody lub podejścia do testowania, które obejmują od testów jednostkowych do testów systemowych.
Strategie testowania to przegląd kluczowych zagadnień, które pojawiają się w procesie testowania i ma być wzięty pod uwagę przez kierownika projektu, zespół programistów i testerów.
Do implementacji wykorzystywane są omówione powyżej metody testowania oprogramowania n liczba strategii testowania.
Niektóre z nich są wymienione poniżej:
1) Testowanie jednostkowe:
- Koncentruje się na bardzo małych jednostkach funkcjonalnych.
- Najprostszy sposób sprawdzenia izolacji najmniejszych jednostek.
- Zwykle wykonywane przez programistów.
2) Testowanie integracji:
podstawowe pytania do wywiadów html i css
- To kolejny krok do wykonania po stronie dewelopera.
- Zapewnij mechanizm do testowania interakcji, współdziałania i komunikacji między różnymi modułami oprogramowania
3) Testowanie funkcjonalne:
Służy do sprawdzania funkcjonalności systemu oprogramowania, czyli wyjścia na dane wejście.
4) Testowanie regresji:
Sprawdza, czy naprawa błędów nastąpiła w jednym miejscu, tak aby złożone funkcje nie powodowały żadnych zmian w innym podstawowym obszarze.
5) Testowanie systemu:
- Testowanie wszystkich zintegrowanych modułów jako systemu zbiorczego.
- Łączy wiele funkcji w kompleksowe scenariusze.
6) Testowanie wydajności:
Testuje wydajność aplikacji w sytuacjach krytycznych, takich jak przesyłanie dużego pliku, jednoczesny dostęp użytkowników do systemu, awaria konfiguracji itp.
7) Testy akceptacyjne :
- Ogólnie Ostateczny poziom testowania, w którym produkt oprogramowania jest badany z perspektywy użytkownika przez testerów
- Wynik tego kroku jest subiektywny i zajmuje trochę czasu, aby znaleźć dokładny problem
Wniosek:
Wybór odpowiedniej metodologii testowania to działanie lub zestaw działań, które stanowią rdzeń procesu testowania. Może to być nawet czynność wszechstronna, która zmienia się w zależności od wymagań biznesowych i harmonogramu oprogramowania.
Można jednak wybrać jedną lub nawet wiele metodologii tworzenia oprogramowania i testowania, aby mieć bardziej elastyczny i wydajny produkt końcowy, który zaspokoi potrzeby i oczekiwania klienta w pożądanym lub krótszym czasie.
Daj nam znać swoje przemyślenia / sugestie w sekcji komentarzy poniżej.
rekomendowane lektury
- Najlepsze narzędzia do testowania oprogramowania 2021 [Narzędzia do automatyzacji testów QA]
- Asystent testowania oprogramowania
- Kurs testowania oprogramowania: Do którego Instytutu Testowania Oprogramowania mam dołączyć?
- Wybór testowania oprogramowania jako swojej kariery
- Testowanie oprogramowania Praca pisarz treści technicznych Freelancer
- Kilka interesujących pytań do rozmowy kwalifikacyjnej dotyczącej testowania oprogramowania
- Opinie i recenzje dotyczące kursu testowania oprogramowania
- Testowanie oprogramowania Pomoc Program afiliacyjny!