Haben Sie sich jemals gefragt, was hinter den Kulissen passiert, bevor Software veröffentlicht wird? Programmierer sind sich der Menge an Arbeit bewusst, die in die Programmerstellung fließt. Stunden, die damit verbracht werden, jeden kleinen Käfer zu bügeln, lassen viele ihre Haare ausziehen. Und bis das Produkt alle Interessengruppen zufrieden stellt, steht es nicht für den kommerziellen Gebrauch zur Verfügung.
Riesige Softwarefirmen, wie Google, haben trotz niedriger Priorität Fehler in ihrer Software, aber kleinere Firmen und Startups haben diesen Luxus nicht. Kunden erwarten, dass Produkte auf der Verkaufsseite oder in der Dokumentation ihre Ansprüche erfüllen. Mit so vielen Möglichkeiten, werden sie nicht zweimal darüber nachdenken, zu springen, wenn das Produkt ihre Zeit und ihr Geld verschwendet. Daher wird die Software vor der Veröffentlichung strengen Tests unterzogen, um:
- heben Sie die Unterschiede zwischen dem ursprünglichen Konzept und der endgültigen Ausgabe hervor
- Verifizieren Sie, dass die Software so funktioniert, wie Designer es geplant haben
- validieren Sie das Endprodukt - das Produkt muss die Kundenanforderungen erfüllen
- beurteilen Merkmale und Qualität
Die Prüfung folgt einem strengen Bauplan. Dies optimiert den Einsatz wertvoller Ressourcen - Fähigkeiten, Zeit und Geld - und versorgt Stakeholder mit wichtigen Informationen, um das Produkt voranzubringen. Ziel ist es, durch ein starkes Qualitätssicherungsprogramm eine gute Endbenutzererfahrung zu ermöglichen. Mit den so hohen Einsätzen sind QA-Manager einige der Top-Verdiener in der Tech.Testing in der Regel folgt diese Schritte:
- Anforderungsanalyse, bei der Manager einen Plan für eine geeignete Teststrategie entwerfen.
- Tests beginnen und Ergebnisse werden analysiert.
- Alle Fehler werden korrigiert, und die Software durchläuft Regressionstests - ein System, um zu überprüfen, ob das Programm nach Änderungen noch funktioniert.
- Ein Testabschlussbericht gibt dann den gesamten Prozess und die Ergebnisse an.
Softwaretestmethoden
Hier sind die verschiedenen Methoden, um Produktverhalten und Leistung zu beurteilen. Black-Box- und White-Box-Tests sind die beiden grundlegenden Methoden.
- Black-Box-Test - Auch als funktionales oder spezifikationsbasiertes Testen bezeichnet, konzentriert sich diese Methode auf die Ausgabe. Die Tester befassen sich nicht mit den internen Mechanismen. Sie prüfen nur, ob die Software das tut, was sie soll. Kenntnisse der Codierung sind nicht erforderlich, und Tester arbeiten auf Benutzeroberflächenebene.
- White-Box-Test - Diese Methode verwendet Codierungs-Know-how als Teil des Testverfahrens. Wenn ein Produkt ausfällt, gehen Tester so tief in den Code, wie nötig, um die Ursache zu finden. Die Softwareentwickler machen das selbst, da sie bestimmen, wie das Produkt funktionieren soll. Strukturbasierte und Glas-Box-Tests sind andere Namen für diese Methode.
- Statische Tests - Tester untersuchen den Code und die Dokumentation der Software, führen das Programm jedoch nicht aus. Statische Tests beginnen früh während der Produktentwicklung während des Verifizierungsprozesses.
- Dynamisches Testen - Die Software wird mit verschiedenen Eingaben ausgeführt, und Tester vergleichen Ausgaben mit erwartetem Verhalten mit dieser Methode.
- GUI-Test - Hier werden GUI-Eigenschaften getestet - Textformatierung, Textfelder, Schaltflächen, Listen, Layout, Farben, Schriftarten, Schriftgrößen usw. GUI-Testing ist zeitaufwändig, und Unternehmen von Drittanbietern übernehmen oft die Aufgabe statt der Entwickler.
Teststufen
Diese sind notwendig, um Schwachstellen und Überlappungen in jeder Phase des Softwareentwicklungslebenszyklus zu identifizieren.
- Komponententests - Entwickler testen die grundlegenden Teile des Codes wie Klassen, Schnittstellen und Funktionen / Prozeduren. Sie wissen, wie ihr Code reagieren soll und können je nach Ausgabe Anpassungen vornehmen.
- Komponententest - Andere Namen sind Modul- oder Programmtests. Es ähnelt dem Testen von Einheiten, enthält jedoch ein höheres Integrationsniveau. Module der Software werden auf Fehler geprüft, um ihre individuelle Funktion zu überprüfen.
- Integrationstest - Identifiziert Fehler bei der Integration von Modulen. Verschiedene Integrationstests sind von unten nach oben, von oben nach unten und funktional inkrementell.
- Systemtest - Mit dieser Methode werden Komponenten eines Projekts als Ganzes in verschiedenen Umgebungen getestet. Es fällt unter die Black-Box-Methode und ist einer der letzten Tests in diesem Prozess. Es stellt fest, ob das System so funktioniert, wie es den Geschäfts- und Benutzeranforderungen entspricht.
- Alphatest - Interne Mitarbeiter testen die Software auf der Entwicklerwebsite in einer simulierten oder tatsächlichen Umgebung. Danach beheben Entwickler Fehler und andere Probleme.
- Beta-Test - Auch als Feldtest bekannt, testet der Kunde das Produkt auf seiner eigenen Website unter realen Bedingungen. Der Kunde kann einer Gruppe von Endbenutzern die Möglichkeit bieten, die Software über Prerelease- oder Beta-Versionen zu testen. Feedback zu möglichen Verbesserungen wird dann an den Entwickler gesendet.
- Akzeptanztests - Auch im Rahmen von Blackbox-Tests testet der Kunde die Software, um herauszufinden, ob der Entwickler das Programm nach den gewünschten Spezifikationen erstellt hat.
Testtypen
Diese Softwaretests konzentrieren sich auf bestimmte Ziele.
- Installationstest - Der Testtechniker und der Konfigurationsmanager führen diesen Test durch, um sicherzustellen, dass der Endbenutzer das Programm installieren und ausführen kann. Es umfasst Bereiche wie Installationsdateien, Installationsorte und Administratorrechte.
- Entwicklungstests - Dies implementiert eine Reihe von synchronisierten Strategien zum Erkennen und Verhindern von Fehlern. Es umfasst statische Code-Analyse, Peer-Code-Reviews, Rückverfolgbarkeit und Metrikenanalyse. Ziel ist es, Risiken zu reduzieren und Kosten zu sparen.
- Usability Testing - User Experience steht bei diesem Test im Vordergrund. Es misst, wie gut die GUI gestaltet ist und wie einfach sie ist. Der Test überprüft die Genauigkeit und Effizienz der Funktionen und die emotionalen Reaktionen der Testpersonen.
- Gesundheitstest - Dies zeigt an, ob die Software Zeit und Kosten für weitere Tests wert ist. Zu viele Fehler und aggressivere Tests folgen nicht.
- Rauchprüfung - Die Rauchprüfung zeigt grundlegende Fehler auf, die ernst genug sind, um eine Freisetzung zu verhindern. Wenn dies bei einem neuen Build ausgeführt wird, wird dies als Build-Verifizierungstest bezeichnet.
- Regressionstest - Wenn das System modifiziert wird, überwacht der Regressionstest das unerwartete Verhalten. Es weist auf nachteilige Auswirkungen auf Module oder Komponenten hin.
- Destruktive Tests - Tester geben anormale Einträge ein und erkennen die Fähigkeit der Software, unerwartete Eingaben zu verwalten. Dies zeigt Entwicklern, wie robust das Programm bei der Fehlerverwaltung ist.
- Wiederherstellungstest - Wenn Hardware oder andere Funktionen fehlschlagen, zeigt dieser Test, wie gut die Software den Betrieb wiederherstellen und den Betrieb fortsetzen kann.
- Automatisiertes Testen - Dies führt Funktionen aus, die schwer manuell zu implementieren sind. Es verwendet spezielle Software, um die Tests durchzuführen und Daten über tatsächliche und erwartete Ergebnisse zu liefern.
- Kompatibilitätstest - Software muss in verschiedenen Computerumgebungen ausgeführt werden, damit die Kompatibilität mit verschiedenen Systemen überprüft wird. Zum Beispiel funktioniert die Software mit verschiedenen Betriebssystemen und Webbrowsern?
- Leistungstest - Dies ist ein eingehender Test, der die Softwareleistung in verschiedenen Szenarien untersucht. Informationen über Reaktionsfähigkeit, Stabilität, Ressourcenzuweisung und Geschwindigkeit werden gesammelt. Darüber hinaus spielen Untertests wie Volumen-, Kapazitäts- und Spike-Tests eine Rolle.
- Sicherheitstest - Dies misst die Fähigkeit der Software, die Sicherheit der Benutzer zu schützen. Dies bedeutet Autorisierungsfunktionen, Authentifizierung, Vertraulichkeit, Integrität, Verfügbarkeit und Nichtabstreitbarkeit.
- Accessibility-Test - Dies ist nicht dasselbe wie Usability-Tests. Dies bestimmt, inwieweit Nutzer unterschiedlicher Fähigkeiten - einschließlich Lernen und körperlicher Behinderungen - die Software nutzen können.
- Internationalisierung und Lokalisierungstests - Die Ergebnisse zeigen, wie sich die Software an verschiedene Sprachen und regionale Anforderungen anpassen kann. Dies beinhaltet das Hinzufügen von Komponenten für bestimmte Standorte und die Übersetzung von Text.
Softwaretests sind ein wesentlicher Bestandteil, um ein Produkt auf den Markt zu bringen. Und ohne Tester würde die große Auswahl an verfügbarer Software nicht existieren. Werden Sie zertifizierter Software-Tester durch Organisationen wie BCS, das Chartered Institute für IT, ISTQB® (Internationales Software Testing Qualifications Board) und ASQ (ehemals American Society for Quality).