Alles, was Sie über Software -Testmethoden wissen müssen
- 3073
- 391
- Hr. Carl Kúhn
Bevor Software für den öffentlichen oder kommerziellen Gebrauch versandt, verbringen Programmierer Stunden damit, jeden Fehler zu bügeln, wobei das Produkt in der Schwebe verbleibt, bis alle Stakeholder zufrieden sind.
Silicon Valley-Software-Giganten wie Google und Facebook versenden häufig beliebte Produkte trotz der Niedrigprioritätsfehler ihrer Software. Investoren und Millionen treuer Benutzer tolerieren Software -Updates und temporäre Knicke in Produkten, die diese Unternehmen anbieten.
Die meisten Softwareunternehmen haben diesen Luxus nicht. Kunden möchten, dass Produkte wie angekündigt durchführen und zu Recht alarmiert sind, wenn es nicht angeklagte Schwachstellen gibt.
Warum sind Testfähigkeiten erforderlich??
Bei so vielen verfügbaren Softwareentwicklungsoptionen denken die Kunden nicht zweimal darüber nach. Softwareunternehmen müssen strenge Tests an ihren Produkten durchführen, bevor sie sie an Kunden weitergeben. Diese Tests bieten die folgenden Erkenntnisse:
- Sie heben Unterschiede zwischen dem ursprünglichen Konzept und der endgültigen Ausgabe hervor.
- Sie überprüfen, dass die Software als geplante Designer funktioniert.
- Sie bewerten Merkmale und Qualität.
- Sie bestätigen, dass das Endprodukt den Kundenanforderungen entspricht.
Das Testen folgt einer strikten Blaupause, um die Arbeitsbelastung, Zeit und Geld zu optimieren und gleichzeitig die Stakeholder wesentliche Informationen zur Verfügung zu stellen, um das Produkt voranzutreiben. Ziel ist es, ein positives Endbenutzererlebnis zu ermöglichen, indem ein Programm zur gründlichen Qualitätssicherung (QA) durchgeführt wird. Angesichts der hohen Einsätze für Entwickler sind QA -Manager einige der Top -Verdiener in der Technologieindustrie. Die Tests folgen normalerweise folgenden Schritten:
- Führen Sie eine Anforderungenanalyse durch, bei der Manager einen Plan zur Einführung einer geeigneten Teststrategie skizzieren.
- Beginnen Sie mit Tests und analysieren Sie die Ergebnisse.
- Korrigieren Sie alle Fehler und setzen Sie die Software durch Regressionstests ein (ein System, um zu überprüfen, ob das Programm nach Änderungen noch funktioniert).
- Erstellen Sie einen Testschließungsbericht, in dem der Prozess und die Ergebnisse beschrieben werden.
Einzelpersonen können über BCS, das Chartered Institute for IT, ISTQB (International Software Testing Qualifications Board) und ASQ (American Society for Quality) zertifizierte Softwaretester werden, das Chartered Institute für ITQB (International Software Testing Qualifications Board).
Software -Testmethoden
Schwarz -Weiß -Box -Tests sind zwei grundlegende Methoden zur Beurteilung des Produktverhaltens und der Leistung. Black Box-Tests, auch funktionale oder spezifikationsbasierte Tests genannt, konzentriert sich auf die Ausgabe. Die Tester sind nicht mit den internen Mechanismen besorgt. Sie überprüfen nur, dass die Software das tut, was sie tun soll. Kenntnisse über die Codierung sind nicht erforderlich, und die Tester arbeiten auf Benutzeroberflächenebene.
Weiße Box -TestsVerwendet Codierungserfahrung als Teil des Testverfahrens. Wenn ein Produkt fehlschlägt, gehen die Tester tief in den Code, um die Ursache zu finden. Softwareentwickler werden dies selbst tun, weil die Kunden von ihnen erwarten, dass sie ein Produkt funktioniert. White-Box-Tests werden auch als "strukturbasierte" oder "Glasbox" -Tests bezeichnet.
Statische Tests untersuchen den Quellcode und alle begleitenden Dokumentationen, führen jedoch das Programm nicht aus. Statische Tests beginnen früh in der Entwicklung des Produkts während des Verifizierungsprozesses.
Dynamische Tests verwendet verschiedene Eingänge, wenn die Software ausgeführt wird, und Tester vergleichen Ausgaben mit dem erwarteten Verhalten. Grafische Benutzeroberflächen -Tests bewerten Textformatierung, Textfelder, Schaltflächen, Listen, Layout, Farben und andere Schnittstellenelemente. GUI-Tests sind zeitaufwändig, und Drittunternehmen übernehmen häufig die Aufgabe anstelle von Entwicklern.
Teststufen
In jeder Phase des Softwareentwicklungslebenszyklus werden unterschiedliche Teststufen verwendet, um Bereiche der Schwäche und Überlappungen zu identifizieren. Die Teststufen sind:
- Gerätetest
- Integrationstests
- Systemtests
- Akzeptanztest
Beim Testen von Unit testen Entwickler die grundlegendsten Codeteile wie Klassen, Schnittstellen und Funktionen/Verfahren. Sie wissen, wie ihr Code reagieren sollte und kann je nach Ausgabe Anpassungen vornehmen.
Integrationstestswird auch als "Modul" oder "Programm" bezeichnet. Es ähnelt dem Test -Test, enthält jedoch ein höheres Integrationsniveau. Module der Software werden auf Defekte getestet, um ihre Funktion zu überprüfen. Integrationstests identifiziert Fehler, wenn sich die Module integrieren. Verschiedene Methoden für Integrationstests umfassen "Bottom-up", "Top-Down" und "funktional inkrementell".
Systemtest -Tests Komponenten eines Projekts als Ganzes in verschiedenen Umgebungen. Systemtests fällt unter die Black Box -Methode und ist einer der endgültigen Tests im Prozess. Es wird festgestellt, ob das System bereit ist, die Geschäfts- und Benutzeranforderungen zu erfüllen.
Es gibt im Allgemeinen zwei Arten von Akzeptanztests. Bei Alpha -Tests wird die Software in einer simulierten oder tatsächlichen Umgebung intern auf der Website des Entwicklers ausgeführt. Die Software läuft so, als würden Live-Endbenutzer sie benutzt. Entwickler machen sich Notizen zu Problemen und beginnen, Fehler und andere Probleme zu korrigieren.
Auch im Rahmen von Black-Box-Tests, bei Akzeptanztests, testen Client-Software, um herauszufinden, ob der Entwickler das Programm voll entwickelt hat, um seine gewünschten Spezifikationen anzupassen.
Beta -Tests oder Feldtests können Kunden das Produkt unter realen Bedingungen auf ihren Standorten testen. Kunden bieten möglicherweise einer Gruppe von Endbenutzern die Möglichkeit, die Software über Vorab- oder Beta-Versionen zu testen. Beta -Tests zielt darauf ab, das tatsächliche Benutzer -Feedback zu erhalten, das an den Entwickler gesendet wird.
Testtypen
Verschiedene Arten von Softwaretests sollen sich auf bestimmte Ziele konzentrieren. Der Testingenieur und der Konfigurationsmanager verwenden Installationstests, um sicherzustellen, dass der Endbenutzer das Programm installieren und ausführen kann. Es umfasst Bereiche wie Installationsdateien, Installationsorte und Verwaltungsberechtigte.
Entwicklungstests implementiert eine Reihe synchronisierter Strategien, um Mängel zu erkennen und zu verhindern. Es enthält statische Codeanalyse, Peer -Code -Überprüfungen, Rückverfolgbarkeit und Metrikenanalyse. Ziel ist es, Risiken zu senken und Kosten zu sparen.
Die Benutzererfahrung wird mit Usability -Tests ins Rampenlicht gerückt. Es misst, wie einfach die GUI zu verwenden ist. Es überprüft die Genauigkeit und Effizienz von Funktionen und die emotionalen Reaktionen der Testpersonen.
Ein Vernunftstest zeigt an, ob die Software die Zeit und die Kosten wert ist, um weitere Tests fortzusetzen. Wenn es zu viele Mängel gibt, werden aggressivere Tests nicht folgen.
Gefühle werden während der Software -Release -Phase durchgeführt, in der Rauchentests durchgeführt werden, um festzustellen, ob die Software genug ausgeführt wird, um nachweisbar zu sein.
Rauchtests zeigen grundlegende Fehler, die schwerwiegend genug sind, um die Freisetzung zu verhindern. Wenn Entwickler einen neuen Build testen, wird er als "Build -Überprüfung" -Test bezeichnet. Wenn sich das System modifiziert, überwacht Regressionstests das unerwartete Verhalten. Es weist auf nachteilige Auswirkungen auf Module oder Komponenten hin.
Tester geben abnormale Einträge ein und erkennen die Fähigkeit der Software, unerwartete Eingaben in zerstörerischen Tests zu verwalten. Dies zeigt den Entwicklern, wie robust das Programm fehlerverwaltung ist.
Wenn Hardware oder andere Funktionen ausfallen.
Automatisierung führt Funktionen aus, die eine manuelle Implementierung schwierig sind. Bei der Prüfung werden spezifische Software zum Ausführen von Tests und zur Bereitstellung von Daten zu tatsächlichen VS verwendet. Erwartete Ergebnisse.
Die Software muss in verschiedenen Computerumgebungen ausgeführt werden. Daher überprüft das Kompatibilitätstest, wie die Software auf verschiedene Systeme reagiert. Zum Beispiel testen Programmierer die Software mit verschiedenen Betriebssystemen und Webbrowsern.
Die Tests müssen umfangreich sein und alle Kundenprobleme angehen, oder das Projekt wird schnell zu einer Verschwendung von Ressourcen.
Leistungstests untersucht die Softwareleistung in verschiedenen Szenarien. Informationen zu Reaktionsfähigkeit, Stabilität, Ressourcenzuweisung und Geschwindigkeit werden gesammelt. Untertests wie Volumen, Kapazität und Spike-Test spielen in diesem Prozess eine Rolle.
Sicherheitstests misst die Fähigkeit der Software, die Sicherheit der Benutzer zu schützen. Autorisierungsfunktionen, Authentifizierung, Vertraulichkeit, Integrität, Verfügbarkeit und Nicht-Repudiation sind Beispiele für Merkmale, die getestet werden müssen.
Barrierefreiheitstests unterscheiden sich von Usability -Tests. Dies bestimmt, inwieweit Benutzer verschiedener Fähigkeiten die Software verwenden können.
Internalisierungs- und Lokalisierungstestergebnisse zeigen, wie sich die Software an verschiedene Sprachen und regionale Anforderungen anpassen kann. Dies umfasst das Hinzufügen von Komponenten für bestimmte Stellen und Textübersetzung.
- « Empfehlungsschreiben für einen Marketingangestellten
- 10 Gründe, warum Event Management eine ideale Start -up -Gelegenheit ist »