how test java applications tips with sample test cases
W tym samouczku nauczymy się składników aplikacji Java i różnych typów testów, które należy przeprowadzić, aby zapewnić wysoką jakość aplikacji wolnej od błędów.
To jest trzyczęściowa seria poświęcona testowaniu aplikacji JAVA.
- W tym artykule poznamy komponenty J2EE i podejście do testowania ręcznego aplikacji J2EE.
- W drugim przejrzymy plik Testowanie automatyczne podejście do testowania aplikacji J2EE oraz
- W trzecim przejrzymy obszerną listę narzędzi dostępnych do testowania aplikacji J2EE.
Czego się nauczysz:
- Zacznijmy od przeglądu aplikacji J2EE
- Testowanie aplikacji JAVA / J2EE
- Ręczne testowanie aplikacji Java:
- Wniosek
- rekomendowane lektury
Zacznijmy od przeglądu aplikacji J2EE
DO Jawa aplikacja internetowa składa się z kilku komponentów, z których każdy służy ważnemu celowi. MVC , co oznacza Model View Controller, jest najpopularniejszym i najczęściej używanym wzorcem projektowania architektonicznego.
Zanim nauczysz się testować, przejrzyjmy pokrótce różne komponenty aplikacji J2EE.
- Klient / przeglądarka prosi o adres internetowy z adresem URL.
- JSP (Java Server Pages) - JSP to technologia po stronie serwera przeznaczona do prezentowania danych użytkownikowi. Obsługuje wyświetlanie dynamicznej zawartości za pomocą specjalnych znaczników zwanych znacznikami JSP, które pomagają wstawiać kod Java na stronach HTML. (Statyczny kod HTML zawsze wyświetla tę samą treść). W czasie wykonywania strona JSP jest konwertowana na serwlet. Logika biznesowa nie jest tu zwykle opisywana.
- JSF (Java Server Faces) - JSF to struktura komponentu widoku do efektywnego projektowania interfejsu użytkownika.
- Javascript / Jquery - są językami skryptowymi używanymi do walidacji widoku / ekranu po stronie klienta.
- Servlet - Serwlet sprawdza poprawność danych otrzymanych z wejścia, wybiera odpowiedni kod logiki biznesowej i przekazuje wartości do kodu Bean.
- Enterprise Java Bean (EJB) - W tym miejscu zazwyczaj zapisuje się i obsługuje całą logikę biznesową. Następnie fasola wywołuje kod w celu odczytu, zapisu lub aktualizacji bazy danych. Po zakończeniu operacji na bazie danych odpowiedź jest następnie przesyłana z powrotem do serwletu, który z kolei wybiera odpowiednią stronę JSP do wyświetlenia wyników.
- Usługi internetowe - Usługi sieciowe to składniki aplikacji, które działają na oddzielnym serwerze i komunikują się za pośrednictwem protokołu HTTP.
- Baza danych - przechowuje wszystkie dane aplikacji.
Należy pamiętać, że nie wszystkie aplikacje internetowe są zgodne z JSP -> Servlet -> EJB -> Model bazy danych . Większość aplikacji J2EE jest obecnie napisanych we frameworku, takim jak Struts, Spring lub Hibernate. Projekt aplikacji różni się dla każdego wymagania w zależności od rozmiaru aplikacji, kosztów, czasu rozwoju, zasobów i wielkości zespołu.
Testowanie aplikacji JAVA / J2EE
Przejdźmy teraz do testowania całej aplikacji J2EE. Odbywa się to w kilku krokach.Na przykład, weź pod uwagę, że mamy trzy ekrany:
- Ekran logowania
- Ekran pracownika, który zawiera listę wszystkich pracowników w organizacji
- Ekran modyfikacji / dodawania / usuwania pracowników.
Interfejs użytkownika (interfejs użytkownika) dla tych trzech ekranów został opracowany przy użyciu JSP / HTML i walidacji przeprowadzanych za pomocą JavaScript. Ponieważ jest to przykładowa aplikacja, logika znajduje się w serwlecie i DAO (obiekt dostępu do danych). DAO to klasa służąca do łączenia się z bazą danych.
Poniżej przykładowe ekrany:
Ręczne testowanie aplikacji Java:
Podczas ręcznego testowania JAVA, tester przygotowuje przypadki testowe na podstawie szczegółowego dokumentu projektowego i stara się uwzględnić każdy możliwy scenariusz i fragment kodu.
1) TESTOWANIE JAVA UNIT
Testowanie jednostkowe to rodzaj testowania gdzie użytkownik musi przetestować najmniejsze fragmenty kodu pod kątem dokładności, poprawności i spełnienia wymagań.
Weźmyprzykład ekranu logowania. Ekran logowania zawiera dwa pola tekstowe: nazwę użytkownika i hasło oraz dwa przyciski: wyślij i anuluj.
Przypadki testowe powinny obejmować wszystkie pętle i instrukcje warunkowe. Przypadki testowe powinny przedstawiać oczekiwane wyniki i dane testowe. Poniżej znajduje się kilka ogólnych przypadków testowych, które użytkownik może wykonać ręcznie na ekranie logowania. Wyniki są następnie zapisywane w dokumencie przypadku testowego.
Poniżej znajduje się przykładowy format przypadku testowego dla ekranu logowania.
S.No. | Przypadek testowy | Spodziewany wynik | Aktualny rezultat | Pass / Fail |
---|---|---|---|---|
4 | Użytkownik wprowadza nazwę użytkownika składającą się z więcej niż 10 znaków | Komunikat o błędzie Powinien zostać wyświetlony komunikat „Nazwa użytkownika nie może przekraczać 10 znaków” | Komunikat o błędzie nie jest wyświetlany | ZAWIEŚĆ |
jeden | Użytkownik sprawdza wygląd etykiet Nazwa użytkownika, hasło | Etykiety powinny być poprawnie napisane i wyświetlane czcionką normalnego rozmiaru | Nazwa użytkownika i hasło etykiety są wyświetlane poprawnie | PRZECHODZIĆ |
dwa | Użytkownik sprawdza wygląd przycisku Prześlij i anuluj | Przyciski powinny być wyświetlane z poprawną nazwą | Przyciski Wyślij i Anuluj są wyświetlane poprawnie | PRZECHODZIĆ |
3 | Użytkownik sprawdza kolor tła ekranu | Formularz logowania powinien znajdować się w białej tabeli, a ekran powinien mieć szare tło | Wygląd ekranu nie spełnia wymagań. | ZAWIEŚĆ |
4 | Użytkownik pozostawia pole tekstowe nazwy użytkownika jako puste | Powinien zostać wyświetlony komunikat o błędzie „Nazwa użytkownika nie może być pusta” | Wyświetlany jest komunikat o błędzie „Nazwa użytkownika nie może być pusta” | PRZECHODZIĆ |
5 | Użytkownik wprowadza pewną wartość w polu tekstowym nazwy użytkownika i pozostawia pole tekstowe hasła jako puste | Powinien zostać wyświetlony komunikat o błędzie „Hasło nie może być puste” | Wyświetlany jest komunikat o błędzie „Hasło nie może być puste” | PRZECHODZIĆ |
6 | Użytkownik wprowadza nazwę użytkownika jako „abcd” i hasło jako „xxxx” | Komunikat o błędzie 'Niewłaściwa kombinacja hasła i nazwy użytkownika' powinien być wyświetlony | Komunikat o błędzie 'Niewłaściwa kombinacja hasła i nazwy użytkownika' jest wyświetlany | PRZECHODZIĆ |
5 | Użytkownik wprowadza nazwę użytkownika jako „użytkownik testowy” i hasło jako „hasło” i klika przycisk Prześlij | Użytkownik powinien widzieć „Ekran szczegółów pracownika” | Zostanie wyświetlony ekran szczegółów pracownika | PRZECHODZIĆ |
Chociaż tabela zawiera listę niektórych przypadków testowych, poniżej znajduje się pełna lista:
- Sprawdź, czy nie ma żadnego wyjątku, w tym wyjątku wskaźnika NULL
- Sprawdź, czy wartości NULLS nie są dozwolone dla nazwy użytkownika i hasła
- Sprawdź, czy nazwa użytkownika / hasło ma prawidłowy format
- Sprawdź, czy numery nie są dozwolone dla nazwy użytkownika
- Sprawdź, czy w nazwie użytkownika nie są dozwolone znaki specjalne
- Sprawdź, czy została wpisana poprawna kombinacja nazwy użytkownika i hasła, a następnie aplikacja przeniesie Cię do kolejnego ekranu, czyli ekranu informacji o pracowniku
- Sprawdź, czy wprowadzona nazwa użytkownika ma prawidłową długość
- Sprawdź, czy pole tekstowe nazwy użytkownika dopuszcza tylko maksymalną liczbę znaków określoną dla tego pola
- Sprawdź, czy pole hasła, jeśli zostało określone w wymaganiach, jest widoczne jako * podczas wchodzenia
- Sprawdź, czy hasła uwzględniają wielkość liter
- Sprawdź, czy w nazwie użytkownika nie jest rozróżniana wielkość liter
- Sprawdź, czy strona logowania nie pamięta nazwy użytkownika lub hasła, nawet po wyjściu
- Sprawdź, czy przyciski Prześlij i Anuluj działają zgodnie z wymaganiami
- Jeśli korzystasz z aplikacji po raz pierwszy, sprawdź, czy nazwa użytkownika ma uprawnienia do wejścia do aplikacji
- Usuń kombinację nazwy użytkownika / hasła z bazy danych i sprawdź, czy połączenie nie może się ponownie zalogować
- We wszystkich powyższych przypadkach sprawdź, czy są wyświetlane odpowiednie komunikaty o błędach weryfikacji
- Sprawdź, czy etykiety i przyciski znajdują się we właściwym miejscu na ekranie i czy poprawnie wyświetlają tekst
- Sprawdź, czy wygląd ekranu jest zgodny z wymaganiami
- Sprawdź, czy wyjątki są obsługiwane
- Sprawdź, czy rejestrowanie jest wykonywane dla wymaganych działań
Po przejrzeniu przypadków testowych możesz zdać sobie sprawę, że głównie masz do czynienia z testowaniem pól, przycisków, funkcjonalności i walidacji określonego ekranu. To prawda, ponieważ testy jednostkowe bardzo intensywnie zajmują się testowaniem każdego małego fragmentu kodu i komponentu. Dla wszystkich ekranów należy przeprowadzić ten sam rodzaj testów.
Należy pamiętać, że powyższe są tylko przykładami, a przypadki testowe są przygotowywane na podstawie specyficznego dla projektu i szczegółowego dokumentu projektowego.
Przeczytaj także=> Przykładowe gotowe do użycia przypadki testowe i scenariusze testowe do testowania aplikacji internetowych.
# 2) TESTOWANIE INTEGRACJI
W przypadku testów integracyjnych poszczególne moduły są integrowane i testowane razem pod kątem poprawności.
jaką stronę internetową mogę oglądać anime
Niech każdy z trzech ekranów w powyższym przykładzie jest tworzony przez trzech różnych członków zespołu. Po zakończeniu testów jednostkowych nadszedł czas, aby zebrać cały kod i sprawdzić, czy dobrze ze sobą współpracują. Testy integracyjne są wykonywane w celu zapewnienia prawidłowego przesyłania danych lub sterowania z jednego ekranu na drugi.
Oto kilka przykładowych przypadków testowych integracji dla przykładu aplikacji pracowniczej:
- Sprawdź, czy zalogowany użytkownik i sesja są takie same na wszystkich innych nowych zintegrowanych ekranach
- Sprawdź, czy inne moduły nie aktualizują / usuwają / nie wstawiają niepotrzebnych rekordów do bazy danych
- Niech będzie pole statusu pracownika, które mówi „Nowy” przy dodawaniu, „Zaktualizowano” przy modyfikacji i „Usunięto” przy usuwaniu. Chociaż dwa lub trzy ekrany mogą używać tego samego pola stanu, ważne jest, aby upewnić się, że pole nie jest nieprawidłowo aktualizowane.
- Sprawdź, czy nagłówek, stopka, rozmiar ekranu i wygląd spełniają wymagania po integracji
- Sprawdź, czy po kliknięciu przycisku Prześlij formant zostanie przeniesiony na następny ekran
- Sprawdź, czy po kliknięciu przycisku Anuluj wykonywana akcja jest anulowana
Ponadto ogólne przypadki testowe integracji dla aplikacji J2EE mogą obejmować:
- Sprawdź przepływ danych, obiekt, XML lub sesję od końca do końca. Sprawdź poprawność.
- Sprawdź, czy sesja jest poprawnie zarządzana przez każdy z modułów
- Jeśli w grę wchodzą aplikacje zewnętrzne (usługi internetowe), sprawdź, czy Twoja aplikacja może nawiązywać połączenia i pobierać dane z powrotem z aplikacji
# 3) TESTOWANIE SYSTEMU
W przypadku testów systemowych cała aplikacja jest testowana pod kątem funkcjonalności i kompletności w odniesieniu do wymagań. Prawdopodobnie łatwiej byłoby zapytać, kiedy przeprowadza się testy jednostkowe każdego komponentu, a komponenty kodu są również łączone i testowane razem podczas testów integracyjnych, co może się różnić w testowaniu systemu? Nie jest niedokładne stwierdzenie, że w testach systemowych chodzi o to, aby zepsuć aplikację :)
Scenariusz 1: Tworzysz nową aplikację pracowniczą z frameworkiem;na przykład, Struts. Istnieje również kilka innych aplikacji działających na różnych serwerach w Twojej organizacji. Jednak wszyscy dzwonią do tej samej istniejącej usługi internetowej, aby pobrać adres i numer telefonu określonej osoby.
Podczas testowania integracji sprawdziłeś, czy Twoja aplikacja jest w stanie nawiązać połączenie z usługą internetową i czy możesz uzyskać odpowiedź. Ale co, jeśli wystąpi problem z samą usługą sieciową? Lub usługa internetowa nie reaguje na niektóre rzadkie dane wejściowe? Usługa internetowa w naszym przypadku może przyjąć maksymalnie 6 znaków pracownika. Lub usługa internetowa zgłasza wyjątki dla niektórych formatów adresu podczas zwracania. Jest to zewnętrzne, ale jest to również część testów systemu.
Scenariusz 2 : Twoje podanie pracownika jest kompletne. Dodajesz pracownika i generuje numer pracownika # 1001. Modyfikujesz, usuwasz, aktualizujesz, dodajesz, modyfikujesz, usuwasz, dodajesz, dodajesz, dodajesz, modyfikujesz, usuwasz, a na końcu dodajesz kolejny. A co, jeśli nowy numer pracownika to znowu # 1001?
Scenariusz nr 3 : Załóżmy, że dwóch użytkowników korzysta z aplikacji w tym samym czasie. Obaj rozpoczynają pracę nad tym samym pracownikiem, jeden usuwa. Co się stanie, jeśli inny użytkownik będzie mógł kontynuować modyfikację tych samych pracowników, którzy są zapisani w sesji?
Poniżej znajduje się kilka ważnych aspektów testowania systemu:
- Upewnij się, że przepływ danych i kontrola są prawidłowe z koniec końców
- Zapewnij bezpieczeństwo danych transakcji
- Upewnij się, że aplikacja spełnia wszystkie funkcje biznesowe
- Sprawdź, czy aplikacja działa dobrze jako produkt końcowy - sprawdź uszkodzone linki, zarządzanie sesjami, pliki cookie, logowanie, obsługę błędów, obsługę wyjątków, walidację i przepływ transakcji.
# 4) TESTOWANIE WYDAJNOŚCI
Ten typ testowania jest wykonywany, gdy z aplikacji korzystałoby duża liczba użytkowników lub duża ilość danych w bazie danych, lub obie te rzeczy. Poniżej znajduje się kilka przypadków:
- Jeśli jednocześnie loguje się wielu użytkowników, sprawdź, czy aplikacje się nie zawieszają / nie zawieszają
- Jeśli w bazie danych jest duża ilość danych - sprawdź, czy siatki ekranu wyszukiwania nie zajmują dużo czasu na wykonanie zapytań przed upływem limitu czasu sesji
- W środowisku wielowątkowym sprawdź, czy aplikacja jest w stanie dobrze obsłużyć wszystkie wątki
- W aplikacjach, w których tworzona jest duża liczba obiektów, sprawdź, czy przydzielono wystarczającą ilość pamięci, czy jest obsługiwane czyszczenie pamięci i czy nie ma wyjątków braku pamięci
Wniosek
W tym artykule omówiliśmy przegląd aplikacji J2EE. Widzieliśmy również, jak ręcznie wykonywać testy jednostkowe, integracyjne, funkcjonalne i systemowe dla każdego z komponentów aplikacji na przykładzie.
w następny artykuł , zobaczymy, jak testowanie automatyzacji może być korzystne dla dużych aplikacji J2EE.
O autorze: To jest gościnny artykuł autorstwa Padmavaty S. Mając ponad 7-letnie doświadczenie w testowaniu oprogramowania, ma duże doświadczenie w testowaniu frameworka Java, J2EE, MVC i Struts.
Daj nam znać, jeśli pracujesz nad testowaniem aplikacji JAVA. Podziel się swoimi doświadczeniami i zapytaniami w komentarzach poniżej.
POPRZEDNIA samouczek | NEXT Tutorial
rekomendowane lektury
- ISTQB Testing Certification Przykładowe pytania z odpowiedziami
- Jak przeprowadzić automatyczne testowanie aplikacji JAVA / J2EE (część 2)
- Najlepsze narzędzia do testowania oprogramowania 2021 (Narzędzia do automatyzacji testów QA)
- 20 praktycznych wskazówek dotyczących testowania oprogramowania, które należy przeczytać przed przetestowaniem dowolnej aplikacji
- Testowanie aplikacji opieki zdrowotnej - wskazówki i ważne scenariusze testowania (część 2)
- Jak znaleźć błąd w aplikacji? Porady i wskazówki
- Testowanie bazy danych za pomocą narzędzia JMeter
- Wirtualna maszyna Java: jak JVM pomaga w uruchamianiu aplikacji Java