Kombinatorische Prüfung
Feb 24, 2020
Einleitung:
Softwaresysteme sind heutzutage vielfältig und komplex und haben viele Konfigurationsmöglichkeiten. Diese Qualitäten und Merkmale in den Softwaresystemen haben eine Nachfrage nach Software und Anwendungen ausgelöst, die einzigartig gestaltet sind und innovative sowie kreative Funktionen aufweisen. Abgesehen davon verlangen die Kunden und Benutzer auch exponentielle Leistung, Funktionalität, Qualität, Skalierbarkeit, Effektivität und mehr. Um diese Ziele zu erreichen und die Anforderungen der Kunden und Verbraucher zu erfüllen, verwenden Softwareingenieure verschiedene innovative Techniken und Methoden, um ein Produkt zu entwickeln und strenge Tests durchzuführen, da Produkte, die mit unzureichenden Tests veröffentlicht wurden, irreparable Schäden und Verluste verursachen können der Kunde sowie der Benutzer, der die Anwendung installiert oder die Software verwendet. Darüber hinaus kann es auch zu Körperverletzungen kommen, die zu großen wirtschaftlichen Verlusten oder Sicherheitsverletzungen führen und die Qualität des täglichen Lebens beeinträchtigen können. Softwaretester haben jedoch oft nur begrenzte Zeit und ein begrenztes Budget, was es häufig unmöglich macht, Software umfassend zu testen. Darüber hinaus testen Tester oft intuitiv auf Mängel, die sie antizipieren, während weniger vorhersehbare Mängel übersehen und nicht getestet werden. Der beste Weg, eine solche Situation zu überwinden, besteht darin, kombinatorische Tests in Software und Anwendungen zu implementieren. Kombinatorisches Testen ist ein Ansatz, der Systemeinstellungen in einer überschaubaren Anzahl von Tests systematisch untersuchen und t-Wege-Interaktionen systematisch abdecken kann. Daher finden Sie hier eine ausführliche Diskussion über kombinatorische Tests, um deren Bedeutung, Methoden und andere wichtige Eigenschaften zu definieren.
Beschreibung kombinatorischer Tests:
Kombinatorische Tests sind jetzt ein praktischer Ansatz, der qualitativ hochwertige Tests zu geringeren Kosten ermöglicht. Es zerlegt Brute-Force in Schritte, um das Problem schrittweise anzugreifen, indem Analyse- und Syntheseaktivitäten getrennt werden, die quantifiziert und überwacht und teilweise durch Tools unterstützt werden können. Darüber hinaus ist das kombinatorische Testen äußerst einfach anzuwenden. Als spezifikationsbasierte Technik erfordert es keine Kenntnisse über die zu testende Implementierung. Kombinatorisches Testen basiert auf der Prämisse, dass viele Fehler in Software nur durch das Zusammenspiel von zwei oder mehr Parametern entstehen können. Daher ist das kombinatorische Testen eine effektive Technik zum Testen von Software mit mehreren Konfigurationsparametern. Es wird hauptsächlich verwendet, um Interaktionsfehler zu erkennen, die durch die Kombination von Parametern verursacht werden. Die Art des Tests, der durch kombinatorische Tests erzeugt wird, zielt darauf ab, eine Abdeckung zu erzeugen, die alle t-Way-Parameterkombinationen abdeckt, wobei ‘t’ eine gegebene Deckkraft ist. Grundlegende kombinatorische Tests können auf zwei Arten verwendet werden, die entweder separat oder gleichzeitig verwendet werden können. Diese Wege sind:
- Kombinationen von Konfigurationswerten oder -parametern, bei denen die abdeckenden Arrays zur Auswahl der Werte konfigurierbarer Parameter verwendet werden, möglicherweise mit Hilfe derselben Tests, die gegen alle Konfigurationskombinationen ausgeführt werden.
- Covering Arrays werden verwendet, um Eingabedatenwerte auszuwählen, die dann Teil vollständiger Testfälle werden und einen Testanzug für die Anwendung erstellen. Die Anwendung dieser Form des kombinatorischen Testens auf die reale Software ist eine Herausforderung, da sie einen höheren Grad an Interaktionen aufweist, für die sehr große Tests erforderlich sein können.
Methoden zur Erzeugung kombinatorischer Testanzüge:
Die Popularität kombinatorischer Tests hat in den letzten Jahren stark zugenommen. Aufgrund seiner zahlreichen Vorteile wird es von Softwaretestern auf verschiedenen Testebenen eingesetzt. Von Modell-, Einheiten-, Integrations-, System- und Akzeptanztests bis hin zu Schwarz-Weiß-, modellbasierten Tests und mehr implementieren Tester kombinatorische Tests, um effektive Ergebnisse zu einem kostengünstigen Preis zu erzielen. Um Testanzüge für kombinatorische Tests zu generieren, verwenden Softwareingenieure außerdem eine Vielzahl von Tools, was den Testprozess von Software noch weiter vereinfacht. Diese kombinatorischen Testanzüge bieten eine höhere T-Weg-Abdeckung, obwohl das Erzeugen von Arrays mit höherer T-Weg-Abdeckung erhebliche Rechenressourcen verbrauchen und große Ergebnisse liefern kann. Darüber hinaus konzentriert sich die Mehrheit der Algorithmen für kombinatorische Tests auf den Spezialfall des 2-Wege-Tests. Um Testverfahren für kombinatorische Tests manuell zu konstruieren, werden drei Methoden verwendet. Diese Methoden bieten dem Tester verschiedene Vorteile und stellen sicher, dass die Ausgabe so genau wie möglich ist. Diese Methoden / Algorithmen sind:
- Algebraische Methode: Dies bietet effiziente Konstruktionen in Bezug auf die Zeit, es ist jedoch schwierig, genaue Ergebnisse für eine breite und allgemeine Vielzahl von Eingaben zu erzielen.
- Gieriger Algorithmus: Dies sind die gut untersuchten Arten von Algorithmen für den Aufbau von Covering-Arrays, da sie in Bezug auf Zeit und Genauigkeit als relativ effizient befunden wurden.
- Heuristische Suche: Heuristische Suche, insbesondere wenn die Anwendung des stimulierten Glühens (SA) in mehreren Fällen die genauesten Ergebnisse erbracht hat. Diese lokale Suchmethode hat viele der kleinsten Testsuiten für verschiedene Systemkonfigurationen bereitgestellt; jedoch auf Kosten der Ausführungszeit, um Testsuiten zu generieren.
Paarweises Testen:
Allgemein bekannt als All-Pair-Test, ist das paarweise Testen eine kombinatorische Methode zum Testen von Software, die für jedes Paar von Eingabeparametern in einem System alle möglichen diskreten Kombinationen dieser Parameter testet. Es ist eine Test-Design-Technik, die hundert Prozent Testabdeckung liefert. Die häufigsten Fehler in einem Programm werden normalerweise entweder durch einen Eingabeparameter oder durch eine Interaktion zwischen Parameterpaaren gefunden und ausgelöst. Fehler, die Interaktionen zwischen drei oder mehr Parametern beinhalten, sind sowohl zunehmend seltener als auch zunehmend teurer zu finden. In diesem Fall ist eine kombinatorische Technik zur Auswahl von Testfällen wie all Pair ein sehr nützlicher Kosten-Nutzen-Kompromiss, der eine signifikante Reduzierung der Anzahl von Testfällen ermöglicht, ohne die funktionale Abdeckung drastisch zu beeinträchtigen. Daher ist die paarweise Testtechnik immens nützlich beim Entwerfen von Tests für Anwendungen mit mehreren Parametern. Sein Testanzug deckt alle Kombinationen ab und ist daher nicht erschöpfend, aber sehr effektiv bei der Suche nach Fehlern. Obwohl paarweises Testen Kombinationen drastisch reduzieren kann, bleibt es immer noch sehr effektiv in Bezug auf die Fehlererkennung und ist in der Tat eine intelligente Testdesigntechnik, die besten Testaufwand und außergewöhnliche Effektivität verspricht.
Vorteile kombinatorischer Tests:
Die obige Diskussion über kombinatorische Tests spiegelt sowohl ihre Bedeutung als auch ihre Nützlichkeit wider. Es ist eine der effektivsten Softwaretesttechniken, da es eine Software mit mehreren konfigurierbaren Parametern testet. Darüber hinaus kann man mit Hilfe der kombinatorischen Prüfung leicht Wechselwirkungsfehler erkennen, die durch die Kombination von Parametern verursacht werden. Ein weiterer Vorteil dieser Art von Tests besteht darin, dass qualitativ hochwertige Tests zu einem sehr kostengünstigen Preis durchgeführt werden, was nicht nur Softwareentwicklern und Testern hilft, sondern auch der Organisation zugute kommt, für die das Produkt entwickelt wird. Daher sind andere Vorteile dieses Ansatzes:
- Behandelt Abdeckungsbedenken bei der Definition des Testplans.
- Ermöglicht eine systematische Testplanung.
- Kann praktisch auf jede Software und auf verschiedenen Abstraktionsebenen angewendet werden.
- Höhere Testabdeckung bei besserer Qualitätssicherung.
- Erfordert keinen Zugriff auf den internen Quellcode SUT.
- Es maximiert den Wert jedes getesteten Szenarios.
- Signifikante Reduzierung der Anzahl der Tests.
- Es kann Risiken kontrollieren und ist leicht zu überprüfen.
Fazit:
Softwaresysteme sind komplex und können eine exponentielle Anzahl möglicher Tests erfordern. Jedes Produkt, das ohne ordnungsgemäße Tests freigegeben wird, kann sowohl für die Organisation als auch für den Benutzer eine erhebliche Gefahr darstellen. Um sicherzustellen, dass nach der Veröffentlichung der Software keine solche Situation oder ein solches Problem auftritt, führen Softwaretester daher strenge Tests durch. Darüber hinaus verwenden sie häufig kombinatorische Tests in verschiedenen Teststufen, da sie Software mit mehreren konfigurierbaren Parametern problemlos testen können. Kurz gesagt, kombinatorische Tests werden verwendet, um Interaktionsfehler zu erkennen, die durch die Kombination von Parametern verursacht werden. Die wichtigsten Erkenntnisse, die der Wirksamkeit kombinatorischer Tests zugrunde liegen, stammen aus einer Reihe von Studien und Untersuchungen, die das NIST von 1999 bis 2004 durchgeführt hat. Es ist ein immens nützlicher Ansatz, der die Systemeinstellung systematisch in einer überschaubaren Anzahl von Tests untersuchen kann. Es ist ein Ansatz, der qualitativ hochwertige Tests zu einem sehr kostengünstigen Preis produziert und ausführt. Darüber hinaus ist es eine effektive Testplanungstechnik, die Abdeckungsbedenken so früh wie möglich behandeln kann. Wenn ein Softwareentwickler also die besten Testergebnisse erzielen möchte, sollte er auf jeden Fall kombinatorische Tests in einem frühen Stadium des Softwareentwicklungslebenszyklus (SDLC) durchführen.