how test java applications tips with sample test cases
In diesem Tutorial lernen wir die Komponenten einer Java-Anwendung und die verschiedenen Arten von Tests kennen, die durchgeführt werden müssen, um eine qualitativ hochwertige, fehlerfreie Anwendung sicherzustellen.
Das ist ein dreiteilige Serie zum Testen von JAVA-Anwendungen.
- In diesem Artikel lernen wir die J2EE-Komponenten und den manuellen Testansatz für eine J2EE-Anwendung kennen.
- Im zweiten werden wir die überprüfen Automatisiertes Testen Ansatz zum Testen von J2EE-Anwendungen und
- Im dritten Teil werden wir eine umfassende Liste der Tools überprüfen, die zum Testen von J2EE-Anwendungen verfügbar sind.
Was du lernen wirst:
- Beginnen wir mit der Übersicht über J2EE-Anwendungen
- Testen der JAVA / J2EE-Anwendung
- Manuelles Testen von Java-Anwendungen:
- Fazit
- Literatur-Empfehlungen
Beginnen wir mit der Übersicht über J2EE-Anwendungen
ZU Java Die Webanwendung besteht aus mehreren Komponenten, die jeweils einen wichtigen Zweck erfüllen. MVC steht für Model View Controller und ist das beliebteste und am häufigsten verwendete architektonische Entwurfsmuster.
Bevor wir lernen zu testen, lassen Sie uns kurz durch die verschiedene Komponenten einer J2EE-Anwendung.
- Client / Browser fragt nach einer Webadresse mit einer URL.
- JSP (Java Server Pages) - JSP ist eine serverseitige Technologie, mit der dem Benutzer Daten präsentiert werden sollen. Es unterstützt die Anzeige dynamischer Inhalte mithilfe spezieller Tags, die als JSP-Tags bezeichnet werden und das Einfügen von Java-Code in HTML-Seiten unterstützen. (Statisches HTML zeigt immer den gleichen Inhalt an). Zur Laufzeit wird eine JSP in ein Servlet konvertiert. Geschäftslogik wird hier normalerweise nicht geschrieben.
- JSF (Java Server Faces) - JSF ist ein Ansichtskomponenten-Framework für das effektive Design der Benutzeroberfläche.
- Javascript / Jquery - sind Skriptsprachen, die für die clientseitige Validierung der Ansicht / des Bildschirms verwendet werden.
- Servlet - Ein Servlet überprüft die von der Eingabe empfangenen Daten, wählt den entsprechenden Geschäftslogikcode aus und gibt die Werte an den Bean-Code weiter.
- Enterprise Java Bean (EJB) - Hier wird normalerweise die gesamte Geschäftslogik geschrieben und verarbeitet. Die Bean ruft dann den Code auf, um die Datenbank entweder zu lesen, zu schreiben oder zu aktualisieren. Sobald die Datenbankoperationen abgeschlossen sind, wird die Antwort zurück an das Servlet übertragen, das wiederum die entsprechende JSP auswählt, um die Ergebnisse anzuzeigen.
- Internetdienste - Webservices sind Komponenten einer Anwendung, die auf einem separaten Server ausgeführt werden und über das HTTP-Protokoll kommunizieren.
- Datenbank - speichert die gesamten Daten der Anwendung.
Bitte beachten Sie, dass nicht alle Webanwendungen dem folgen JSP -> Servlet -> EJB -> Datenbankmodell . Die meisten J2EE-Anwendungen werden derzeit mit einem Framework wie Struts, Spring oder Hibernate geschrieben. Das Design von Anwendungen variiert für jede Anforderung basierend auf der Größe der Anwendung, den Kosten, der Entwicklungszeit, den Ressourcen und der Teamgröße.
Testen der JAVA / J2EE-Anwendung
Lassen Sie uns nun zum Testen einer gesamten J2EE-Anwendung übergehen. Dies erfolgt in mehreren Schritten.Zum BeispielBedenken Sie, dass wir haben drei Bildschirme:
- Ein Anmeldebildschirm
- Ein Mitarbeiteranzeigebildschirm, auf dem alle Mitarbeiter in der Organisation aufgelistet sind
- Ein Bildschirm zum Ändern / Hinzufügen / Entfernen von Mitarbeitern.
Die Benutzeroberfläche (User Interface) für diese drei Bildschirme wird mit JSP / HTML entwickelt und die Validierungen über JavaScript durchgeführt. Da es sich um eine Beispielanwendung handelt, befindet sich die Logik im Servlet und im DAO (Data Access Object). DAO ist eine Klasse zum Herstellen einer Verbindung zur Datenbank.
Unten sind die Beispielbildschirme:
Manuelles Testen von Java-Anwendungen:
Während des manuellen JAVA-Tests bereitet ein Tester die Testfälle aus dem detaillierten Konstruktionsdokument vor und versucht, jedes mögliche Szenario und Code-Snippet abzudecken.
# 1) JAVA UNIT TESTING
Unit Testing ist eine Art von Test wobei ein Benutzer das kleinste der Codefragmente auf Genauigkeit, Korrektheit und Erfüllung der Anforderungen testen muss.
Nehmen wir dasBeispiel für den Anmeldebildschirm. Der Anmeldebildschirm enthält zwei Textfelder: Benutzername und Passwort sowie zwei Schaltflächen: Senden und Abbrechen.
Die Testfälle sollten alle Schleifen und bedingten Anweisungen abdecken. Testfälle sollten die erwarteten Ergebnisse und die Testdaten anzeigen. Im Folgenden finden Sie einige allgemeine Testfälle, die ein Benutzer manuell in einem Anmeldebildschirm ausführen kann. Die Ergebnisse werden dann im Testfalldokument notiert.
Unten finden Sie ein Beispiel für ein Testfallformat für den Anmeldebildschirm.
S.No. | Testfall | erwartetes Ergebnis | Tatsächliche Ergebnis | Bestanden / Nicht bestanden |
---|---|---|---|---|
4 | Der Benutzer gibt einen Benutzernamen mit mehr als 10 Zeichen ein | Fehlermeldung 'Benutzername sollte nicht länger als 10 Zeichen sein' sollte angezeigt werden | Fehlermeldung wird nicht angezeigt | SCHEITERN |
1 | Der Benutzer überprüft das Erscheinungsbild der Labels Benutzername, Passwort | Die Beschriftungen sollten korrekt geschrieben und in normaler Schrift angezeigt werden | Der Label-Benutzername und das Passwort werden korrekt angezeigt | BESTEHEN |
zwei | Der Benutzer überprüft das Erscheinungsbild der Schaltfläche Senden und abbrechen | Die Schaltflächen sollten mit dem richtigen Namen angezeigt werden | Die Schaltflächen Senden und Abbrechen werden korrekt angezeigt | BESTEHEN |
3 | Der Benutzer überprüft die Hintergrundfarbe des Bildschirms | Das Anmeldeformular sollte sich in einer weißen Tabelle befinden und der Bildschirm sollte grau im Hintergrund sein | Das Erscheinungsbild des Bildschirms entspricht nicht den Anforderungen. | SCHEITERN |
4 | Der Benutzer lässt das Textfeld Benutzername leer | Die Fehlermeldung 'Benutzername darf nicht leer sein' sollte angezeigt werden | Die Fehlermeldung 'Benutzername darf nicht leer sein' wird angezeigt | BESTEHEN |
5 | Der Benutzer gibt einen Wert in das Textfeld Benutzername ein und lässt das Kennworttextfeld leer | Die Fehlermeldung 'Passwort darf nicht leer sein' sollte angezeigt werden | Die Fehlermeldung 'Passwort darf nicht leer sein' wird angezeigt | BESTEHEN |
6 | Der Benutzer gibt den Benutzernamen als 'abcd' und das Passwort als 'xxxx' ein. | Fehlermeldung 'Ungültige Benutzername und Passwort Kombination' sollte angezeigt werden | Fehlermeldung 'Ungültige Benutzername und Passwort Kombination' wird angezeigt | BESTEHEN |
5 | Der Benutzer gibt den Benutzernamen als 'Testbenutzer' und das Passwort als 'Passwort' ein und klickt auf die Schaltfläche 'Senden' | Der Benutzer sollte den Bildschirm 'Mitarbeiterdetails' sehen können. | Der Bildschirm mit den Mitarbeiterdetails wird angezeigt | BESTEHEN |
Während in der Tabelle einige der Testfälle aufgeführt sind, finden Sie unten die vollständige Liste:
- Suchen Sie nach Ausnahmen, einschließlich NULL-Zeigerausnahmen
- Überprüfen Sie, ob NULLS für Benutzername und Passwort nicht zulässig sind
- Überprüfen Sie, ob der Benutzername / das Passwort im richtigen Format vorliegt
- Überprüfen Sie, ob Nummern für den Benutzernamen nicht zulässig sind
- Überprüfen Sie, ob Sonderzeichen im Benutzernamen nicht zulässig sind
- Überprüfen Sie, ob die richtige Kombination aus Benutzername und Passwort eingegeben wurde. Die Anwendung führt Sie dann zum nächsten Bildschirm, d. H. Zum Bildschirm mit Mitarbeiterinformationen
- Überprüfen Sie, ob der eingegebene Benutzername die richtige Länge hat
- Überprüfen Sie, ob das Textfeld Benutzername nur die maximale Anzahl von Zeichen zulässt, die für dieses Feld angegeben wurden
- Überprüfen Sie bei der Eingabe, ob das in den Anforderungen angegebene Kennwortfeld als * angezeigt wird
- Überprüfen Sie, ob bei Passwörtern zwischen Groß- und Kleinschreibung unterschieden wird
- Überprüfen Sie, ob der Benutzername nicht zwischen Groß- und Kleinschreibung unterscheidet
- Überprüfen Sie, ob sich die Anmeldeseite auch nach dem Beenden nicht an den Benutzernamen oder das Kennwort erinnert
- Überprüfen Sie, ob die Schaltfläche Senden und Abbrechen gemäß den Anforderungen funktioniert
- Wenn Sie die Anwendung zum ersten Mal verwenden, überprüfen Sie, ob der Benutzername die Berechtigung zum Eingeben der Anwendung hat
- Löschen Sie eine Kombination aus Benutzername und Passwort aus der Datenbank und prüfen Sie, ob sich die Kombination nicht erneut anmelden kann
- Überprüfen Sie in allen oben genannten Fällen, ob die entsprechenden Validierungsfehlermeldungen angezeigt werden
- Überprüfen Sie, ob sich die Beschriftungen und Schaltflächen an der richtigen Stelle auf dem Bildschirm befinden und ob der Text korrekt angezeigt wird
- Überprüfen Sie, ob die Bildschirmanzeigen den Anforderungen entsprechen
- Überprüfen Sie, ob Ausnahmen behandelt werden
- Überprüfen Sie, ob die Protokollierung für die erforderlichen Aktionen durchgeführt wird
Nachdem Sie die Testfälle durchgearbeitet haben, stellen Sie möglicherweise fest, dass Sie sich hauptsächlich mit dem Testen von Feldern, Schaltflächen, Funktionen und Validierungen eines bestimmten Bildschirms befassen. Dies ist genau, da Unit Testing sich sehr intensiv mit dem Testen jedes kleinen Code-Snippets und jeder kleinen Code-Komponente befasst. Für alle Bildschirme sollte die gleiche Art von Tests durchgeführt werden.
Bitte beachten Sie, dass die oben genannten Beispiele nur Beispiele sind und Testfälle auf der Grundlage eines projektspezifischen und detaillierten Entwurfsdokuments erstellt werden.
Lesen Sie auch=> Probe gebrauchsfertige Testfälle und Testszenarien zum Testen von Webanwendungen.
# 2) INTEGRATIONSTEST
Beim Integrationstest werden einzelne Module integriert und gemeinsam auf Richtigkeit geprüft.
Fragen und Antworten zur csqa-Prüfung pdf
Jeder der drei Bildschirme im obigen Beispiel wird von drei verschiedenen Teammitgliedern entwickelt. Nachdem die Unit-Tests abgeschlossen sind, ist es an der Zeit, den gesamten Code zusammenzuführen und zu überprüfen, ob sie gut zusammenarbeiten. Integrationstests werden durchgeführt, um sicherzustellen, dass Daten oder Steuerelemente korrekt von einem Bildschirm auf einen anderen übertragen werden.
Hier einige Beispiele für Integrationstestfälle für das Beispiel der Mitarbeiteranwendung:
- Überprüfen Sie, ob der angemeldete Benutzer und die Sitzung in allen anderen neuen integrierten Bildschirmen identisch sind
- Überprüfen Sie, ob die anderen Module keine nicht erforderlichen Datensätze in der Datenbank aktualisieren, löschen oder einfügen
- Es soll ein Feld für den Mitarbeiterstatus vorhanden sein, in dem beim Hinzufügen 'Neu', beim Ändern 'Aktualisiert' und beim Löschen 'Gelöscht' steht. Obwohl zwei oder drei Bildschirme dasselbe Statusfeld verwenden können, ist es wichtig sicherzustellen, dass das Feld nicht falsch aktualisiert wird.
- Überprüfen Sie nach der Integration, ob Kopf- und Fußzeile, Bildschirmgröße und Erscheinungsbild den Anforderungen entsprechen
- Überprüfen Sie, ob beim Klicken auf die Schaltfläche Senden das Steuerelement auf den nächsten Bildschirm übertragen wird
- Überprüfen Sie, ob beim Klicken auf die Schaltfläche Abbrechen die ausgeführte Aktion abgebrochen wird
Darüber hinaus können die allgemeinen Integrationstestfälle für eine J2EE-Anwendung Folgendes sein:
- Überprüfen Sie den Datenfluss, entweder Objekt, XML oder Sitzung, von Ende zu Ende. Auf Richtigkeit prüfen.
- Überprüfen Sie, ob die Sitzung von jedem der Module korrekt verwaltet wird
- Wenn externe Anwendungen (Webdienste) beteiligt sind, prüfen Sie, ob Ihre Anwendung Anrufe tätigen und Daten aus der Anwendung zurückrufen kann
# 3) SYSTEMTEST
Beim Systemtest wird die gesamte Anwendung auf Funktionalität und Vollständigkeit in Bezug auf die Anforderungen getestet. Es ist wahrscheinlich einfacher zu fragen, wann Unit-Tests für jede Komponente durchgeführt werden und die Code-Komponenten auch während des Integrationstests kombiniert und zusammen getestet werden. Was könnte beim Systemtest anders sein? Es ist nicht ungenau zu sagen, dass die Idee beim Systemtest darin besteht, die Anwendung zu brechen :)
Szenario 1: Sie entwickeln eine neue Mitarbeiteranwendung mit einem Framework.zum Beispiel, Streben. Es gibt auch mehrere andere Anwendungen, die auf verschiedenen Servern in Ihrer Organisation ausgeführt werden. Alle rufen jedoch denselben vorhandenen Webdienst an, um die Adresse und Telefonnummer einer bestimmten Person abzurufen.
Während des Integrationstests hätten Sie getestet, ob Ihre Anwendung den Webdienst anrufen kann und ob Sie die Antwort erhalten können. Aber was ist, wenn es ein Problem im Webdienst selbst gibt? Oder reagiert der Webdienst nicht auf einige seltene Eingaben? Der Webdienst kann in unserem Fall nur eine Mitarbeiterzahl von maximal 6 Zeichen annehmen. Oder der Webdienst löst bei der Rückkehr Ausnahmen für bestimmte Adressformate aus. Dies ist extern, aber auch Teil des Systemtests.
Szenario 2 : Ihre Mitarbeiterbewerbung ist vollständig. Sie fügen einen Mitarbeiter hinzu und er generiert eine Mitarbeiternummer # 1001. Sie ändern, löschen, aktualisieren, hinzufügen, ändern, löschen, hinzufügen, hinzufügen, hinzufügen, ändern, löschen und fügen schließlich eine weitere hinzu. Was ist, wenn die neue Mitarbeiternummer wieder # 1001 lautet?
Szenario 3 : Nehmen wir an, zwei Benutzer verwenden die Anwendung gleichzeitig. Beide beginnen an demselben Mitarbeiter zu arbeiten, einer löscht. Was ist, wenn der andere Benutzer mit der Änderung derselben Mitarbeiter fortfahren kann, die in der Sitzung gespeichert sind?
Im Folgenden sind einige wichtige Aspekte des Systemtests aufgeführt:
- Stellen Sie sicher, dass der Datenfluss und die Kontrolle korrekt sind Ende zu Ende
- Stellen Sie die Sicherheit der Transaktionsdaten sicher
- Stellen Sie sicher, dass die Anwendung allen Geschäftsfunktionen entspricht
- Überprüfen Sie, ob die Anwendung als Endprodukt gut funktioniert - überprüfen Sie defekte Links, Sitzungsverwaltung, Cookies, Protokollierung, Fehlerbehandlung, Ausnahmebehandlung, Validierung und Transaktionsfluss.
# 4) LEISTUNGSPRÜFUNG
Diese Art von Tests wird durchgeführt, wenn eine große Anzahl von Benutzern die Anwendung oder große Datenmengen in der Datenbank oder beides verwendet. Nachfolgend einige Fälle:
- Wenn sich mehrere Benutzer gleichzeitig anmelden, überprüfen Sie, ob die Anwendungen nicht hängen bleiben / abstürzen
- Wenn eine große Datenmenge in der Datenbank verfügbar ist, stellen Sie sicher, dass das Ausführen von Abfragen vor dem Sitzungszeitlimit nicht lange dauert
- Überprüfen Sie in einer Umgebung mit mehreren Threads, ob die Anwendung alle Threads gut verarbeiten kann
- Überprüfen Sie in Anwendungen, in denen eine große Anzahl von Objekten erstellt wird, ob ausreichend Speicher zugewiesen ist, die Speicherbereinigung verarbeitet wird und ob keine Ausnahmen für nicht genügend Speicher vorhanden sind
Fazit
In diesem Artikel haben wir einen Überblick über eine J2EE-Anwendung gegeben. Wir haben auch anhand eines Beispiels gesehen, wie man Unit-, Integrations-, Funktions- und Systemtests für jede der Komponenten der Anwendung manuell durchführt.
In dem nächster Artikel Wir werden sehen, wie nützlich Automatisierungstests für große J2EE-Anwendungen sein können.
Über den Autor: Dies ist ein Gastartikel von Padmavaty S. Mit mehr als 7 Jahren Erfahrung im Testen von Software verfügt sie über umfangreiche Erfahrung im Testen von Java-, J2EE-, MVC- und Struts-Frameworks.
Lassen Sie uns wissen, wenn Sie an der Prüfung von JAVA-Anwendungen arbeiten. Teilen Sie Ihre Erfahrungen und Fragen in den Kommentaren unten.
PREV Tutorial | NÄCHSTES Tutorial
Literatur-Empfehlungen
- Beispielfragebögen zur ISTQB-Testzertifizierung mit Antworten
- Durchführen von Automatisierungstests von JAVA / J2EE-Anwendungen (Teil 2)
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- Top 20 praktische Tipps zum Testen von Software, die Sie lesen sollten, bevor Sie eine Anwendung testen
- Testen von Anwendungen im Gesundheitswesen - Tipps und wichtige Testszenarien (Teil 2)
- Wie finde ich einen Fehler in der Anwendung? Tipps und Tricks
- Datenbanktests mit JMeter
- Java Virtual Machine: Wie JVM beim Ausführen von Java-Anwendungen hilft