Werbung

Was ist Softwaretest und welche Arten davon gibt es?

Möchten Sie wissen, welche Arten von Softwaretests es gibt? Dann sind Sie bei uns genau richtig.

Nehmen wir an, Sie sind ein Softwareentwickler. Sie haben den Auftrag gewonnen, den Code geschrieben und alles scheint großartig zu sein.

Aber haben Sie tatsächlich sichergestellt, dass das Produkt Ihrer Arbeit die Aufgabe erfüllt, die es erfüllen soll? Sie sollten es wahrscheinlich testen!

Vermeiden Sie dies Schritt auf eigene Gefahr .

VERBINDUNG: 15 LUSTIGE SOFTWARE-GLITCHES, DIE SIE WACHSEN LASSEN

Was ist Softwaretest?

Softwaretests Wie der Begriff schon sagt, handelt es sich um eine Aktivität, mit der überprüft wird, ob die Ergebnisse der Software den Erwartungen entsprechen. Durch Softwaretests wird effektiv sichergestellt, dass die Software genau das tut, was sie tun soll - auch bekannt als Überprüfung der Softwarefür den Zweck geeignet.

Softwaretests bewerten objektiv eine Softwarekomponente oder ein gesamtes Softwaresystem, um eine oder mehrere ihrer Eigenschaften als Fehler zu bewerten, und andere Probleme können sehr teuer und sogar gefährlich sein. Es ist ein wichtiger Prozess, um Fehler zu identifizieren, Fehler, Lücken oder andere fehlende Anforderungen aus dem ersten Brief oder den Kundenspezifikationen, falls vorhanden.

Softwaretests können entweder manuell oder mithilfe automatisierter Tools oder einer Mischung aus beiden durchgeführt werden.

Warum sind Softwaretests erforderlich?

Softwaretests ist eine großartige Möglichkeit, wie bereits erwähnt, Fehler im Produkt zu identifizieren, bevor es auf den Markt gebracht wird.

Um den Punkt nach Hause zu bringen, hier einige Beispiele aus der Praxis, warum ordnungsgemäße Softwaretests ernst genommen werden sollten.

  • Im April 2015 Bloombergs Londoner Terminal Absturz aufgrund eines Softwareproblems. Dies betraf Hunderttausende von Finanzmarkthändlern. Die IT zwang die britische Regierung sogar, a zu verschieben. 3 Milliarden Pfund Schuldenverkauf. Mit geeigneten Tests hätte dies vermieden werden können.
  • Auch im Jahr 2015 aufgrund eines nicht identifizierten Softwarefehlers Starbucks musste schließen 60% von seinen Filialen in den USA und Kanada. Aufgrund eines Problems während der täglichen Systemaktualisierung ihrer Kassensystem Verhinderung der Durchführung von Transaktionen durch das Unternehmen. In einigen Fällen war Starbucks gezwungen, Bestellungen zu bedienen. kostenlos .
Die Boeing 737 Max 8 hat den Hersteller viel Geld gekostet, weil er einige seiner kritischen Software nicht vollständig getestet hat. Quelle : Boeing
  • Im Februar 1991, während des Ersten Golfkrieges, traf eine irakische Rakete die US-Basis Dhahran in Saudi-Arabien und tötete 28 amerikanische Soldaten. Nach einer Untersuchung wurde festgestellt, dass das antiballistische System der Basis aufgrund eines Computerfehlers nicht gestartet werden konnteDie interne Uhr war um einige Millisekunden pro Stunde verschoben, was schließlich einen großen Einfluss auf das Timing der Systeme hatte.
  • Nissan musste einmal knapp unter zurückrufen 1 Million von den Infiniti-Modellen 2013 und 2014 vom Markt, nachdem ein schwerwiegender Softwarefehler im Zusammenhang mit den Airbagsensoren festgestellt wurde. Dies folgte auf zwei Unfälle, die dazu führten, dass das Problem endgültig entdeckt wurde.
  • Während des Falklandkriegs von 1982 der Zerstörer der Royal Navy HMS Sheffield ist aufgrund eines Softwareproblems gesunken, das mit dem Radarwarnsystem verbunden ist. Gemäß a Bericht aus der Zeit Während es in der Lage war, die ankommende Exocet-Anti-Schiffs-Rakete aufzunehmen, zeichnete es sie als "freundlich" auf, wodurch der Start von Gegenmaßnahmen verhindert wurde.
  • Vor kurzem die Boeing 737 Max 8 wurde für Software-Upgrades nach dem Absturz von zwei Flugzeugen im Jahr 2018 geerdet. Diese Softwareprobleme kosten nicht nur Boeing Milliarden aber leider auch das Leben von Hunderten von Menschen gekostet.

Wenn ein ordnungsgemäßes Testregime durchgeführt worden wäre, wäre es durchaus möglich, dass zumindest einige der oben genannten Punkte hätten vermieden werden können. Diese Fehler sind jedoch nicht leicht vorherzusehen, bevor sie auftreten. Wie das Sprichwort sagt, ist der Rückblick 20:20.

Was sind die Vorteile von Softwaretests?

Wie wir bereits gesehen haben, kann das Nicht-Testen von Software bis an ihre Grenzen schwerwiegende Folgen haben. Außerdem gibt es für Entwickler einige sehr wichtige und greifbare Vorteile von Softwaretests.

Werbung
Quelle : DragonImages / iStock

Dazu gehören unter anderem :

  • Softwaretests sind sehr kostengünstig : Dies ist wahrscheinlich der wichtigste Vorteil von Softwaretests. Wenn Sie ein IT-Projekt rechtzeitig testen, können Sie langfristig Geld sparen. Dies gilt insbesondere für das Erkennen von Fehlern, Fehlern und anderen Problemen zu Beginn des Entwicklungszyklus.
  • Softwaretests verbessern die Sicherheit : Ein weiterer lebenswichtiger Vorteil des Testens ist die Gewährleistung der Produktsicherheit. Es zahlt sich für den Entwickler aus. Es stellt nicht nur sicher, dass die Verbraucher dem Produkt vertrauen, sondern hilft auch dabei, Lücken in seiner Abwehr zu schließen, bevor Hacker sie finden.
  • Produktqualität : Dies ist eine wesentliche Anforderung an jedes Softwareprodukt. Durch Tests wird sichergestellt, dass ein Qualitätsprodukt an Kunden geliefert wird.
  • Kundenzufriedenheit : Das Hauptziel eines Produkts ist es, seine Kunden zufrieden zu stellen. UI / UX-Tests gewährleisten die beste Benutzererfahrung.

Welche verschiedenen Arten von Softwaretests gibt es?

Softwaretests werden im Allgemeinen in drei Hauptkategorien unterteilt. Dies sind im Großen und Ganzen: -

  • Funktionsprüfung
  • Nichtfunktionstest / Leistungstest
  • Wartungstests
Quelle : Tunarus / Pixabay

Funktionsprüfung, wie definiert durch Techopedia ist "ein Softwaretestprozess, der in der Softwareentwicklung verwendet wird und bei dem Software getestet wird, um sicherzustellen, dass sie allen Anforderungen entspricht. [Es] ist eine Möglichkeit, Software zu überprüfen, um sicherzustellen, dass sie über alle erforderlichen Funktionen verfügt, die in ihrer Funktion angegeben sindAnforderungen."

Kurz gesagt, Funktionstests werden verwendet, um sicherzustellen, dass die Software die gleiche Ausgabe liefert, die der Endbenutzer und die Verbraucher benötigen.

Nichtfunktionstest ist andererseits eine Form des Softwaretests, um nicht funktionale Aspekte einer Software zu bewerten. Dies sind normalerweise Dinge wie Leistung, Benutzerfreundlichkeit, Zuverlässigkeit usw.

Diese Form des Testens dient zum Testen der Bereitschaft eines Systems, as pro nicht funktionierenden Parametern, die normalerweise nicht durch Funktionstests behandelt werden. Ein gutes Beispiel wäre zu überprüfen, wie viele Benutzer sich gleichzeitig anmelden können.

Werbung

Wartungstests wird im Gegensatz zu den beiden vorherigen normalerweise durchgeführt, um potenzielle Geräteprobleme zu identifizieren, wenn beispielsweise Software von einer Hardware auf eine andere migriert wird.

Es kann auch verwendet werden, um zu überprüfen, ob andere Hardwareänderungen, Reparaturen oder Upgrades eine Software nachteilig beeinflusst haben oder nicht. Solche Softwaretests können je nach Bedarf entweder auf System-, Geräte- oder Komponentenebene durchgeführt werden.

Von nun an werden wir einige der häufigsten Softwaretesttypen untersuchen, die unter diese allgemeinen Kategorien fallen mit Ausnahme von Wartungstests.

Quelle : Ingenieurkorps der US-Armee

Vertrauen Sie uns, wenn wir sagen, dass diese Liste alles andere als vollständig ist. 150 verschiedene Typen von ihnen und wächst.

Sie sollten auch beachten, dass die folgende Liste in keiner bestimmten Reihenfolge aufgeführt ist, mit der Ausnahme, dass wir sie in funktionale, nicht funktionale und wartungsbezogene Softwaretests aufgeteilt haben.

Werbung

Welche Arten von funktionalen Softwaretests gibt es?

Hier sind einige der häufigsten Formen des Testens funktionaler Software.

1. Integrationstest

Integrationstest ist eine Form des Softwaretests, mit dem alle integrierten Module in einer Software überprüft werden. Dies geschieht normalerweise, nachdem alle Komponentenmodule zusammen integriert wurden, daher der Begriff.

Module können normalerweise aus Codemodulen, einzelnen Anwendungen, Client- und Serveranwendungen in einem Netzwerk usw. bestehen. Diese Art des Testens ist besonders für Client / Server- und verteilte Systeme relevant.

2. Unit Testing

Unit Testing Im Gegensatz zu Integrationstests handelt es sich um eine Form von Softwaretests, bei denen eine einzelne Komponente oder ein einzelnes Modul bewertet wird. Eine Einheit ist der kleinste testbare Teil einer Software. Solche Tests werden normalerweise von den Programmierern selbst und nicht von dedizierten Testern durchgeführt. Dies liegt daran, dass in der Regel detaillierte Kenntnisse des internen Designs und des Codes des Programms erforderlich sind.

Werbung

Unit-Test ist die erste Stufe des Softwaretests und wird vor dem Integrationstest durchgeführt.

3. Systemtest

Systemtest ähnelt dem Integrationstest, ist jedoch umfassender. Bei dieser Testform wird das gesamte System auf seine allgemeine Übereinstimmung mit den Softwareanforderungen überprüft.

manchmal auch genannt Black-Box-Typ Das Testen wird nach dem Integrationstest durchgeführt und stellt sicher, dass das gesamte Softwarepaket wie erwartet funktioniert. Dies ist ein wesentlicher Testprozess, um die höchstmögliche Qualität für jedes gelieferte Paket sicherzustellen.

4. Rauchprüfung

Rauchtest ist eine Art vorläufiger Test, mit dem die grundlegende Funktionalität und Stabilität einer bestimmten Anwendung überprüft wird. Ein solcher Test soll schnell ausgeführt werden können, und seine Ziele bestehen im Allgemeinen darin, die Sicherheit der Hauptmerkmale eines Systems zu gewährleistenArbeit wie erwartet.

Werbung

Solche Tests werden normalerweise direkt nach der Entwicklung eines neuen Builds durchgeführt und vor eingehenderen Tests auf Stabilität überprüft. Rauchtests suchen effektiv nach "Show Stopper" -Fehlern im Code, die verhindern könnten, dass spätere Tests ordnungsgemäß ausgeführt werden.oder überhaupt.

Quelle : Air Force Materiel Command

As Hilfe zum Testen von Software weist darauf hin: "Wenn Tester feststellen, dass die wichtigsten kritischen Funktionen in der Anfangsphase selbst ausgefallen sind, kann das Testteam den Build ablehnen und das Entwicklungsteam entsprechend informieren. Die Rauchprüfung wird bis zu einem detaillierten Grad durchgeführtFunktions- oder Regressionstests. "

5. Sanity Testing

Mit Sanity-Tests wird festgestellt, ob eine neue Softwareversion eine ausreichende Leistung erbringt, um sie für weitere größere Tests zu akzeptieren. Wenn beispielsweise eine Anwendung bei der ersten Verwendung abstürzt, wird das System als zu instabil für weitere Tests angesehentesten.

Werbung

Es wird auch verwendet, um geringfügige Änderungen des Codes oder der Funktionalität zu überprüfen, um sicherzustellen, dass aufgrund dieser Änderungen keine weiteren Probleme auftreten. Dieser Test wird nicht verwendet, um die Software objektiv zu überprüfen, sondern um sicherzustellen, dass der Entwickler Rationalität dh Vernunft angewendet hat bei der Herstellung.

6. Regressionstest

Regressionstests werden verwendet, um eine Anwendung als Ganzes zu testen, wenn eine Änderung an einem Modul oder einer Funktion vorgenommen wurde - daher der Name regressiv. Sie werden verwendet, um zu bestätigen, dass vorgenommene Änderungen andere vorhandene nicht nachteilig beeinflusst habenEigenschaften.

Guru99 definiert Regressionstests als: " erneute Ausführung von bereits ausgeführte Tests um sicherzustellen, dass vorhandene Funktionen einwandfrei funktionieren. "Bei diesem Test wird geprüft, ob sich die Codeänderungen auf die vorhandenen Funktionen auswirken." Es wird sichergestellt, dass der alte Code auch nach den letzten Codeänderungen noch funktioniert. "

7. Grafikbenutzer Testen der Schnittstelle GUI

Quelle : Re-Mecs / Reddit

Grafische Benutzeroberfläche kurz GUI, Testen ist, wie der Name schon sagt, ein Test der Benutzeroberfläche anhand von Client- oder Endbenutzeranforderungen. Dies wird normalerweise in der Projektbeschreibung erläutert und enthält normalerweise Referenz-GUI-Modelle, anhand derer getestet werden kann.

Bei solchen Tests wird normalerweise die Größe von Schaltflächen und Eingabefeldern bei einer bestimmten Auflösung oder einem bestimmten Auflösungsbereich überprüft. Außerdem wird die Ausrichtung von Text, Tabellen und allgemeinem Inhalt überprüft.

Bei solchen Tests sollten auch alle vorhandenen Menüs wie die ausgefüllten Dropdowns überprüft werden. Die IT überprüft auch, dass die Seiten nicht schwanken und die Ausrichtung stabil bleibt, wenn Sie mit einem Mauszeiger darüber fahren.

8. Beta-Test

Beta-Test ist eine Form des Softwaretests, von der Sie wahrscheinlich gehört haben, auch wenn Sie nicht im Beruf sind. Im Gegensatz zu anderen bereits erwähnten diese Art der Prüfung wird häufig von Kunden und anderen Endbenutzern von Drittanbietern durchgeführt.

Es handelt sich tatsächlich um einen Test der Software in einer realen Umgebung vor der endgültigen Veröffentlichung des Produkts. Diese Tests werden durchgeführt, um sicherzustellen, dass keine größeren Fehler der Software vorliegen und alle Anforderungen erfüllt werden.

Endbenutzer werden im Allgemeinen aufgefordert, den Entwicklern Feedback zu geben und Vorschläge für mögliche Verbesserungen zu unterbreiten. Nach dem Kompilieren werden die Entwickler alle Verbesserungen vor der endgültigen Veröffentlichung durchführen.

Quelle : Zerfall

9. End-to-End-Test

Diese Form von Softwaretests wird verwendet, um zu testen, ob sich der Ablauf einer Anwendung von Anfang bis Ende wie erwartet verhält. Zweck ist es, Systemabhängigkeiten zu identifizieren und sicherzustellen, dass die Datenintegrität zwischen verschiedenen Systemkomponenten und Systemen erhalten bleibt.

In der Regel wird die gesamte Anwendung auf wichtige Funktionen wie die Kommunikation mit anderen Systemen, Schnittstellen, Datenbanken, Netzwerken und anderen Apps getestet.

10. Usability-Tests User Experience - UX

Dieser Softwaretest überprüft, wie der Name schon sagt, seine tatsächliche Benutzerfreundlichkeit . Auch als UX bezeichnet. Der Anwendungsfluss wird getestet, um festzustellen, ob ein neuer, unerfahrener Benutzer die Anwendung verstehen kann oder nicht.

Es kann auch alle Hilfefunktionen testen, um festzustellen, ob sie nützlich sind, und überprüft, ob die Systemnavigation logisch ist.

Nicht funktionierende Softwaretests

Hier sind einige der häufigsten Formen nicht funktionsfähiger Softwaretests.

1. Leistungstests

Leistungstests manchmal einschließlich Stresstests oder Belastungstests ist eine wichtige Form nicht funktionsfähiger Softwaretests.

Hier wird geprüft, ob ein System definierte Leistungsparameter erfüllt, es werden verschiedene Tools verwendet.

Quelle : Nixcraft / Tumblr

2. Stresstest

Wie bereits erwähnt Stresstest kann entweder als Teil eines allgemeinen Leistungstests oder als eigenständiger Test durchgeführt werden. Wie der Name schon sagt, testet dies die Software bis an die Grenzen ihrer definierten Leistung und darüber hinaus.

Es wird effektiv versucht herauszufinden, wie und wann das System ausfällt, sobald es die normalen Leistungserwartungen übertrifft. Ein solcher Test wird normalerweise unter hoher Last durchgeführt, z. B. durch Eingabe von Daten über die Speicherkapazität hinaus, durch komplexe Datenbankabfragen oder kontinuierliche Eingaben in das System.oder Testen von Datenbankladungen.

3. Lasttest

Eine andere Form des nicht funktionierenden Softwaretests Belastungstest prüft, wie sich das System verhält, wenn mehrere Benutzer gleichzeitig auf das Programm zugreifen. ist am relevantesten für Mehrbenutzersysteme; häufig solche, die mit einem Client / Server-Modell erstellt wurden, z. B. Webserver.

Lasttests können mit Tools wie JMeter, LoadRunner, WebLoad, Silk Performer usw. durchgeführt werden.

4. Sicherheitstests

Sicherheitstest überprüft, wie der Name schon sagt, jede Software auf ihre Leichtigkeit oder Schwierigkeit, die gehackt werden kann. Sie wird häufig von spezialisierten Testern wie White-Hat-Hackern durchgeführt und verwendet, um die Stärken und Schwächen einer Software von beiden internen zu ermittelnund externe Bedrohungen.

"Dieser Test beinhaltet, wie viel Software gegen schädliche Programme und Viren sicher ist und wie sicher und stark die Autorisierungs- und Authentifizierungsprozesse sind.

Es wird auch überprüft, wie sich Software gegen einen Hackerangriff oder ein Schadprogramm verhält und wie Software nach einem solchen Hackerangriff zur Datensicherheit gewartet wird. "- Hilfe zum Testen von Software .

Quelle : pxfuel

5. Lautstärketest

Volumentest ist ein weiterer nicht funktionsfähiger Softwaretest, der normalerweise von einem Leistungstestteam durchgeführt wird. Die zu prüfende Software ist großen Datenmengen ausgesetzt, und der Test überprüft, wie sich die Software verhält und wie sie reagiert.

Hiermit wird bewertet, welche Auswirkungen ein solcher Datenfluss gegebenenfalls auf die Leistung und die Verarbeitungszeit hat.

6. Kompatibilitätstests

Diese Form von Softwaretests Überprüft das Verhalten eines Softwarepakets in verschiedenen Umgebungen. Dazu gehören beispielsweise Webserver, Hardware und Netzwerkumgebung.

Bei dieser Testform wird überprüft, ob sie in verschiedenen Konfigurationen, Datenbanken usw. und gegebenenfalls in ihren verschiedenen Versionen ausgeführt werden kann.

7. Test installieren / deinstallieren

Wie der Name schon sagt, werden bei dieser Testform vollständige, teilweise oder Upgrades überprüft. installiert und deinstalliert . Es wird normalerweise unter verschiedenen Betriebssystemen mit einer Vielzahl unterschiedlicher Hardware- und Softwareumgebungen getestet.

Quelle : GotCredit / Flickr

8. Zuverlässigkeitstest

Diese Form des Softwaretests bewertet die Wahrscheinlichkeit des fehlerfreien Betriebs einer Software für einen bestimmten Zeitraum in mehreren Umgebungen.

"Zuverlässigkeitstests werden durchgeführt, um sicherzustellen, dass die Software zuverlässig ist, den Zweck erfüllt, für den sie erstellt wurde, für einen bestimmten Zeitraum in einer bestimmten Umgebung und in der Lage ist, einen fehlerfreien Betrieb zu gewährleisten." - Hilfe zum Testen von Software .

9. Wiederherstellungstest

Wiederherstellungstest ist ein weiterer kritischer Test, um festzustellen, wie sich eine bestimmte Software nach Systemabstürzen oder anderen Katastrophen verhält. Sie prüft, wie gut das betreffende System nach solchen Fällen wiederhergestellt werden kann.

Solche Tests sind in der Praxis relativ einfach und können das einfache Abziehen von Netzwerkkabeln beinhalten, um einen Verbindungsverlust zu erzwingen. Der Testpunkt besteht darin, festzustellen, ob die Software in der Lage ist, vor dem Ausfall zu einem Punkt zurückzukehren und den Betrieb fortzusetzen.

10. Konformitätstests

Konformitätsprüfung auch als Konformitätstest, Regulierungstest oder Standardtest bezeichnet ist ein weiterer gängiger Softwaretest. Dieser Test bestimmt die Konformität des Systems zur Festlegung externer Standards.

Quelle : SAM-Lösungen

Der Inhalt solcher Tests kann je nach den Anforderungen der angewandten Norm variieren.

11. Lokalisierungstest

Und schließlich Lokalisierungstest ist eine Form von Softwaretests, mit denen das Verhalten in Bezug auf verschiedene Kulturen oder Einstellungen bewertet wird. Der Hauptzweck besteht darin, dies zu überprüfen. angemessene sprachliche und kulturelle Aspekte für einen bestimmten geografischen Standort.

Mit anderen Worten, es handelt sich um einen Prozess zum Anpassen von Softwareanwendungen für die Zielsprache und das Zielland.

Und das sind alle Leute.

Wir hoffen, dass Sie inzwischen eine Wertschätzung für die Arten von Softwaretests und deren Bedeutung gewonnen haben. Das Obige ist nur die Spitze des Eisbergs, wenn es um Softwaretests geht. Alle Formen von Softwaretests sind jedoch wichtige Komponenten fürsicherstellen, dass die Software wie erwartet, sicher und zuverlässig funktioniert.

Quelle : TestMonitor / Twitter

Ohne ein umfassendes Testpaket kann die Endproduktsoftware einige ziemlich schwerwiegende Probleme aufweisen, die nicht nur für Benutzer gefährlich sind, sondern möglicherweise auch für den Entwickler nach hinten losgehen.

"Ein Stich in der Zeit spart neun", wie das berühmte Sprichwort sagt. Kluge Entwickler sollten beim Testen ihrer Software vor der Veröffentlichung niemals Abstriche machen - es könnte tatsächlich Menschen töten.

Folgen Sie uns auf

Bleiben Sie über die neuesten technischen Neuigkeiten auf dem Laufenden

Geben Sie einfach Ihre E-Mail-Adresse ein und wir kümmern uns um den Rest :

Mit Ihrer Anmeldung stimmen Sie unserer zu Nutzungsbedingungen und Datenschutzerklärung . Sie können sich jederzeit abmelden.