Softwareanwendungen durchlaufen diverse Stadien, bevor sie dem Endverbraucher zur Verfügung gestellt werden.
Das Testen ist ein essenzieller Bestandteil des SDLC (Software Development Life Cycle), da es Fehler identifiziert und sicherstellt, dass eine Anwendung wie vorgesehen funktioniert.
Früher nutzten Softwaretester vorrangig manuelle Testmethoden. Manuelles Testen ist jedoch zeitintensiv und bringt diverse Herausforderungen mit sich. Um Softwaretests zu automatisieren, wurde Selenium entwickelt.
Selenium ist heutzutage marktführend und wird von den meisten Softwaretestern eingesetzt. Wenn Sie eine Position als Softwaretester anstreben, verschafft Ihnen die Beherrschung gängiger Selenium-Interviewfragen einen Vorteil gegenüber anderen Bewerbern.
Im Folgenden finden Sie Fragen und Antworten zu Selenium-Interviews, auf die Sie wahrscheinlich treffen werden:
Was bedeutet Automatisierungstest?
Vereinfacht gesagt ist Automatisierungstest der Prozess, bei dem das Schreiben und Ausführen von Softwaretests mithilfe einer automatisierten Testsuite erfolgt, ohne dass manuelle Eingriffe erforderlich sind. Automatisierungstests ermöglichen es Testern, ein gesondertes Tool zu verwenden, um Testaufgaben wiederholt durchzuführen.
Welche Vorteile bietet das Automatisierungstesten?
- Es spart Zeit und Kosten. Softwaretests können teuer werden, wenn manuelle Tester beschäftigt werden müssen. Automatisierte Tests können langfristig kostengünstiger sein.
- Es fördert die Wiederverwendbarkeit von Code. Tests können einmalig eingerichtet und dann wiederholt ausgeführt werden.
- Es reduziert menschliche Fehler und verbessert die Genauigkeit.
- Es ist ideal für umfangreiche Anwendungen. Das Testen einer kleinen App kann mit manuellen Tests einfach sein. Bei der Skalierung der App erweist sich ein automatisiertes Testkit jedoch als nützlich.
Was ist Selenium?
Selenium ist eine Open-Source- und kostenlose Automatisierungstestsuite für Web-UIs, die 2004 von Jason Huggins entwickelt wurde. Dank der aktiven Community hat sich Selenium zu einer der populärsten Softwaretestsuiten für die Automatisierung entwickelt. Die Selenium Suite wird von verschiedenen Browsern und Plattformen unterstützt.
Welche verschiedenen Formen von Selenium gibt es?
Selenium ist mehr als nur ein Testtool, es ist eine Suite aus verschiedenen Werkzeugen. Hier sind die verschiedenen Formen von Selenium:
- Selenium Integrated Development Environment (IDE)
- Selenium WebDriver
- Selenium Remote Control (RC)
- Selenium Grid
Welche Programmiersprachen unterstützt Selenium?
- Python
- Java
- C#
- JavaScript
- Ruby
- PHP
- Perl
Welche Testarten werden von Selenium unterstützt?
Was ist Selenium WebDriver?
Selenium WebDriver ist für die Kommunikation mit Webbrowsern zuständig. Dieses Tool nutzt seine native Kompatibilität, um diverse Aufgaben zu automatisieren.
Was ist Selenium IDE?
Selenium IDE ist ein Firefox-Plugin, das als Tool zur Aufnahme und Wiedergabe fungiert. Es wurde entwickelt, um die Erstellung von Automatisierungsskripten zu beschleunigen.
Was ist ein Selenium Grid?
Mit diesem Tool können Anwender die Testausführung gleichzeitig auf mehrere Umgebungen und Plattformen verteilen.
Was ist Selenium RC (Remote Control)?
RC ist ein Tool, mit dem Anwender Testskripte in der gewünschten Programmiersprache erstellen können. Es ermöglicht Anwendern auch, Testskripte in einer Vielzahl von Browsern auszuführen.
Was versteht man unter Selenese?
Selenium IDE verwendet eine Sprache namens Selenese, die zum Schreiben von Selenium-Befehlen verwendet wird. Diese Befehle helfen Selenium zu verstehen, welche Operationen oder Aktionen auszuführen sind.
Welche Arten von Selenese gibt es?
- Aktionen: Dies sind Befehle, die den Zustand der Anwendung manipulieren. „In dieses Feld eingeben“ und „auf diesen Link klicken“ sind Beispiele für Aktionen.
- Accessoren: Diese steuern den Zustand der Anwendung und speichern Ergebnisse in Variablen.
- Assertionen: Dies sind Befehle, die es dem Tester ermöglichen, den Status der Anwendung zu prüfen.
Welche Methoden gibt es, um ein Element in Selenium zu lokalisieren?
- ID
- Klassenname
- Name
- Link Name
- Link Text
- PartialLinkText
- XPath
- CSS-Selektor
- Dom
Was ist ein XPath?
Ein XPath lokalisiert ein Webelement basierend auf seinem Pfad in der Extensible Markup Language (XML). XML speichert und transportiert beliebige Daten.
Was ist der Unterschied zwischen „/“ und „//“ im XPath?
„/“ oder der einzelne Schrägstrich erstellt einen XPath mit einem absoluten Pfad. Der XPath beginnt die Auswahl vom Startknoten/Dokumentknoten.
„//“ oder der doppelte Schrägstrich wird verwendet, um einen XPath mit einem relativen Pfad zu erstellen. Der XPath beginnt die Auswahl an einer beliebigen Stelle im Dokument.
Was ist ein absoluter XPath?
Ein absoluter XPath beginnt mit einem einzelnen Schrägstrich „/“. Ein solcher Pfad hat einen vollständigen Pfad von der Wurzel bis zu dem Element, das wir identifizieren wollen.
Was ist der Unterschied zwischen findElement() und findElements()?
- findElements(): Nutzt den angegebenen Lokalisierungsmechanismus, um alle Elemente auf der aktuellen Seite zu finden und gibt eine Liste aller Webelemente zurück.
- findElement(): Findet das erste Element auf der aktuellen Seite unter Verwendung des angegebenen Lokalisierungsmechanismus und gibt nur ein einzelnes Webelement zurück.
Welche Arten von Anmerkungen werden in Selenium verwendet?
- BeforeSuite
- BeforeTest
- BeforeClass
- BeforeMethod
- Testfall
- AfterMethod
- AfterClass
- AfterTest
- AfterSuite
Was sind Assertionen in Selenium?
Assertionen überprüfen, ob die Anwendung wie erwartet funktioniert. Wenn Assertionen fehlschlagen, schlägt der Testfall fehl und die Ausführung wird unterbrochen.
Was sind Assert- und Verify-Befehle?
- Assert: Wenn die Assert-Bedingungen wahr sind, setzt das Programm die Ausführung mit dem nächsten Testschritt fort. Ist die Bedingung jedoch falsch, wird die Ausführung unterbrochen und keine weiteren Tests durchgeführt.
- Verify: Die Testausführung wird fortgesetzt, unabhängig davon, ob die verifizierte Bedingung wahr oder falsch ist.
Was ist die Same-Origin-Policy und wie geht Selenium damit um?
Die Same-Origin-Policy ist ein Sicherheitsmechanismus, der einschränkt, wie ein Skript oder ein Dokument, das von einem bestimmten Ursprung geladen wird, mit einer Ressource eines anderen Ursprungs interagiert. Dieser Ansatz hilft, bösartige Skripte zu isolieren.
Selenium implementiert die Same-Origin-Policy mit einer Proxy-Injection-Methode. In diesem Setup fungiert der Selenium-Server als vom Client konfigurierter HTTP-Proxy zwischen der zu testenden Anwendung und dem Browser. Diese Proxy-Injection maskiert die AUT (Application Under Test) durch eine fiktive URL.
Was ist die Pausenfunktion in Selenium IDE?
Die Pause ist ein Selenium-IDE-Befehl, der die Ausführung automatisierter Tests um eine bestimmte Zeit verzögert. Die Wartezeit wird in Millisekunden angegeben, d.h. 3000 für 3 Sekunden Wartezeit.
Warum schlagen Selenium-IDE-Tests fehl?
- Asynchrone Webseiten: Selenium-Tests werden in einer bestimmten Reihenfolge erstellt. Einige Webseiten basieren jedoch auf einer asynchronen Architektur, und die Antworten kommen möglicherweise nicht in der erwarteten Reihenfolge.
- Zeitüberschreitungen: Selenium kann fehlschlagen, wenn auf das Laden einer Komponente gewartet wird. Solche Fehler können mit „Waits“ behandelt werden.
- Fehler: Selenium wird ständig verbessert, aber gelegentlich können Fehler auftreten, die dazu führen, dass Tests fehlschlagen.
- Kleine Änderungen am Quellcode: Wenn eine Änderung an einem Locator vorgenommen wird, können alle Tests fehlschlagen, die sich auf diesen Locator beziehen.
Was ist TestNG und welche Funktionen bietet es?
TestNG ist ein Testautomatisierungs-Framework, das von JUnit und NUnit inspiriert wurde. NG, Next Generation, ist ein Open-Source- und kostenloses Tool.
Dies sind einige der TestNG-Funktionen:
- Es bietet verschiedene Arten von Assertionen.
- Es ermöglicht Anwendern die parallele Ausführung von Tests.
- Mit den Attributen „dependsOnMethods“ und „dependsOnGroups“ können Tests voneinander abhängig gemacht werden.
- Es führt datengesteuerte Tests durch.
- Es ermöglicht die Gruppierung verschiedener Tests.
Was ist der Unterschied zwischen implizitem und explizitem Warten?
- Implizites Warten: Es weist den WebDriver an, eine bestimmte Zeit zu warten, bevor eine Ausnahme ausgelöst wird. Der Standardwert ist 0. Sobald die Zeit festgelegt ist, wartet der WebDriver bis zum Ablauf dieser Zeit, bevor er eine Ausnahme auslöst.
- Explizites Warten: Es weist den WebDriver an, auf bestimmte Bedingungen oder ExpectedConditions zu warten, bevor eine „ElementNotVisibleException“-Ausnahme ausgelöst wird. Das explizite Warten ist ein „intelligentes“ Warten, das nur für bestimmte Elemente gilt.
Was ist ein Objekt-Repository?
Ein Objekt-Repository ist eine Sammlung von Schlüssel-Wert-Paaren in einem automatisierten GUI-Testskript, das die Belastung der Testskriptwartung reduziert. Der Schlüssel ist ein logischer Name zur Identifizierung der Objekte, und die Werte sind eindeutige Eigenschaften, die die Objekte auf einem Bildschirm identifizieren.
Es dient als zentrale Stelle, an der alle Daten gespeichert und verwaltet werden.
Welche Ausnahmen können in einem Selenium-Webtreiber auftreten?
Eine Ausnahme ist ein unvorhergesehenes oder ungewöhnliches Ereignis, das während der Ausführung eines Programms oder einer Softwareanwendung auftreten kann. Es kann auch als Laufzeitfehler eines unerwarteten Ereignisses oder Ergebnisses beschrieben werden, das den üblichen Programmablauf stört.
Dies sind die wichtigsten Ausnahmen im Selenium-Webtreiber:
- NoSuchWindowException: Der WebDriver versucht, zu einem ungültigen (nicht verfügbaren) Fenster zu wechseln.
- NoSuchElementException: Tritt auf, wenn ein Element nicht gefunden werden kann.
- NoAlertPresentException: Diese Ausnahme tritt auf, wenn versucht wird, zu „keiner angezeigten Warnung“ zu wechseln.
- TimeoutException: Ein bestimmter Befehl wurde nicht innerhalb des angegebenen Zeitrahmens abgeschlossen.
- ElementNotVisibleException
- ElementNotSelectableException: Diese Ausnahme tritt auf, wenn ein Element deaktiviert ist (nicht ausgewählt oder angeklickt werden kann), obwohl es im DOM vorhanden ist.
- SessionNotFoundException: Der WebDriver agiert in diesem Fall direkt nach dem Schließen des Browsers.
Nennen Sie verschiedene Typen von Locators
- ID
- Name
- Klassenname
- Link Name
- Link Text
- partialLinkText
- CSS-Selektor
- XPath
Was sind Haltepunkte und Startpunkte?
- Startpunkte: Sie geben an, wo die Ausführung eines Codes beginnen soll. Startpunkte können verwendet werden, um ein Testskript ab der Mitte des Codes oder dem Haltepunkt auszuführen.
- Haltepunkte: Sie werden verwendet, um die Codeausführung zu stoppen. Haltepunkte dienen dazu, zu überprüfen, ob der Code wie erwartet funktioniert.
Zusammenfassung
Oben wurden einige der Selenium-Interviewfragen aufgeführt, denen Sie wahrscheinlich bei Ihrem nächsten Vorstellungsgespräch für eine Position als Testautomatisierungstechniker begegnen werden. Stellen Sie sicher, dass Sie über die erforderlichen Fähigkeiten verfügen, bevor Sie sich für eine solche Rolle bewerben.
Hat Ihnen der Artikel gefallen? Teilen Sie ihn gern mit der Welt!