Testautomatisierung: Java oder Python?

Hallo alle zusammen! Im März startet OTUS zwei Testautomatisierungskurse gleichzeitig: "Python QA Engineer" und "Java QA Engineer" . Wir werden oft gefragt, welchen dieser Kurse wir wählen sollen. Wir haben uns entschlossen, diese Frage durch die Übersetzung eines Artikels aus SafeBear zu beantworten.




Eine der häufigsten Fragen lautet:
Welchen Kurs soll ich belegen: Testautomatisierung in Python oder Testautomatisierung in Java? Und warum haben wir Kurse in beiden Sprachen?

Das Erste und Wichtigste: Es spielt keine Rolle, welche Sprache Sie automatisieren.

Die Anwendung, die Sie testen möchten, kann in Java, Python, C #, Assembly, Scala oder einer anderen verfügbaren Programmiersprache geschrieben werden. Automatisierte Test-Frameworks in Python automatisieren manuelle Tests nicht schlechter als Java-Frameworks. Bei der GUI-Automatisierung spielt es keine Rolle, auf welchem ​​Framework Sie testen.

Welcher Kurs für Sie geeignet ist, hängt von Ihrer Situation ab. Wenn Sie ein Automatisierungsexperte werden möchten, möchten Sie höchstwahrscheinlich beide Kurse belegen, da die Frameworks immer noch sehr unterschiedlich sind. Jeder von ihnen bewältigt seine Aufgaben, wie Sie unten sehen werden, und manchmal hängt die Auswahl eines Frameworks von den persönlichen Vorlieben ab.

Ich habe versucht, die Vor- und Nachteile dieser beiden Frameworks herauszufinden, in der Hoffnung, dass dies Ihren Entscheidungsprozess erleichtert. Wenn danach die Entscheidung nur noch schwieriger wird, dann vergib mir.

Python ist perfekt


Profis


Automatisiert Ihre Welt, nicht nur Ihre Tests. Es ist schwierig, den Weg eines Testers einzuschlagen, ohne Python zu kennen. Wenn es eine solche Sprache gibt, die Sie kennen müssen, um ALLES automatisieren zu können, dann ist dies definitiv Python. Sie können die Bereitstellung der Umgebung automatisieren, damit Ports scannen oder Sicherheitstests durchführen. Für CI ist dies unverzichtbar. Python wird dein Freund, an den du dich immer wieder wenden wirst, um Hilfe zu erhalten.

Kurz und einfach . Im Vergleich zur geladenen Java-Syntax ist es lächerlich einfach zu bedienen und zu lesen. Es ist auch bekannt, dass in Java 10 Zeilen pro Zeile in Python vorhanden sind.

Denn du hast schon alles getan. Viele andere Leute verwenden Python aus dem gleichen Grund wie Sie. Daraus können wir schließen, dass jemand bereits den Code geschrieben hat, den Sie benötigen, und Sie können ihn einfach importieren.

Schulung und Unterstützung. Im Internet finden Sie eine Reihe von Schulungen und nützlichen Materialien. Im Allgemeinen sind die Leute zu dem Schluss gekommen, dass Python-Materialien verständlicher sind als jede andere Sprache.

Minuspunkte


Schmerzen mit der IDE . Python wurde entwickelt, um einfach und universell zu sein und die Möglichkeit zu bieten, Skripte direkt vom Interpreter aus zu schreiben, sodass es nicht mit der IDE und Java zurechtkommt. Es ist so einfach und vielseitig, dass die IDE nicht verstehen kann, was Sie tun, wenn Sie Objekte erstellen und zwischen Methoden übergeben. Dies ist eine unangenehme Funktion, die eine Rolle spielen kann, wenn Sie die IDE wirklich zum Erstellen Ihres Frameworks verwenden möchten.

Office-Unterstützung . Manchmal ist es besser, lokale Unterstützung zu haben. Wenn niemand in Ihrem Team Python kennt, gibt es niemanden, der dringend Hilfe bei der Lösung neu auftretender Probleme erhält.

Java ist was Sie brauchen!


Profis


Tolle IDEs . Es ist eine Freude, in einer Umgebung wie der IntelliJ IDE in Java zu schreiben . Die IDE erledigt den größten Teil der Arbeit für Sie und übernimmt sogar den Schmerz der komplexen Syntax. Die Funktionen der Code-Vervollständigung werden viel Arbeit für Sie erledigen, bis Sie den Eindruck haben, dass Sie nur ein paar Zeichen auf der Tastatur eingegeben haben.

PageFactory . PageFactory in Java vereinfacht den Code für die Selenium-Automatisierung und ermöglicht das Schreiben leicht verständlicher Tests.

Heimunterstützung. Die meisten Tester arbeiten mit Java-Entwicklern. Wenn Sie mit etwas nicht weiterkommen, werden Sie nach ein paar Tischen immer jemand sein, der Ihnen hilft. Dies hilft sehr in der Lernkurve und bietet Ihnen die Vorteile des Wissens und der Erfahrung Ihrer Kollegen. Haben Sie keine Zeit, sich umzuschauen, da Sie ein Profi werden.

Minuspunkte


Abrakadabra . Es ist nicht einfach, Java-Code im Vergleich zu einfachem englischem Python zu lesen. Java hat auch eine sehr steile Lernkurve und die Dokumentation ist nicht immer nützlich. Hilfe zu vielen Themen finden Sie jedoch online (z. B. zum Stapelüberlauf ).

Schmerz mit Nullzeiger . Wenn Java eine Fehlermeldung ausgibt und eine Stapelverfolgung anzeigt, ist es nicht immer leicht zu verstehen, worum es geht, und manchmal sind diese Informationen nutzlos. IntelliJ hilft, wo es kann, aber unverständliche Fehlermeldungen können das Debuggen zu einer völligen Störung machen.

Beschränkt auf Testautomatisierung. Sie werden Java niemals in anderen Testbereichen verwenden. Nicht in CI, Leistungstests, Sicherheit, Verfügbarkeit oder anderswo. Sie stecken einfach in der Automatisierung des Testens der grafischen Oberfläche Ihrer Anwendung fest und fertig.

Das ist alles. Wir hoffen, dass es für Sie jetzt etwas einfacher geworden ist, sich für einen Kurs zu entscheiden. Um Ihre Auswahl zu festigen, laden wir Sie zu kostenlosen Kursen ein:

Python QA Engineer
Java QA Engineer

All Articles