Künstliche Intelligenz: Kann ChatGPT die Einarbeitung als Softwaretester erleichterN?

Künstliche Intelligenz (KI) ermöglicht die Automatisierung von Aufgaben und die Vereinfachung von Prozessen, was im besten Fall Zeit und Ressourcen spart. Ein Beispiel dafür ist der Chatbot ChatGPT von OpenAI, der durch das Training mit großen Mengen an Daten immer mehr Wissen ansammelt und bei der Suche nach Antworten wie Google unterstützen kann.


Aber – Kann ChatGPT auch bei der Erstellung von Softwareprogrammen helfen?

Vera Stratmann

Vera Stratmann, Junior Consultant im Bereich Managed Services

Wenn ChatGPT die Einarbeitung als Softwaretester erleichtert…?

Mit Hilfe von künstlicher Intelligenz können zunehmend mehr Aufgaben automatisiert werden oder Prozesse verkürzt und vereinfacht werden, die sonst viel Zeit und Ressourcen in Anspruch nehmen würden. Ein Beispiel hier ist der Chatbot ChatGPT von OpenAI, welcher durch das Füttern des Algorithmus von unzähligen Trainingsdaten immer mehr weiß und wie Google beim Finden von Antworten unterstützen kann. Selbst beim Schreiben von ganzen Software-Programmen kann ChatGPT unterstützen.

Als neuer Mitarbeiter in einem Unternehmen könnte man mit dieser neuen Technologie auch versuchen sich die Einarbeitung zu erleichtern, oder? Ich meine, wenn ChatGPT ganze Hausarbeiten schreiben kann, dann sollte doch auch eine Ausbildung kein Problem sein oder? Kann zukünftig auf einen Ausbildungsplan verzichtet werden und damit eine Menge Arbeit eingespart werden? Hier mache ich ein Selbstexperiment und versuche mich von ChatGPT zum Softwaretester ausbilden zu lassen.

Zunächst versuche ich mit Hilfe von ChatGPT herauszufinden, was ich überhaupt erlernen muss, um Softwaretester zu werden.

Ich: „Ich möchte Softwaretester werden. Was sollte ich zunächst lernen? Wie soll ich vorgehen?

Output: „Als Softwaretester gibt es mehrere Fähigkeiten und Kenntnisse, die du beherrschen solltest. Hier sind einige Schritte, die du unternehmen kannst, um dich auf eine Karriere als Softwaretester vorzubereiten:

  1. Grundlagen der Programmierung erlernen: Es ist wichtig, Grundlagen der Programmierung zu erlernen, um die Software testen zu können. Lerne eine Programmiersprache wie Python oder Java, um die Grundlagen der Programmierung zu erlernen.
  2. Lernen Sie verschiedene Arten von Tests kennen: Es gibt verschiedene Arten von Tests, wie z.B. manuelle Tests, automatisierte Tests, Leistungs- und Sicherheitstests. Lerne die Unterschiede zwischen ihnen kennen und wie man sie durchführt.
  3. Testwerkzeuge erlernen: Es gibt verschiedene Werkzeuge, die Softwaretester verwenden, um Tests durchzuführen. Lerne, wie man Testwerkzeuge wie JUnit, Selenium, JMeter und LoadRunner verwendet.
  4. Lernen Sie, wie man Testpläne erstellt: Testpläne helfen dabei, Tests systematisch und gründlich durchzuführen. Lerne, wie man Testpläne erstellt und durchführt.
  5. Verstehen Sie die Rolle von Software-Entwicklungs-Lebenszyklen: Lerne die verschiedenen Phasen des Software-Entwicklungs-Lebenszyklus kennen, um zu verstehen, wann Tests durchgeführt werden sollten und wie sie in den Prozess integriert werden können.
  6. Praktische Erfahrungen sammeln: Sammle praktische Erfahrungen, indem du an Open-Source-Projekten teilnimmst, an Hackathons teilnimmst oder dich freiwillig als Tester bei einer gemeinnützigen Organisation engagierst.
  7. Zertifizierungen erwerben: Es gibt verschiedene Zertifizierungen für Software-Tester, wie z.B. ISTQB Certified Tester, die deine Fähigkeiten und Kenntnisse validieren können.

Zusammenfassend solltest du als angehender Softwaretester die Grundlagen der Programmierung, verschiedene Arten von Tests und Testwerkzeuge erlernen sowie praktische Erfahrungen sammeln und Zertifizierungen erwerben. Es gibt viele Ressourcen im Internet, um dich in diesen Bereichen zu schulen, wie z.B. Online-Kurse und Tutorials.“

Eine neue Programmiersprache zu erlernen, würde in diesem Experiment den Rahmen sprengen und dabei kann ChatGPT auch nicht groß helfen, also gehen wir direkt zum nächsten Schritt und erlernen die unterschiedlichen Testarten. Hier können wir direkt darauffolgend antworten, da sich ChatGPT im begrenzten Maße an das erinnern kann, was er oder der User gesagt haben. Anmerken möchte ich auch, dass man nicht höflich sein muss zu ChatGPT. Das hilft nicht, ein besseres Output zu bekommen. Es sitzt keine Person hinter dem Chatbot.

Programmiersprachen

Nun frage ich also:

Ich: „Was sind die verschiedenen Arten von Tests?“

Output: „Es gibt verschiedene Arten von Tests, die im Softwaretest verwendet werden. Hier sind einige der häufigsten Arten von Tests:

  1. Funktionstests: Diese Tests überprüfen, ob die Funktionen der Software wie erwartet funktionieren. Beispiele für Funktionstests sind Unit-Tests, Integrationstests und Systemtests.
  2. Nicht-funktionale Tests: Diese Tests überprüfen die nicht-funktionalen Anforderungen der Software wie Performance, Sicherheit, Benutzerfreundlichkeit und Zuverlässigkeit. Beispiele für nicht-funktionale Tests sind Lasttests, Sicherheitstests und Usability-Tests.
  3. Manuelle Tests: Diese Tests werden manuell durchgeführt, um sicherzustellen, dass die Software richtig funktioniert und den Anforderungen entspricht. Beispiele für manuelle Tests sind Exploratory Tests und Akzeptanztests.
  4. Automatisierte Tests: Diese Tests werden mithilfe von Automatisierungswerkzeugen durchgeführt, um Tests zu automatisieren und den Testprozess zu beschleunigen. Beispiele für automatisierte Tests sind Regressionstests, UI-Tests und API-Tests.
  5. Unit-Tests: Diese Tests überprüfen einzelne Module oder Komponenten der Software, um sicherzustellen, dass sie wie erwartet funktionieren.
  6. Integrationstests: Diese Tests überprüfen, ob verschiedene Komponenten der Software miteinander interagieren und zusammenarbeiten können.
  7. Systemtests: Diese Tests überprüfen die gesamte Software, um sicherzustellen, dass sie wie erwartet funktioniert und den Anforderungen entspricht.
  8. Regressionstests: Diese Tests überprüfen, ob Änderungen an der Software die bestehende Funktionalität nicht beeinträchtigen.
  9. Lasttests: Diese Tests überprüfen, wie die Software auf eine hohe Anzahl von Benutzern oder Datenverkehr reagiert.
  10. Sicherheitstests: Diese Tests überprüfen, ob die Software sicher vor möglichen Bedrohungen ist, wie z.B. Hacking oder Datenlecks.

Diese Tests können in verschiedenen Phasen des Softwareentwicklungslebenszyklus durchgeführt werden, um sicherzustellen, dass die Softwarequalität auf höchstem Niveau ist und den Anforderungen entspricht.“

Hier können wir direkt erkennen, dass ChatGPT nicht genau die Erklärung liefert, die wir uns erhofft hätten. Er nennt schon einige Testarten, kategorisiert diese jedoch gar nicht wie zum Beispiel das funktionale Testen und das nicht-funktionale Testen in Übergruppen ein, wie es bspw. nach ISTQB Standard der Fall ist. Durch das Umherwerfen von Übergriffen und spezifischen Testarten, komme ich da leider nicht gut in die Thematik rein, um wirklich die Testarten zu lernen.
Dazu müsste man eine erneute Anfrage stellen. Zudem muss man die Fragen sehr spezifisch stellen, um eine gute Antwort zu stellen. Hier wäre also ein Vorwissen von Testing-Methoden hilfreich. Man könnte also den Chatbot fragen, ob er zunächst das funktionale Testen vorstellen könnte und die einzelnen Methoden dessen. Wir merken im Verlauf, dass man die Fragen wirklich ins Detail spezifizieren muss, um ein gutes Ergebnis zu bekommen, aber dann kann man auch eine gute, ausführliche Erklärung bekommen. Oft weiß man als Neueinsteiger aber nicht, was eine richtige, vollständige Erklärung ist.

Ich gehe nun weiter zu Schritt drei, jedoch werde ich die Testwerkzeuge nicht erlernen, aber ich frage ChatGPT wie ich diese lernen kann:

Ich: „Was sind beliebte Testwerkzeuge in Deutschland? Und wie kann ich die einzelnen gut erlernen?“

Output: „Gerne! Hier sind die beliebtesten Testwerkzeuge in Deutschland und wie Sie sie erlernen können:

  1. Selenium: Selenium ist ein Open-Source-Testwerkzeug, das zum Testen von Webanwendungen verwendet wird. Um Selenium zu erlernen, können Sie Tutorials auf YouTube oder Online-Kursen folgen. Es gibt auch zahlreiche Online-Communities und Foren, in denen Sie Fragen stellen und sich mit anderen Benutzern austauschen können.
  2. JUnit: JUnit ist ein Framework für automatisierte Tests in der Programmierung, das in Java geschrieben ist. Um JUnit zu erlernen, sollten Sie eine Programmiersprache wie Java erlernen und dann Tutorials oder Kurse für JUnit verfolgen. Es gibt viele Online-Ressourcen, um JUnit zu erlernen, darunter YouTube-Tutorials und Java-Entwicklerforen.
  3. HP Unified Functional Testing (UFT): UFT ist ein kommerzielles Testwerkzeug, das Unternehmen bei der Automatisierung von funktionalen und regressiven Tests unterstützt. HP bietet offizielle Schulungen für UFT an. Alternativ gibt es viele Online-Kurse und -Tutorials, die Ihnen dabei helfen können, UFT zu erlernen.
  4. Appium: Appium ist ein Open-Source-Testwerkzeug, das zum Testen von mobilen Anwendungen auf iOS- und Android-Plattformen verwendet wird. Um Appium zu erlernen, können Sie sich anhand von Online-Kursen, Tutorials und der offiziellen Dokumentation einarbeiten. Es gibt auch viele Community-Foren, in denen Sie sich mit anderen Appium-Benutzern austauschen können.
  5. TestComplete: TestComplete ist ein kommerzielles Testwerkzeug, das Unternehmen bei der Automatisierung von Tests für Desktop- und Webanwendungen unterstützt. Ähnlich wie bei UFT bietet SmartBear, das Unternehmen hinter TestComplete, offizielle Schulungen an. Es gibt auch viele Online-Ressourcen, darunter Kurse und Tutorials, um TestComplete zu erlernen.
  6. LoadRunner: LoadRunner ist ein kommerzielles Testwerkzeug, das Unternehmen bei der Durchführung von Leistungs- und Skalierungstests unterstützt. Um LoadRunner zu erlernen, können Sie die offiziellen Schulungen von Micro Focus besuchen oder Online-Kurse und -Tutorials verfolgen. Es gibt auch viele Foren und Online-Communities, in denen Sie sich mit anderen LoadRunner-Benutzern austauschen können.
  7. SoapUI: SoapUI ist ein Open-Source-Testwerkzeug, das Unternehmen bei der Durchführung von Tests für Webdienste unterstützt. Sie können SoapUI erlernen, indem Sie Tutorials und Online-Kurse besuchen, die speziell für das Testwerkzeug erstellt wurden. Die offizielle Dokumentation und Foren können auch hilfreich sein, um mehr über SoapUI zu erfahren.
  8. JMeter: JMeter ist ein Open-Source-Testwerkzeug, das Unternehmen bei der Durchführung von Lasttests für Webanwendungen unterstützt. Um JMeter zu erlernen, können Sie Online-Kurse, Tutorials und die offizielle Dokumentation verwenden. Es gibt auch viele Community-Foren, in denen Sie sich mit anderen Benutzern austauschen und Fragen stellen können.

Es ist wichtig, sich Zeit zu nehmen, um jedes Testwerkzeug zu erlernen und zu üben, um ein fundiertes Verständnis für seine Funktionsweise und Anwendungen zu entwickeln.“

AI

Die Liste ist ausführlich und ich könnte also laut ChatGPT durch Tutorials alle Anwendungen erlernen, wenn ich die Zeit hätte. Jedoch werden hier auch in Deutschland oft verwendete Tools wie X-Ray, HP-ALM und Jira vergessen, die dann doch zumindest für angehende Tester relevant sein können. Außerdem sind die acht genannten Werkzeuge auch wahrscheinlich etwas viel und hier wird von Chat GPT nicht ausdrücklich gesagt, welche Tools wirklich relevant sind. Hier könnte man durch eine weitere spezifischere Fragestellung noch mehr rausholen. Wichtig ist hier noch zu betonen, dass es unternehmensabhängig ist, welche Tools verwendet werden. Man könnte ChatGPT also auch noch fragen, welche Tools relevant sind gemäß den Stellenanzeigen.

Jetzt möchte ich lernen, wie man Testpläne erstellt.

Ich: „Wie erstelle ich Testpläne und was sind dabei die wichtigsten Punkte?“

Output: „Ein Testplan ist eine detaillierte Beschreibung der geplanten Tests, die durchgeführt werden sollen, um sicherzustellen, dass eine Anwendung die Anforderungen erfüllt. Hier sind einige Schritte, um einen Testplan zu erstellen und die wichtigsten Punkte, die dabei zu berücksichtigen sind:

  1. Analyse der Anforderungen: Um einen Testplan zu erstellen, ist es wichtig, die Anforderungen der Anwendung gründlich zu analysieren und zu verstehen. Dies hilft bei der Identifizierung von Testfällen und Szenarien.
  2. Identifizierung von Testfällen: Die Identifizierung von Testfällen ist ein wichtiger Schritt bei der Erstellung eines Testplans. Die Testfälle sollten die funktionalen und nicht-funktionalen Anforderungen abdecken.
  3. Festlegung von Testzielen: Es ist wichtig, die Ziele der Tests zu definieren. Dazu gehören Dinge wie die Validierung der Funktionalität, die Überprüfung der Leistung, die Überprüfung der Benutzerfreundlichkeit und die Überprüfung der Sicherheit.
  4. Auswahl von Testmethoden: Die Auswahl der Testmethoden hängt von der Art der Anwendung und den verfügbaren Ressourcen ab. Die Testmethoden können manuell oder automatisiert sein.
  5. Festlegung von Testumgebungen: Die Testumgebung sollte der produktiven Umgebung so ähnlich wie möglich sein. Es ist auch wichtig, eine Testumgebung aufzubauen, die den Anforderungen der Anwendung entspricht.
  6. Festlegung von Testdaten: Testdaten sind wichtig, um realistische Tests durchzuführen. Es ist wichtig, Testdaten zu definieren und sie in der Testumgebung zu integrieren.
  7. Festlegung von Testplanungs- und Testdurchführungsprozessen: Es ist wichtig, einen Prozess zu definieren, wie der Testplan geplant, durchgeführt und dokumentiert wird. Dies umfasst die Verantwortlichkeiten und Zeitpläne.
  8. Risikomanagement: Ein wichtiger Teil des Testplans ist das Risikomanagement. Es ist wichtig, potenzielle Risiken zu identifizieren und Pläne zu erstellen, um sie zu minimieren oder zu beseitigen.
  9. Überprüfung und Freigabe des Testplans: Der Testplan sollte von den relevanten Parteien überprüft und genehmigt werden, bevor er in die Testphase geht.

Die wichtigsten Punkte, die bei der Erstellung eines Testplans berücksichtigt werden müssen, sind die Identifizierung von Testfällen, die Festlegung von Testzielen und -methoden, die Festlegung von Testumgebungen und -daten, die Festlegung von Testplanungs- und Testdurchführungsprozessen sowie das Risikomanagement. Der Testplan sollte sorgfältig geplant und dokumentiert werden, um sicherzustellen, dass er effektiv und effizient durchgeführt werden kann.“

Diese Erklärung ist sehr detailliert, was auch gut ist, um in das Thema reinzukommen. Ich finde, dass man damit durchaus gut arbeiten kann. Es ist aber trotzdem noch etwas schwammig mit einigen Erklärungen und hilft einem neuen Softwaretester vielleicht noch nicht direkt ins Thema reinzukommen. Wichtiger wäre es doch zu wissen, wie man testet und Fehler entdeckt und worauf man da achten muss als direkt zu lernen, wie ein Testplan erstellt werden soll.

Die letzten zwei Schritte lassen wir erstmal außen vor, da wir uns jetzt laut ChatGPT schon genug Wissen angeeignet hätten müssen.

Mein Fazit:
Man kann sich die verschiedenen Testmethoden natürlich auch selbstständig durch Bücher und Artikel beibringen und insbesondere anhand von den Dokumentationen des ISTQB. ChatGPT könnte aber gut als Erinnerungsstütze fungieren, um gewisse Themen zu wiederholen oder sich Aspekte genauer und bildlich erklären zu lassen.

sprechen sie mit
Vera Stratmann!

Vera Stratmann