JetBase Logo
Banner

Qualitätssicherung (QA) ist in der Softwareentwicklung unerlässlich. Sie fungiert als Torwächter, um sicherzustellen, dass die Endprodukte den gewünschten Standards entsprechen und fehlerfrei sind. Yulia Onischenko, die QA Lead bei JetBase, hat dargelegt, wie die Implementierung von Automatisierung in QA-Prozessen die Kosten erheblich senken kann – um bis zu 75 % – und die Qualität und Effizienz der Softwarebereitstellung steigert.

1

Was ist QA?

Qualitätssicherung (QA) in der Softwareentwicklung ist ein systematischer Prozess, der die Qualität und Zuverlässigkeit von Softwareprodukten gewährleistet. Er umfasst eine Reihe von Aktivitäten, die darauf abzielen, den Softwareentwicklungsprozess zu überwachen und Fehler zu verhindern, zu erkennen und zu beheben. Das Hauptziel der QA ist die Verbesserung der Entwicklungs- und Testprozesse, um das Auftreten von Fehlern während der Entwicklung zu vermeiden.

2

Manuelles und automatisiertes Testen – Unterschiede

Die Wahl des Ansatzes

Yulia betont, dass eine ausgewogene Kombination aus beidem, je nach Projektanforderungen, oft der optimale Ansatz ist. Beide Testarten sind wichtig und können nicht isoliert existieren.

Skalierbarkeit und Wiederverwendbarkeit

Automatisierte Tests eignen sich besser für große Projekte, bei denen Tests repetitiv sind und mehrfach ausgeführt werden müssen, während manuelles Testen für kleinere Umfänge und explorative Tests effizient ist.

Genauigkeit und Zuverlässigkeit

Automatisiertes Testen gewährleistet aufgrund reduzierter menschlicher Fehler eine höhere Genauigkeit und Zuverlässigkeit der Ergebnisse, wohingegen manuelles Testen, obwohl intuitiv, anfällig für Ungenauigkeiten ist.

Kosten- und Ressourcenoptimierung

Obwohl automatisiertes Testen höhere Anfangskosten verursachen kann, optimiert es Ressourcen und erweist sich langfristig als kosteneffizient. Es ist für ein Team einfach, sich an die Testautomatisierung anzupassen, da die Anzahl der manuellen Testfälle wächst und viel Zeit in Anspruch nimmt.

Bewertung der Benutzererfahrung

Manuelles Testen ist unerlässlich für die Bewertung der Benutzererfahrung und schnittstellenbezogener Aspekte, bei denen menschliche Einsicht entscheidend ist, wohingegen automatisiertes Testen bei der Bewertung subjektiver Benutzererfahrungen möglicherweise Defizite aufweist.

3

Beispiel

Werfen wir einen Blick auf das automatische Testszenario, das die Reise eines Benutzers durch ein Kontaktformular auf einer JetBase-Website nachbildet. Sehen Sie, wie schnell die QA beliebige Funktionen in der Softwareentwicklung testen kann.

Positives Szenario

Das erste Szenario („Überprüfen des positiven Nutzerflusses für das Kontaktformular“) beschreibt einen erfolgreichen Übermittlungsprozess, bei dem alle erforderlichen Felder korrekt ausgefüllt werden, einschließlich Name, E-Mail, Website, Budgetauswahl, Servicekategorie, detaillierte Nachricht und die Zustimmung zur Datenschutzerklärung. Dieses Szenario endet mit der Bestätigung, dass eine Erfolgsmeldung empfangen wird, was impliziert, dass das Formular Daten korrekt verarbeitet und das Nutzerfeedback angemessen angezeigt wird.

Negative Szenarien

Die nachfolgenden Szenarien konzentrieren sich auf negatives Testen, bei dem ein oder mehrere Felder falsch oder gar nicht ausgefüllt werden, um sicherzustellen, dass die Formularvalidierung wie erwartet funktioniert. Dies umfasst Fälle wie das Absenden des Formulars ohne Ausfüllen aller erforderlichen Felder, die Eingabe einer ungültigen E-Mail-Adresse, das Weglassen der Budgetauswahl, das Nichtauswählen einer Servicekategorie und das Leerlassen des Detailfelds. Jedes Szenario wird von einer Bestätigung gefolgt, die auf die korrekte Fehlermeldung prüft und sicherstellt, dass das Formular dem Benutzer das notwendige Feedback gibt, um seine Eingaben zu korrigieren.

Das untenstehende Skript ist ein beispielhafter Fall, wie automatisiertes Testen mit dem Cypress-Framework strukturiert und ausgeführt wird, einem leistungsstarken Tool, das wir für das Testen von Webanwendungen verwenden.

Feature: Contact form
Description: This test case is checking positive and negative scenarios for the contact form

Background:
    Given I go to the "Contact" page
    
Scenario: Check positive user flow for the contact form
     When I type "Elon Musk" into name
      And I type "elon.musk@tesla.com" into email
      And I type "tesla.com" into website
      And I choose "$5000 - $10000" as budget
      And I choose "E-commerce" as service
      And I type "AI autopilot car with great interface" into details
      And I check the privacy
      And I click the [Send message] button
     Then I receive success message
     
Scenario: Check negative scenario for the required fields of the contact form
     When I type "Elon Musk" into name
      And I click the [Send message] button
     Then I receive error message "Please fill a valid email!"
     
     When I type "elon.musk@teslacom" into email
      And I click the [Send message] button
     Then I receive error message "Please fill a valid email!"
     
     When I type "elon.musk@tesla.com" into email
      And I type "tesla.com" into website
      And I click the [Send message] button
     Then I receive error message "Budget range is required!"
     
     When I choose "$5000 - $10000" as budget
      And I click the [Send message] button
     Then I receive error message "Category range is required!"
     
     When I choose "E-commerce" as service
      And I click the [Send message] button
     Then I receive error message "Please fill the details field!"
     
     When I type "AI autopilot car with great interface" into details
      And I click the [Send message] button
     Then I receive error message "Check the terms and conditions!"

Das obige Skript zeigt einen detaillierten, auf der Gherkin-Syntax basierenden Testfall für eine Kontaktformular-Funktion auf einer Website, der sowohl positive als auch negative Szenarien validiert. Das strukturierte Format der Gherkin-Sprache ermöglicht es, dass das Skript sowohl technisch als auch benutzerfreundlich ist, wodurch die gewünschten Verhaltensweisen der Webanwendung klar und testbar werden.

Wir halten uns auch an die Best Practice, Tests unabhängig voneinander zu schreiben. Dieser Ansatz bietet mehrere Vorteile.

Isolation und Modularität

Unabhängige Tests können entwickelt werden, ohne von den Implementierungsdetails des Codes abhängig zu sein. Diese Isolation stellt sicher, dass Tests sich auf spezifische Funktionalitäten oder Einheiten konzentrieren, ohne von Änderungen in anderen Teilen der Codebasis beeinflusst zu werden. Sie ermöglicht eine modulare Entwicklung und Testung.

Einfachere Wartung

Wenn Tests vom Code getrennt sind, ist es weniger wahrscheinlich, dass Änderungen oder Aktualisierungen der Codebasis Probleme in den Tests verursachen. Diese Unabhängigkeit stellt sicher, dass Änderungen in der Codestruktur oder Implementierung die Tests nicht automatisch ungültig oder obsolet machen.

Klarheit und Lesbarkeit

Unabhängige Tests sind in der Regel klarer und lesbarer, da sie sich ausschließlich auf die Überprüfung spezifischer Funktionalitäten oder Einheiten konzentrieren. Diese Klarheit erleichtert es Entwicklern, den Zweck jedes Testfalls zu verstehen.

Verbesserte Zusammenarbeit

Unabhängige Tests können gleichzeitig von mehreren Teammitgliedern geschrieben werden, was eine parallele Entwicklung und Testung ermöglicht. Dies hilft bei schnelleren Entwicklungszyklen und erleichtert die Zusammenarbeit zwischen Teammitgliedern.

Besseres Debugging

Wenn Tests unabhängig sind, ist es einfacher, die Ursache von Fehlern oder Bugs zu identifizieren. Entwickler können Probleme schneller erkennen, da sie die spezifische Funktionalität oder Einheit kennen, die getestet wird.

Fördert besseres Design

Das unabhängige Schreiben von Tests ermutigt Entwickler oft dazu, von Anfang an Code zu erstellen, der modularer, lose gekoppelt und leicht testbar ist. Dies kann insgesamt zu besser entworfener Software führen.

Unterstützt Continuous Integration/Deployment (CI/CD)

Unabhängige Tests eignen sich gut für automatisierte Testprozesse in CI/CD-Pipelines. Sie können parallel ausgeführt werden, was schnellere Feedbackzyklen und eine schnellere Integration von Änderungen in die Hauptcodebasis ermöglicht.

4

Gründe für den Beginn von automatisiertem Testen

Überragende Qualität

Yulia stellt fest, dass die Automatisierung menschliche Fehler minimiert und eine höhere Produktqualität und Zuverlässigkeit liefert.

Zeit- und Kosteneffizienz

Automatisierte Tests laufen unbeaufsichtigt ab, wodurch die Testzeit und die Personalkosten erheblich reduziert werden, was das Potenzial für eine 75%ige Senkung der QA-Kosten bestätigt.

Erhöhte Produktivität

Beschleunigte Testprozesse durch Automatisierung ermöglichen schnellere Entwicklungszyklen und entlasten QA-Spezialisten, damit sie sich auf komplexere und kritischere Aufgaben konzentrieren können.

5

Wann sollten Sie auf Automatisierung umstellen?

Die Umstellung auf Automatisierung ist eine entscheidende Entscheidung im Softwareentwicklungszyklus. Yulia, die QA Lead bei JetBase, teilt wertvolle Einblicke, wann der richtige Zeitpunkt ist, Automatisierung in den Testprozess zu integrieren.

Zunehmende Skalierbarkeit und Komplexität

Automatisiertes Testen ist entscheidend, wenn Umfang und Komplexität von Projekten zunehmen. Dies gilt insbesondere für umfangreiche Projekte, bei denen die Grenzen des manuellen Testens offensichtlich werden.

Wenn Sie bemerken, dass Umfang und Komplexität eines Projekts die Kapazität des manuellen Testens übersteigen, ist es höchste Zeit, die Automatisierung ins Spiel zu bringen. Automatisierung kann die komplexen Details und den großen Umfang großer Projekte sorgfältig bewältigen und eine umfassende Abdeckung und Zuverlässigkeit gewährleisten.

 
Yulia Onischenko
QA Lead bei JetBase

Stabile Anforderungen

Yulia schlägt den Übergang zur Automatisierung vor, wenn die Projektanforderungen finalisiert und stabilisiert sind.

Automatisiertes Testen ist hervorragend in Umgebungen mit gefestigten Anforderungen. Es reduziert das Risiko von Abweichungen und sorgt für nachhaltige Effizienz und Zuverlässigkeit im Testprozess. Es ist unerlässlich, einen klaren und stabilen Satz von Anforderungen zu haben, bevor Automatisierung integriert wird, um unnötige Komplikationen und Redundanzen zu vermeiden.

 
Yulia Onischenko
QA Lead bei JetBase

Wiederkehrende Testanforderungen

Automatisierung ist die bevorzugte Lösung, wenn das Projekt wiederkehrende Tests erfordert. Sie gewährleistet nicht nur Präzision, sondern spart langfristig auch unschätzbare Zeit und Ressourcen.

In Szenarien, in denen Tests wiederholt ausgeführt werden müssen, ist die Automatisierung ein Lebensretter. Sie eliminiert die Mühsal manueller Wiederholungen und reduziert die Fehlerquote erheblich, wodurch die Gesamteffizienz des Testprozesses gesteigert wird.

 
Yulia Onischenko
QA Lead bei JetBase

Leistungstests sind entscheidend

Wenn es darum geht, die Softwareleistung unter verschiedenen und umfangreichen Bedingungen zu bewerten, ist automatisiertes Testen unübertroffen. Es liefert Erkenntnisse, die durch manuelles Testen praktisch nicht zu erlangen sind.

Automatisiertes Testen ist unerlässlich, wenn eine präzise Leistungsbewertung entscheidend ist. Es kann eine Vielzahl von Bedingungen und Benutzerinteraktionen simulieren, um zu beurteilen, wie die Software funktioniert, und liefert detaillierte und zuverlässige Erkenntnisse.

 
Yulia Onischenko
QA Lead bei JetBase
6

Unsere Fallstudien

Lassen Sie uns drei verschiedene Fallstudien untersuchen, die jeweils die transformative Wirkung der Implementierung von automatisierten Tests in verschiedenen Projektumgebungen zeigen.

Fall #1

Projekt

Eine Bildungsplattform, die sich auf Internetsicherheit spezialisiert hat und praktische Lern-Szenarien für verschiedene Expertise-Levels in Cybersicherheit anbietet.

Ergebnisse

  • Integration von automatisiertem Testen in den Entwicklungszyklus;
  • Regressionstests dauern bis zu 2 Stunden;
  • Testabdeckung auf 90 % erhöht;
  • 70 % Reduzierung von Fehlern in der Produktion.

Zukünftige Ziele

  • Nahezu 100 % Testabdeckung aufrechterhalten;
  • Testszenarien basierend auf Benutzerinteraktionen erweitern;
  • Regelmäßige Überprüfung und Wartung;
  • Refactoring und Bereinigung;
  • Kontinuierliche Überprüfung und Feedback-Schleife;
  • Anpassung an Anwendungsänderungen.

Beschreibung

Die Initiative zur Implementierung automatisierter Tests entstand aus dem Fehlen eines dedizierten QA-Teams. Diese Integration, die während der Entwicklungsphase und nicht von Anfang an erfolgte, sollte eine konsistente Funktionalität gewährleisten und es Entwicklern ermöglichen, schnell auftretende Probleme zu beheben. Die Hauptziele waren die Erstellung einer umfassenden Dokumentation für Testprozesse und das Erreichen einer Testabdeckung von etwa 90 %.

Die Einführung automatisierter Tests in diesem Projekt umfasste mehrere Phasen. Die Anfangsphase beinhaltete die Integration der Tests in den bestehenden Entwicklungs-Workflow, gefolgt von Bemühungen, das Ziel von 90 % Testabdeckung zu erreichen. Eine wesentliche Herausforderung war die kontinuierliche Aktualisierung der Tests im Einklang mit den sich schnell entwickelnden Funktionen der Plattform.

Als Ergebnis konnte das Projekt die Häufigkeit von Produktionsfehlern um 70 % reduzieren und die Testzeiten erheblich verkürzen. Zukünftige Ziele umfassen die Aufrechterhaltung einer Testabdeckung von nahezu 100 % und die Erweiterung der Testszenarien basierend auf Benutzerinteraktionen. Eine besondere Herausforderung für diese Plattform war ihre Vielzahl an kundenspezifischen Konfigurationen, was das manuelle Testen erschwerte.

Automatisiertes Testen erwies sich als entscheidend für die effiziente Bewältigung dieser Komplexitäten, indem es eine gründliche und schnellere Testabdeckung gewährleistete.

Fall #2

Projekt

Eine ERP-Lösung für die Öl- und Gasindustrie, die darauf abzielt, die betriebliche Effizienz und das Ressourcenmanagement zu verbessern.

Ergebnisse

  • QA-Kosten durch automatisierte Tests um 75 % gesenkt;
  • Regressionstests von 8 Stunden auf 2 Stunden reduziert;
  • 80 % Funktionsabdeckung durch Automatisierung erreicht;
  • Fokus von repetitiven Aufgaben auf Innovation verlagert.

Zukünftige Ziele

  • Erhöhung des Anteils der automatisierten Testabdeckung.

Beschreibung

Der Anstoß zur Implementierung automatisierter Tests ergab sich aus der Notwendigkeit, Pre-Release-Prüfungen zu beschleunigen und Fehler frühzeitig zu erkennen. Diese Integration, die mitten im Projekt erfolgte, nachdem die primären Funktionen manuell getestet und stabilisiert worden waren, konzentrierte sich auf die Verbesserung der gesamten Produktqualität und -effizienz.

Die Ziele waren vielfältig: Reduzierung des Zeitaufwands für Tests, Optimierung des User Flows auf der Plattform, Entlastung des Teams von repetitiven Aufgaben und damit mehr Fokus auf die Entwicklung neuer Edge Cases in der bestehenden Funktionalität. Besonderer Wert wurde auch auf die Dokumentation und das Erreichen eines synergetischen Gleichgewichts zwischen automatisierten und manuellen Tests gelegt.

Der Implementierungsprozess umfasste mehrere kritische Schritte, beginnend mit der Identifizierung wichtiger User Flows und der Priorisierung von Testfällen. Eine bemerkenswerte Herausforderung war die Entwicklung einer Testsuite, die nicht nur umfassend, sondern auch effizient genug war, um nahtlos in den Bereitstellungsprozess integriert zu werden. Anfangs wurden alle Tests in die Bereitstellung einbezogen, was zu zeitaufwändigen Prozessen führte, die einen schlankeren Ansatz erforderlich machten.

Diese Strategieänderung führte zu bedeutenden Erfolgen: Die Testabdeckung stieg auf 80 % aller Funktionalitäten, die Regressionslaufzeit wurde von 8 Stunden auf 2 Stunden reduziert, und es gab eine allgemeine Verbesserung der Qualität der manuellen Tests.

Zukünftige Pläne umfassen die kontinuierliche Erweiterung der automatisierten Testsuite zur Abdeckung neuer Produktfunktionalitäten. Die primäre Herausforderung des Projekts war die Erkenntnis, dass nicht alle Funktionalitäten automatisiert werden konnten, was einen strategischen Ansatz erforderte, um die Testabdeckung effizient und effektiv zu maximieren.

Fall #3

Projekt

Eine SaaS-Plattform speziell für Kliniken und deren Patienten.

Ergebnisse

  • Effizienter Testprozess zur Sicherstellung zuverlässiger SaaS-Leistung;
  • QA-Regressionstests von 2 Tagen auf einen halben Tag reduziert;
  • QA-Kosten durch strategische Automatisierung um das Vierfache gesenkt.

Zukünftige Ziele

  • Erhöhung des Anteils der automatisierten Testabdeckung.

Beschreibung

Das Hauptziel dieser Plattform ist die Verbesserung der Effizienz klinischer Prozesse, die Steigerung der Qualität der Patientenversorgung und die Optimierung des Gesundheitsmanagements. Die von dieser Plattform bereitgestellte Lösung adressiert die komplexen Bedürfnisse von Gesundheitsdienstleistern und Patienten und gewährleistet optimierte Abläufe und bessere Gesundheitsergebnisse.

Der Prozess der Implementierung automatisierter Tests in Fall 3 war identisch mit dem in Fall 2 und umfasste die strategische Integration automatisierter Tests, nachdem die Kernfunktionen manuell getestet und stabilisiert worden waren. Dieser Ansatz war entscheidend für die Verbesserung der Gesamtqualität des Produkts und die Gewährleistung eines effizienteren Testprozesses.

Die erfolgreiche Implementierung automatisierter Tests führte zu erheblichen Verbesserungen: Sie reduzierte die QA-Regressionstestzeit drastisch von 2 Tagen auf nur einen halben Tag und senkte die QA-Kosten um das Vierfache.

Diese Ergebnisse unterstreichen die Wirksamkeit automatisierter Tests in einer komplexen Healthcare-SaaS-Umgebung, nicht nur bei der Zeitersparnis, sondern auch bei der Reduzierung der Betriebskosten.

7

Wie Sie sich auf den Übergang von manuellen zu automatisierten Tests vorbereiten – Yulias Empfehlungen:

1. Proaktives Lernen und Training

Yulia gibt Einblicke in die Notwendigkeit, dass das QA-Team proaktiv Automatisierungsfähigkeiten durch umfassendes Lernen und strukturierte Schulungsprogramme erwirbt. Sie glaubt an die Implementierung von formalen Schulungen, interaktiven Workshops und beharrlichem Üben, um die erforderliche Kompetenz aufzubauen. Ein gut informiertes und qualifiziertes Team wird von Yulia als Rückgrat eines erfolgreichen Übergangs angesehen, wobei sie die Bedeutung der Förderung einer Umgebung betont, die Lernen und Kompetenzerweiterung unterstützt.

2. Strukturierter Migrationsplan

Yulias Einblicke unterstreichen die Bedeutung eines gut organisierten Migrationsplans. Sie empfiehlt, mit der Automatisierung einfacher, wirkungsvoller Testfälle zu beginnen und schrittweise zu komplexeren überzugehen. Dieser Ansatz ermöglicht es dem Team, stetig Vertrauen aufzubauen und seine Expertise zu verfeinern. Yulia ist der Meinung, dass ein strukturierter und phasenweiser Ansatz sicherstellt, dass der Übergang überschaubar ist und das Team nicht von Anfang an von den Komplexitäten der Automatisierung überwältigt wird.

3. Investition in die Infrastruktur

Eine robuste und vielseitige Infrastruktur ist entscheidend für die Integration automatisierter Tests. Yulia beleuchtet die grundlegende Rolle der Einrichtung von Continuous Integration / Continuous Deployment (CI/CD)-Pipelines. Die Einbeziehung von CI/CD-Pipelines ist integraler Bestandteil der Automatisierungsinfrastruktur, und Yulia merkt an, dass dies die Gesamtkosten nicht wesentlich erhöht.

4. Auswahl der geeigneten Tools

Die Auswahl geeigneter und effizienter Tools ist entscheidend für die Automatisierung. Yulia gibt Einblicke in die Bevorzugung benutzerfreundlicher Lösungen wie Cypress wegen ihrer Einfachheit und Effektivität beim Schreiben komplexer Tests. Sie schätzt Cypress für sein benutzerzentriertes Design, das es Teams ermöglicht, die Komplexität der Automatisierung nahtlos zu navigieren. Sie warnt jedoch auch vor der steilen Lernkurve komplexerer Tools wie Selenium für Anfänger.

5. Kontinuierliche Bewertung und Verbesserung

Yulia betont die entscheidende Rolle der regelmäßigen Bewertung und Verfeinerung der Automatisierungsstrategie. Sie besteht auf einer kontinuierlichen Bewertung, um Bereiche für potenzielle Verbesserungen und Optimierungen zu identifizieren. Die regelmäßige Verfeinerung von Testfällen und Automatisierungsskripten ist laut Yulia unerlässlich, um sich an sich entwickelnde Anforderungen anzupassen und optimale Abdeckung und Effizienz aufrechtzuerhalten.

6. Robuste Unterstützung und Zusammenarbeit

Effektive Kommunikation und eine unterstützende Managementstruktur sind entscheidende Komponenten in der Übergangsphase. Yulia hebt die Bedeutung einer engen Zusammenarbeit zwischen Entwicklungs- und QA-Teams sowie einer robusten Unterstützung durch das Management hervor. Sie betrachtet robuste Unterstützung und nahtlose Zusammenarbeit als Eckpfeiler, die den Übergangsprozess stärken und ein Umfeld fördern, das Innovation und Exzellenz begünstigt.

8

Fazit

Automatisiertes Testen, obwohl es eine höhere Anfangsinvestition und Lernkurve erfordert, erweist sich als entscheidende Komponente für große, komplexe Projekte. Sie können Kosten erheblich senken und gleichzeitig die Qualität sichern.

Andererseits bleiben manuelle Tests für die Bewertung der Benutzererfahrung und die Durchführung explorativer Tests in kleinerem Umfang unersetzlich.

Bei JetBase können wir die effektivste Testoption in jeder Testphase je nach Ihrem Projekt beurteilen. Wenn Sie daran interessiert sind, wie Sie die Testkosten in Ihrem Projekt senken können, dann können Sie uns über ein Formular kontaktieren.

Qualitätssicherung (QA)

Kommentare

Einloggen, um einen Kommentar zu schreiben
Weiter mit GoogleWeiter mit Google
Modern

Unsere Fälle

Bei Innovation geht es nicht nur um Ideen – es geht um die Umsetzung, darum, Visionen in die Realität umzusetzen und Lösungen zu schaffen, die wirklich etwas bewirken. Sehen Sie, was wir gebaut haben und wie es funktioniert:

  • Gesundheitswesen
  • Medien & Unterhaltung
  • E-Commerce
  • Amazon Web Services
  • Cloud-Kostenoptimierung
  • Serverlose Anwendung
  • Einzelhandel

Neueste Artikel