in Expertise

Was sind Softwaretests und wie funktionieren sie?

Wenn es um die Qualität der Software geht, ist das Testen zweifellos ein wichtiges Instrument, um den Erfolg der Entwicklungsphasen sicherzustellen, indem das Auftreten von Fehlern und möglichen Problemen minimiert wird, bevor die Lösung an den Kunden bereitgestellt wird.  

Um Software als Produkt zu verstehen, ist es unerlässlich, dass sie den Tests unterzogen wird, die bescheinigen, dass die Software den Anforderungen entspricht und die Funktionen richtig und fehlerfrei erfüllt. So wie ein Automobilhersteller seine Fahrzeuge testet, bevor er sie an den Endverbraucher ausliefert, muss auch die Software-Lösung getestet werden, ob sie die erforderliche Qualität aufweist. 

Die Softwaretests müssen die gesamte Projektentwicklung abdecken. Mit anderen Worten: die Lösung muss während ihrer gesamten Entwicklung getestet werden, sodass jede Stufe und abgeschlossene Funktionalität im Voraus bewertet wird, um mit der richtig abgestimmten Lösung weiterzuarbeiten.  

Wer ein Unternehmen für die Entwicklung einer Software-Lösung sucht, erwartet sicherlich, dass sein Bedarf bestmöglich erfüllt wird. Daher gibt es Qualitätsdimensionen: 

Vertrauen:  Hier ist es notwendig zu wissen, ob das System so intakt ist, dass es während der Ausführung keine Fehler gibt, und ob es keine Fehler und Unterbrechungen aufweist, die beispielsweise das Funktionieren und/oder die Sicherheit der Software beeinträchtigen können; 

Funktionalität:  Es muss bewertet werden, ob das System die im Projekt festgelegten Parameter erfüllt, ob seine Funktionalitäten übereinstimmen; 

Leistung:  Ist das System robust genug? Gibt es keine Probleme bei seiner Ausführung, wenn es hohe Belastung gibt? Wenn die Robustheitstests durchgeführt werden, sucht man nach den Szenarien, die zu einem Ausfall der Software führen können. 

testing

Welche Tests können durchgeführt werden?  

Es gibt verschiedene Arten von Tests, die auf eine Software angewendet werden können, um ihre Fehler zu identifizieren und die Qualität der entwickelten Lösung zu verbessern, die wichtigsten sind:

White-Box-Testing  – verwendet den internen Aspekt des Programms/Systems, den Quellcode, um seine Komponenten zu bewerten. Es wird auch als strukturelles Testen bezeichnet. Dabei wird das interne Strukturdesign und der Code des Programms untersucht, um es zu testen. Es können solche Punkte wie: Datenfluss, Zustand, Zyklen usw. analysiert werden.  

Black-Box-Test  – Im Gegensatz zum vorherigen Test, der interne Aspekte priorisiert, überprüft der Black-Box-Test externe Aspekte, und zwar die funktionalen Anforderungen an das System. Es ist auch als funktionelle Technik bekannt. Das System-Verhalten muss vollständig über Input und Output beobachtet werden. 

Grey-Box-Test  – diese Art von Test vereint die beiden vorherigen, daher der Begriff „Grau“. Bewertet werden sowohl interne als auch externe Aspekte, Input und Output;

Regressionstests  – es werden die Tests für jede Version einer Software durchgeführt, bei der Funktionalitäten geändert werden. Auf diese Weise wird vermieden, dass Fehler, die zuvor in der Software korrigiert wurden, erneut auftreten, wenn etwas Neues hinzugefügt wird.

Unit-Tests – man testet isoliert kleinere Softwareeinheiten, um zu sehen, ob sie alle richtig funktionieren. Diese Art vom Testen wird auch als Komponententests bezeichnet. In agilen Methoden wird zur Qualitätssicherung eine sehr häufige Ausführung der Komponententests angestrebt;

Integrationstest  – nachdem die Einheiten getestet wurden, wird überprüft, ob sie richtig zusammenarbeiten. Es wird also das Zusammenwirken zwischen Komponenten oder Systemen überprüft;

Belastungstest  – Dieser Test wird durchgeführt, um die Nutzungsgrenzen der Software zu bewerten, wie viel sie in Bezug auf Informationsvolumen unterstützt, d. h. die Stabilität eines Systems unter hoher Belastung wird bewertet; 

Usability-Tests – Diese Tests werden von einer kleinen Gruppe von Benutzern durchgeführt, um zu sehen, ob die Software ihren Anforderungen entspricht. Dieser Test analysiert, wie der Benutzer das System verwendet, und prüft, wo er größere Schwierigkeiten hat; 

Stresstest  – hier wird die Software an ihre Leistungs- und Funktionsgrenze gebracht, um zu beurteilen, an welchem ​​Punkt sie nicht mehr richtig funktioniert. Ein Stresstest ist also nötig, um die Stabilität von CPU, Cache und Arbeitsspeicher nach dem Übertakten zu testen.

Cross-Browser Testing –  es wird überprüft, ob die Website verschiedene Internetbrowser unterstützt (unter anderem Google Chrome, Firefox, Internet Explorer, Microsoft Edge, Opera, Safari). 

Warum ist das Testen von Software so wichtig?

In einer zunehmend durch Technologie vernetzten Welt ist das Software-Testen von großer Bedeutung, da die Unternehmen korrekt funktionieren sollen, um im Wettbewerb zu bestehen. Jeder Fehler in einem Finanzverwaltungsprogramm kann zu enormen finanziellen Verlusten führen. Ein Fehler in der Software medizinischer Geräte kann einen Menschen das Leben kosten oder die Versorgung eines Bedürftigen erschweren.

Und es sind nicht nur die extremsten Fälle, die qualitativ hochwertige Softwaretests erfordern, denn ein einfacher Fehler eines häufig verwendeten Programms kann dazu führen, dass der Benutzer sich beschwert oder es anderen Benutzern nicht empfiehlt und zur Konkurrenz abwandert. Wer verliert, ist derjenige, der die Software entwickelt hat. Das ist der Grund, warum das Testen von Software so wichtig ist. 

  • Es ermöglicht, die Fehler während der Entwicklungsphasen zu identifizieren;
  • Es gewährleistet das Vertrauen und die Zufriedenheit der Endbenutzer bei der Verwendung der Software;
  • Es ermöglicht, die Qualität des Produkts und sein korrektes Funktionieren sicherzustellen;
  • Es hilft, die Autorität des Unternehmens in der Branche zu bewahren.

Warum können die Entwickler Software nicht testen?

Die Entwickler arbeiten oft mit der Denkweise „Wie soll das funktionieren?“. Ein guter Tester denkt: "Wie kann man das brechen?" - eine ganz andere Denkweise. Dem Entwickler wird es schwerfallen, sich von der „Wie es funktioniert“-Mentalität zu entfernen, im Gegensatz zu der „Wie es funktionieren sollte“-Mentalität. Daher ist es am besten, das Programm von jemandem mit einem hohen Maß an Objektivität testen zu lassen, z. B. von QA oder Testingenieuren.

Wie ist das Software-Testen bei uns organisiert? 

Falls es nach dem Code Review keine Probleme gefunden wurden, wird der Task an den Test-Server übermittelt (mehr über den Prozess des Code Reviews lesen Sie in unserem anderen Artikel). 

Es werden bei uns zwei Arten von Tests durchgeführt: automatisiertes und manuelles.

Wenn der Code auf den Test-Server gelangt, machen wir erst den Lasttest via K6 Tool. Der Lasttest misst das Systemverhalten bei steigender Systemlast (z.B. durch parallele User), um herauszufinden, welche Last faktisch bewältigt werden kann. 

k6

Danach wird das Testen via das Tool Google Lighthouse. Es ermöglicht Performance Audits von Websites, mit diesem Tool kann man Performance, Progressive Web App, SEO, Accessibility und Best Practices testen und überprüfen, ob die Google Page Speed Insights nicht gesunken wurden. 

Google Lighthouse

Danach wird automatisiertes Testen via das Tool TestCafe durchgeführt. Es hilft, das Cross-Browser Testing von Webanwendungen ohne großen Konfigurationsaufwand zu machen. 

testcafe

Zusätzlich nutzen wir Lambdatest zum Cross-Browser Testing. 

LambdaTest

Danach machen wir das manuelle Testen. Beim manuellen Testen überprüft der Tester die Funktionalität der Website, zum Beispiel, ob alle Blöcke, Texte, Bilder korrekt angezeigt werden und nicht verschoben sind, oder ob die individuelle Geschäftslogik richtig und fehlerfrei funktioniert. 

Wenn das Testen erfolgreich war und es wurden keine Fehler gefunden, kann der Task auf den Live-Server übertragen werden. Wenn aber auf einer dieser Etappen Fehler gefunden wurden, werden diese Probleme von den Entwicklern behoben. Alle Prozesse des Testens werden erneut durchgeführt, bis alles richtig funktioniert. 

Im nächsten Schritt nutzen wir den Release Manager. Wenn alle Tasks mit der gleichen Code-Version durch alle Tests erfolgreich überprüft wurden, veröffentlicht das System den Release automatisch. Jetzt kann man diesen Release auf den Live oder Stage Shop des Kunden übertragen. 

Wenn der Release auf dem Live Server des Kunden ist, werden alle Etappen des Testens erneut durchgeführt, aber schon auf dem Live-Shop (also automatisiertes Testen via K6, Google Lighthouse und TestCafe und daran anschließend manuelles Testen). 

Unsere Agentur Kenner Soft Services GmbH achtet sehr viel auf die Qualität der erbrachten Leistungen. Wir überprüfen alles sehr gründlich und sorgfältig, um das beste Ergebnis den Kunden zu liefern. 

Über den Autor


Alex Novytskyi

 

CTO bei Kenner Soft Service GmbH. Unterstützung von Unternehmen bei der Verbesserung ihrer digitalen Prozesse mit Shopware, Oxid und JTL. Implementierung von Produktkonfiguration und PIM-Lösung. ERP-Integration und -Automatisierung.

Haben Sie Interesse an ein engagiertes Team?

Bitte nehmen Sie Kontakt mit unserem Team auf, gerne helfen wir Ihnen weiter.

human test

0.0