soa testing tutorial
Samouczek testowania SOA:
W tym artykule omówimy techniki testowania architektury SOA.
Obecne oprogramowanie jest tak wszechstronne i podatne na zmieniające się oczekiwania użytkowników od czasu do czasu, że samodzielny model nie jest przydatny.
Tam właśnie SOA idealnie pasuje jako rozwiązanie.
To jest powód, dla którego wiele firm dostosowuje lub próbuje dostosować podejście SOA ze względu na jego zalety, takie jak; Cięcie kosztów, elastyczność biznesowa, łatwa konserwacja itp. Wraz z nadchodzącym rynkiem pełnym architektury SOA, współczesni testerzy muszą mieć rzetelny pomysł na testowanie SOA.
różnica między testami białymi i czarnoskrzynkowymi
W tym artykule omówimy podstawy SOA wraz z przykładami.
To dałoby czytelnikom podstawowe pojęcie o SOA. Po tym nastąpiłoby podejście do wdrażania usług sieciowych. Na koniec przejdziemy do procesu testowania, który można śledzić dla modelu architektury SOA.
Czego się nauczysz:
- Co to jest SOA?
- Przykłady architektury SOA
- Usługi internetowe
- Proces testowania SOA
- Wyzwania w testowaniu SOA
- Narzędzia do testowania SOA
- rekomendowane lektury
Co to jest SOA?
SOA lub architektura zorientowana na usługi to elastyczna / zwinna / wydajna metoda integracji różnych aplikacji / usług w celu spełnienia określonych potrzeb biznesowych.
- W przeciwieństwie do innych skomplikowanych systemów, SOA składa się z mniejszych komponentów / usług / mikroserwisów powiązanych ze sobą tak, aby zaspokoić potrzeby biznesowe.
- Usługi to jednostki, które składają się na całość systemu i kiedy zachodzi potrzeba zmiany, zamiast zmiany całego systemu, modyfikowana jest konkretna usługa.
- Usługa to składnik, który jest w stanie wykonać zadanie.
- Taka architektura jest łatwiejsza do sprzedania niż starszy system, ponieważ Użytkownik Końcowy otrzymuje tylko te usługi, które są mu potrzebne. Nie musi mieć całego systemu.
- Usługi / mikrousługi są luźno powiązane, wielokrotnego użytku, bezstanowe, dzięki czemu system jest jeszcze bardziej niezawodny.
- Ten model jest bardzo opłacalny pod względem wdrażania, rozwoju i konserwacji.
Przykłady architektury SOA
Potrzeba biznesowa: Aplikacja, do której Użytkownik może się zalogować i wyszukiwać Restauracje w oparciu o Geolokalizację, Pobieranie danych restauracji oraz Menu z serwera po zakończeniu wyszukiwania i na końcu można dokonać płatności za złożenie zamówienia.
Tę potrzebę biznesową można zrealizować poprzez wdrożenie architektury SOA.
Mogą istnieć następujące usługi / mikrousługi do wykonywania różnych zadań:
- Podczas logowania usługą, która będzie używana, jest „Usługa uwierzytelniania”
- Wyszukiwanie restauracji odbywałoby się za pomocą „usługi geolokalizacji”
- Menu pobierania należy wykonać za pomocą „usługi pobierania menu”
- Wreszcie płatność byłaby dokonywana przez „usługę płatniczą”
Każda z wyżej wymienionych usług robi coś unikalnego, aby system działał i dostarczał to, co powinien. Teraz, jeśli klient chce zobaczyć tylko restaurację i jej menu, ale nie potrzebuje interfejsu bramki płatności, kupiłby / wdrożył tylko pierwsze trzy usługi.
To sprawia, że praca jest prosta dla rozwoju, wdrożenia, sprzedaży, utrzymania, a także dla klienta / użytkownika końcowego.
Usługi internetowe
- Są to interfejsy API [interfejsy programowania aplikacji], które ułatwiają interakcję między różnymi programami.
- Istnieje dostawca usług, który obsługuje usługę w sieci. W ramach hostingu dostawca udostępnia kod WSDL.
- Gdy Klient wysyła wiadomość z żądaniem do usługodawcy, komunikacja jest nawiązywana z wykorzystaniem adresu URL / WSDL.
- W poniższym przykładzie serwer geolokalizacji obsługuje usługę internetową, z której korzysta osoba żądająca usługi.
Proces testowania SOA
Każdy produkt, model, infrastruktura musi przejść fazę testowania, aby zadowolić użytkownika końcowego w zakresie produktu dobrej jakości. Testowanie SOA nie ogranicza się tylko do testowania warstwy / testowania protokołu usług internetowych. To jest ogólne testowanie architektury i każdej jej części.
Podejście do testowania może być podobne do standardowego procesu testowania. to znaczy
- Proces przeglądu wymagań
- Planowanie testów
- Projekt testu
- Konfiguracja środowiska
- Faza wykonania
- Faza raportowania
Proces testowania SOA obraca się wokół 3 warstw architektury:
- Konsumenci usług
- Warstwy przetwarzania
- Warstwy usług
Idąc za tym samym przykładem powyżej, możemy mieć następujące warstwy:
- Warstwa konsumenta usług pomaga w interakcji z konsumentem. Pomaga to w odczytaniu danych wejściowych od użytkownika końcowego i zwróceniu odpowiedniej odpowiedzi na otrzymane żądanie. Innymi słowy, w zasadzie ma to interfejs UI.
- To warstwa, która skupia się na froncie wdrożenia. Ta warstwa w naszym przykładzie będzie miała metody uwierzytelniania, tworzenia użytkownika itp.
- Warstwy usług to funkcje biznesowe w kontekście usług. Wszystkie usługi, które są faktycznie wywoływane podczas wykonywania określonego zadania, znajdują się w tej warstwie.
Testowanie można zasadniczo podzielić na 4 różne etapy;
Poziom 1
1) Testowanie poziomu usług:
- Każda usługa zaangażowana w system jest indywidualnie testowana w oparciu o metodę zapytania i odpowiedzi.
- Ten test jest obowiązkowy i bardzo ważny, aby przejść do innych procesów testowych.
2) Testowanie funkcjonalne:
- Test jest przeprowadzany dla usług związanych z ich potrzebami biznesowymi, aby sprawdzić, czy otrzymana odpowiedź jest poprawna.
- Potrzeby biznesowe są najpierw konwertowane na przypadki testowe i tworzone są instrukcje żądania.
- Następnie instrukcje żądania są przetwarzane w celu sprawdzenia, czy otrzymane odpowiedzi są prawidłowe.
- W przypadku nieprawidłowych danych wejściowych należy podać odpowiedni kod błędu lub wywołać odpowiedni komunikat o błędzie.
- Formaty odpowiedzi, jak również negatywne scenariusze, muszą zostać zrealizowane.
3) Testowanie bezpieczeństwa:
- Jeśli chodzi o usługę sieciową, testy bezpieczeństwa odgrywają kluczową rolę w powodzeniu procesu testowania.
- Bramy uwierzytelniające, bramki płatności itp. Powinny być szyfrowane podczas analizowania danych.
- Jeśli chodzi o XML, należy zweryfikować podatności takie jak CSRF, wstrzykiwanie SQL.
4) Testowanie wydajności:
- Usługi używane w architekturze są hostowane, dzięki czemu wiele innych aplikacji może z nich korzystać. Testy wydajnościowe zapewniają wiarygodność tych usług.
- Należy przeprowadzić testowanie usług, aby znaleźć następujące zestawy wyników;
- Określenie stabilności usług.
- Aby sprawdzić skalowalność usług.
- Zachowanie serwisowe w warunkach obciążenia szczytowego
- Aby znaleźć czasy odpowiedzi w usługach
Poziom 2
1) Testowanie procesu:
- Ten proces obejmuje testowanie różnych procesów biznesowych.
- Powinno to obejmować scenariusze integracji usług sieci Web i aplikacji obejmujących wymagania biznesowe
- Należy skorzystać z symulatorów w celu wygenerowania przykładowych danych wejściowych, a dla odpowiednich wyników należy przeprowadzić walidację.
- Należy przeprowadzić przepływ danych z różnych warstw, aby udowodnić sprawne działanie systemu po jego integracji.
Poziom # 3
1) Testowanie od końca do końca:
utwórz tablicę ciągów w java
- Ta faza ma na celu sprawdzenie wymagań biznesowych zarówno pod względem funkcjonalnym, jak i niefunkcjonalnym.
- Interfejs użytkownika aplikacji został zweryfikowany.
- Badany jest proces biznesowy.
- W tej fazie weryfikowany jest przepływ danych od końca do końca.
- Praca ze wszystkimi usługami, gdy usługi są ze sobą zintegrowane, jest sprawdzana.
Poziom 4
1) Testowanie regresji:
- Stabilność systemu w wersjach przyrostowych jest weryfikowana w ramach tych testów.
- Można to osiągnąć za pomocą testów ręcznych / testów automatycznych.
Wyzwania w testowaniu SOA
Ktoś słusznie powiedział: „Zwiększ siatkę; Większy jest bałagan! ”. SOA może stać się naprawdę złożonym dzieckiem, żądnym uwagi.
Innymi słowy, przy tak wielu drobnych częściach składających się na architekturę SOA, certyfikacja jej w testach staje się naprawdę trudna.
- Trudno jest zasymulować środowiska testowe, aby przeprowadzić proces testowania.
- Produkty zaangażowane w model mogą pochodzić z tej samej technologii / dostawcy. Ale mogą też być różne. Więcej problemów?
- Kombinacje testowe zwiększają liczbę usług / komponentów.
- Złożoność modelu
- Powielanie / testowanie problemów to ciężka praca.
- W przeciwieństwie do innych modeli, głównym celem testowania powinien być zakres biznesowy, a nie usługa i jej funkcja.
Narzędzia do testowania SOA
Istnieje wiele aplikacji do testowania SOA. Narzędzia do testowania SOA są wybierane na podstawie ich dokładnych wyników i lepszej produktywności.
- SoapUI: Jest to bezpłatne narzędzie do testowania usług internetowych. SoapUI może przeprowadzać testy funkcjonalne, testy wydajnościowe i testy obciążenia
- Apache Jmeter: Jest to również narzędzie OPEN SOURCE, które służy do analizowania wydajności wywołania SOAP.
- JProfiler: Służy do zatrzymywania lub wykrywania wycieku pamięci, znajdowania wąskich gardeł w wydajności itp.
- Test serwisowy HP: Jest to zintegrowane z HP QC. Jest to narzędzie do testowania funkcjonalnego, które obsługuje również testowanie interfejsu użytkownika i usług wspólnych
W tym artykule zrozumieliśmy osobliwość modelu. To bardzo różni się od starego modelu, a artykuł daje dobre wyobrażenie na jego temat. Ten artykuł rzuca również nieco światła na procedurę SOA i sposoby przeprowadzania testów.
O autorze: To jest post gościnny autorstwa Subhasis. Pracuje jako lider zespołu z ponad 8-letnim doświadczeniem korporacyjnym w firmach IT z listy Fortune 500.
Opublikuj poniżej swoje pytania / komentarze związane z testami SOA.
Wszystkiego najlepszego!
rekomendowane lektury
- Najlepsze narzędzia do testowania oprogramowania 2021 [Narzędzia do automatyzacji testów QA]
- Testing Primer Pobierz eBook
- Testy niszczące i samouczek dotyczący testów nieniszczących
- Testy funkcjonalne a testy niefunkcjonalne
- Dogłębne samouczki dotyczące Eclipse dla początkujących
- 15 najlepszych narzędzi do testowania SOA dla testerów
- Testowanie w parach lub samouczek testowania we wszystkich parach z narzędziami i przykładami
- Samouczek dotyczący narzędzia do testowania dostępności WAVE