Systemprüfung

- Was ist ein Systemtest?
- Beispiel einer Systemprüfung
- Warum brauchen wir beim Testen von Software Systemtests?
- Was ist bei der Prüfung des Systems zu beachten?
- Eintritts- und Austrittskriterien
- Arten der Systemprüfung
- Prozess der Systemprüfung
- Vor- und Nachteile von Systemtests
- Systemtests vs. Abnahmetests
- Schlussfolgerung
Das Testen von Software ist eine Tätigkeit, die darauf abzielt, potenzielle Fehler und Schwachstellen in Softwareanwendungen zu erkennen, bevor diese für Endbenutzer freigegeben werden. Sie findet auf vier verschiedenen Ebenen statt – Einheitstests, Integrationstests, Systemtests und Abnahmetests. In diesem Artikel werden wir einen detaillierten Blick auf die Systemprüfung werfen.
Zuvor ist es jedoch wichtig, die verschiedenen Ebenen des Softwaretests zu kennen.
Einzelprüfung – Hier wird jede einzelne Komponente der Software separat getestet, um sicherzustellen, dass sie ordnungsgemäß funktioniert. Im Allgemeinen führen Entwickler oder Programmierer Unit-Tests während der Entwicklungsphase des SDLC durch.
Integrationstests – Es folgen Integrationstests. Es fasst die Komponenten des Einheitstests logisch in Gruppen zusammen und überprüft ihr Zusammenspiel. Es erkennt Fehler, die durch das Zusammenspiel von Softwaremodulen entstehen können.
Systemprüfung – Wenn das gesamte System verbunden und in eine einzige Einheit integriert ist, wird es als Ganzes bewertet. Ziel ist es, das System aus der Sicht des Nutzers zu überprüfen.
Abnahmetests – Die letzte Stufe ist die Abnahmeprüfung. Eine kleine Gruppe von tatsächlichen Nutzern oder ein internes Team des Unternehmens prüft, ob das Softwareprodukt alle festgelegten Anforderungen erfüllt.
Kommen wir nun zu einem detaillierten Verständnis der Systemprüfung.
Was ist ein Systemtest?
Systemtests sind eine Art von Softwaretests, bei denen ein Softwareprodukt als Ganzes auf der Grundlage funktionaler und nicht-funktionaler Anforderungen bewertet wird. Bestimmt die Gesamtleistung und Funktionalität eines vollständig integrierten Softwareprodukts.
Das Hauptziel dieser Art von Tests ist es, zu überprüfen, ob alle Softwarekomponenten fehlerfrei zusammenarbeiten und so funktionieren, wie sie sollen, und ob sie alle festgelegten Anforderungen erfüllen. Sie befasst sich mit der Überprüfung des Softwareproduktdesigns, seines Verhaltens und der Übereinstimmung mit den Kundenanforderungen.
Das QA-Team führt die Systemtests nach den Integrationstests und vor den Abnahmetests durch. Sie wählen eine Testumgebung, die einer echten Produktionsumgebung sehr ähnlich ist. Da das QA-Team das gesamte System testet, ohne sein Innenleben zu kennen, fällt es unter Blackbox-Tests.
Integrierte Module, die den Integrationstest bestanden haben, dienen als Input für den Systemtest. Beim Integrationstest werden Fehler oder Inkonsistenzen zwischen integrierten Einheiten aufgedeckt. Bei der Systemprüfung werden jedoch Fehler zwischen den integrierten Einheiten und dem Gesamtsystem aufgedeckt.
Kurz gesagt, diese Art des Softwaretests beinhaltet eine Reihe von Tests, um die gesamte Software zu testen.
Beispiel einer Systemprüfung
Nehmen wir ein Beispiel aus der Praxis. Denken Sie an den Prozess der Automobilherstellung. Zu Beginn stellt der Autohersteller alle grundlegenden Komponenten wie Bremsen, Motor, Sitze, Lenkung, Räder usw. her. Nach der Erstellung dieser Komponenten ist es an der Zeit, sie einzeln zu testen, was in der Softwareentwicklung als Unit Testing bezeichnet wird.
Sobald die Funktionsfähigkeit all dieser Einzelteile bestätigt ist, werden sie vom Hersteller zusammengebaut. Im nächsten Schritt wird geprüft, ob die zusammengesetzte Kombination keine Fehler verursacht oder Nebenwirkungen auf die Funktionalität der einzelnen Komponenten hat. Wir bezeichnen dieses Verfahren als Integrationstest.
Nachdem er sichergestellt hat, dass die montierte Kombination keine Fehler aufweist, prüft der Hersteller die Kombination als Ganzes, d. h. er testet das System. Das Fahrzeug als Ganzes wird einer Reihe von Kontrollen unterzogen, um festzustellen, ob es den vorgegebenen Anforderungen entspricht, z. B. ob das Fahrzeug reibungslos läuft und ob alle anderen Komponenten (Bremsen, Getriebe, Räder usw.) ordnungsgemäß funktionieren.
Wenn das Fahrzeug die Erwartungen der Kunden erfüllt, ist die Wahrscheinlichkeit größer, dass sie es kaufen.
Warum brauchen wir beim Testen von Software Systemtests?
- Selbst nach erfolgreichen Unit- und Integrationstests können viele komplexe Szenarien unentdeckte Probleme aufweisen. Systemtests helfen bei der Aufdeckung dieser Fehler.
- Testet Software anhand von funktionalen und nicht-funktionalen Anforderungen. Dies ist das erste Mal, dass dies im gesamten Lebenszyklus der Softwareentwicklung der Fall ist. Daher werden die Architektur oder das Softwaredesign und die Geschäftsanforderungen überprüft.
- Die Testumgebung ist genau dieselbe wie die Produktionsumgebung. Erfolgreiche Systemtests schaffen daher ein Gefühl des Vertrauens in das gelieferte Endprodukt. Die Beteiligten können auch nachvollziehen, wie die Endnutzer auf die Software reagieren.
- Dadurch werden Probleme nach der Bereitstellung, die Fehlersuche und Support-Anrufe minimiert.
Was ist bei der Prüfung des Systems zu beachten?
Bei dieser Art von Tests wird ein Softwareprodukt in Bezug auf die folgenden Aspekte bewertet:
- Interaktionen zwischen Softwarekomponenten, einschließlich externer Peripheriegeräte, um zu überprüfen, wie die Software als Ganzes funktioniert. Dies ist ein End-to-End-Testszenario.
- Die in die Software eingegebenen Daten führen zu den erwarteten Ergebnissen.
- Funktionale und nicht-funktionale Anforderungen werden erfüllt.
- Erfahrung der Endbenutzer mit der Software.
Wir haben hier einige der wichtigsten Parameter aufgeführt. Bei der Prüfung des Systems müssen jedoch noch viele andere Aspekte überprüft werden. Es erfordert detaillierte Testfälle und Testdateien für jeden Aspekt der Software von außen, ohne dass die internen Details untersucht werden.
Eintritts- und Austrittskriterien
Jede Stufe des Softwaretests hat Eingabe- und Ausgabekriterien. Im Folgenden sind die Eingangs- und Ausgangskriterien für die Prüfung des Systems aufgeführt:
Aufnahmekriterien
- Die Software sollte alle Kriterien für den Abschluss der Integrationstests erfüllen, d. h. j. die Ausführung aller Testfälle sollte abgeschlossen sein und es sollten keine kritischen oder prioritären Fehler im offenen Zustand vorliegen.
- Der Testplan sollte genehmigt und abgezeichnet werden.
- Testfälle, Testszenarien und Testskripte sollten zur Ausführung bereitstehen.
- Die Testumgebung sollte fertig sein.
- Nicht-funktionale Anforderungen sollten vorhanden sein.
Ausstiegskriterien
- Alle geplanten Testfälle sollten ausgeführt werden, um das System zu testen.
- Kein vorrangiger oder kritischer Fehler sollte sich in einem offenen Zustand befinden.
- Selbst wenn die offenen Fehler von mittlerer oder geringer Priorität sind, sollten sie zur nächsten Testebene – den Akzeptanztests – weitergeleitet werden.
- Es sollte ein Abschlussbericht erstellt werden.
Arten der Systemprüfung
Wie bereits erwähnt, wird bei dieser Art von Tests die Software im Hinblick auf die funktionalen und nicht-funktionalen Anforderungen bewertet. Daher muss die Software verschiedene Testverfahren durchlaufen, um das gesamte System und seine verschiedenen Aspekte zu bewerten.
Die verschiedenen Arten der Systemprüfung sind:
- Funktionstests: Die Software wird bewertet, um zu prüfen, ob jede Funktion wie gewünscht funktioniert und die festgelegten Anforderungen erfüllt. Wenn die Tester feststellen, dass einige Funktionen fehlen, bringen sie diese dem Entwicklungsteam zur Implementierung vor. Sie schlagen auch zusätzliche Funktionen zur Verbesserung der Software vor.
- Leistungstests: Es handelt sich um eine nicht-funktionale Art von Tests, die die Stabilität, Skalierbarkeit, Reaktionsfähigkeit und Geschwindigkeit des Systems unter einer bestimmten Last überprüft.
- Gebrauchstauglichkeitsprüfung: Es handelt sich ebenfalls um eine nichtfunktionale Prüfung, bei der die Benutzerfreundlichkeit und Effizienz der Software überprüft wird. Einfach ausgedrückt, bestimmt sie, wie leicht die Benutzer die Software verwalten und steuern und auf ihre Funktionen zugreifen können.
- Zuverlässigkeitstests: Mit dieser Testtechnik wird Software bewertet, um zu überprüfen, ob sie unter bestimmten Bedingungen über einen bestimmten Zeitraum hinweg korrekt und konsistent funktioniert.
- Sicherheitsprüfung: Sie deckt alle Sicherheitsrisiken und Schwachstellen in der Software auf und gewährleistet, dass sie keinen unbefugten Zugriff auf Daten und andere Ressourcen ermöglicht.
- Skalierbarkeitstests: Bei dieser Art von Lasttests wird die Leistung der Software bei steigender und sinkender Benutzerzahl bewertet.
- Wiederherstellbarkeitstests: Mit dieser Testtechnik wird die Fähigkeit der Software ermittelt, sich von Fehlern und Abstürzen zu erholen.
- Interoperabilitätstests: Es wird analysiert, wie gut die Software mit ihren Komponenten und Produkten von Drittanbietern zusammenarbeitet.
- Regressionstests: Diese Tests stellen sicher, dass neue Änderungen am Software-Quellcode keine Auswirkungen auf die bestehende Funktionalität haben. Sie gewährleistet die Stabilität der Software durch die Integration von Teilsystemen und Wartungsverfahren.
Prozess der Systemprüfung
Hier sind die einzelnen Schritte der Prüfung des Systems:
- Einrichten der Testumgebung – Der erste Schritt besteht darin, eine Testumgebung zu schaffen, die der Produktionsumgebung für Qualitätstests entspricht. Die Testumgebung umfasst die Auswahl von Programmiersprachen, Frameworks und Testtools sowie die Erstellung der erforderlichen Abhängigkeiten und Konfigurationen.
- Erstellung von Testfällen – Der nächste Schritt ist die Erstellung von Testfällen für den ausführlichen Testprozess. Dazu gehört auch die Erstellung eines Testdokuments, das die Anzahl der erfolgreichen und nicht erfolgreichen Testfälle enthält.
- Entwicklung von Testdaten – Dieser Schritt umfasst die Sammlung von Testdaten. Sie sollte alle erforderlichen Informationen und Felder enthalten. Identifiziert günstige und ungünstige Input/Output-Kombinationen.
- Ausführen von Testfällen – Verwenden Sie die von Ihnen erstellten Testfälle und Testdaten, um Testfälle auszuführen. So können Sie feststellen, ob die Testfälle erfolgreich oder nicht erfolgreich waren.
- Identifizierung von Fehlern/Mängeln – Wenn Fehler oder Mängel auftreten, sollten die Tester diese in dem in Schritt 2 erstellten Testdokument melden.
- Regressionstests – Um gefundene Fehler zu beheben, nehmen die Entwickler Änderungen am Quellcode vor. Daher führen die Tester Regressionstests durch, um sicherzustellen, dass die letzten Änderungen am Quellcode dessen bestehende Funktionalität nicht beeinträchtigen.
- Erneutes Testen – Wenn während der Regressionstests Fehler gefunden werden, meldet das Testteam diese an das Entwicklungsteam. Der Testzyklus wird fortgesetzt, bis die Software in die Produktionsphase übergehen kann.
Vor- und Nachteile von Systemtests
Im Folgenden werden einige wichtige Vor- und Nachteile der Prüfung des Systems aufgeführt:
Vorteile
- Für Systemtests müssen die Tester keine Programmierkenntnisse haben.
- Es überprüft das gesamte Softwareprodukt und deckt Fehler und Schwachstellen auf, die durch Unit- und Integrationstests nicht entdeckt werden können.
- Die Testumgebung ist einer echten Produktionsumgebung ähnlich.
- Gründliche Tests eines Softwareprodukts führen letztlich zu hoher Qualität.
- Verbessert die Gesamtleistung, Wartung und Zuverlässigkeit des Systems.
- Da alle möglichen Fehler und Schwachstellen aufgedeckt werden, sind die Entwicklungs- und Testteams zuversichtlich genug, um die Produkte für die Benutzer freizugeben.
Benachteiligungen
- Das Testen des Systems ist zeitaufwändig.
- Sie erfordert hochqualifizierte Prüfer.
- Bei großen und komplexen Projekten ist dies eine Herausforderung.
- Prüfer haben keinen Einblick in den Quellcode der Software.
- Kein Test wird 100 % der Fehler aufdecken. Selbst wenn beim Systemtest alle Aspekte des Quellcodes überprüft werden, können immer noch Fehler auftreten.
Systemtests vs. Abnahmetests
Die folgende Tabelle verdeutlicht den Unterschied zwischen Systemtests und Abnahmetests:
Systemprüfung | Abnahmetests |
Sie testet das Softwareprodukt als Ganzes und prüft, ob es die funktionalen und nicht-funktionalen Anforderungen erfüllt. | Eine kleine Gruppe echter Benutzer testet das Softwareprodukt, um sicherzustellen, dass es die Anforderungen des Kunden erfüllt. |
Beinhaltet funktionale und nicht-funktionale Tests. | Umfasst nur die Funktionsprüfung. |
Sie findet nach den Integrationstests statt. | Sie findet statt, nachdem das System getestet worden ist. |
Dabei werden von Prüfern erstellte Dummy-Eingaben verwendet. | Verwendet zufällige, von den Benutzern bereitgestellte Eingaben. |
Eventuell festgestellte Fehler können korrigiert werden. | Alle festgestellten Mängel werden als Produktfehler betrachtet. |
Sie konzentriert sich sowohl auf positive als auch auf negative Fälle. | Sie konzentriert sich nur auf positive Fälle. |
Schlussfolgerung
Dabei ging es um Systemtests in der Softwareentwicklung. Dies ist eine wichtige Stufe im Softwaretest, da sie Softwareprodukte auf der Grundlage funktionaler und nichtfunktionaler Anforderungen gründlich testet. Wenn es richtig gemacht wird, verbessert es die Qualität, Leistung, Wartbarkeit und Zuverlässigkeit der Software. Andernfalls können Fehler entdeckt werden, die bei der Inbetriebnahme der Software unentdeckt bleiben.