In diesem Tutorial werden die sieben grundlegenden Prinzipien für Softwaretests vorgestellt, die jeder Softwaretester und QS-Experte kennen sollte.
7 Prinzipien des Softwaretests
- Tests zeigen das Vorhandensein von Defekten
- Vollständige Tests sind nicht möglich
- Frühe Tests
- Clustering defekt
- Pestizid paradox
- Das Testen ist kontextabhängig
- Fehlen von Irrtümern
Lassen Sie uns die Testprinzipien anhand des folgenden Videobeispiels lernen:
Klicken Sie hier, wenn das Video nicht zugänglich ist
Hintergrund
Es ist wichtig, dass Sie beim Durchführen von Softwaretests optimale Testergebnisse erzielen, ohne vom Ziel abzuweichen. Aber wie stellen Sie fest, dass Sie die richtige Teststrategie verfolgen? Dazu müssen Sie sich an einige grundlegende Testprinzipien halten. Hier sind die sieben gängigen Testprinzipien, die in der Softwareindustrie weit verbreitet sind.
Um dies zu verstehen, stellen Sie sich ein Szenario vor, in dem Sie eine Datei von Ordner A nach Ordner B verschieben.
Überlegen Sie sich alle Möglichkeiten, wie Sie dies testen können.
Neben den üblichen Szenarien können Sie auch die folgenden Bedingungen testen
- Es wird versucht, die Datei zu verschieben, wenn sie geöffnet ist
- Sie haben nicht die Sicherheitsrechte, um die Datei in Ordner B einzufügen
- Ordner B befindet sich auf einem gemeinsam genutzten Laufwerk und die Speicherkapazität ist voll.
- Ordner B hat bereits eine Datei mit demselben Namen, tatsächlich ist die Liste endlos
- Oder nehmen Sie an, Sie müssen 15 Eingabefelder mit jeweils 5 möglichen Werten testen. Die Anzahl der zu testenden Kombinationen beträgt 5 15
Wenn Sie das gesamte mögliche Kombinationsprojekt testen würden, würden EXECUTION TIME & COSTS exponentiell ansteigen. Wir brauchen bestimmte Prinzipien und Strategien, um den Testaufwand zu optimieren
Hier sind die 7 Prinzipien:
1) Vollständige Tests sind nicht möglich
Ja! Vollständige Tests sind nicht möglich. Stattdessen benötigen wir die optimale Menge an Tests, die auf der Risikobewertung der Anwendung basieren.
Und die Millionen-Dollar-Frage lautet: Wie bestimmen Sie dieses Risiko?
Um dies zu beantworten, machen wir eine Übung
Welcher Vorgang führt Ihrer Meinung nach am wahrscheinlichsten zum Ausfall Ihres Betriebssystems?
Ich bin sicher, die meisten von Ihnen hätten geraten, 10 verschiedene Anwendungen gleichzeitig zu öffnen.
Wenn Sie dieses Betriebssystem testen, werden Sie feststellen, dass Fehler wahrscheinlich in Multitasking-Aktivitäten auftreten und gründlich getestet werden müssen, was uns zu unserem nächsten Prinzip des Fehlerclusters führt
2) Fehlerclustering
Fehlerclustering, das besagt, dass eine kleine Anzahl von Modulen die meisten erkannten Fehler enthält. Dies ist die Anwendung des Pareto-Prinzips auf Softwaretests: Ungefähr 80% der Probleme treten in 20% der Module auf.
Aus Erfahrung können Sie solche riskanten Module identifizieren. Dieser Ansatz hat jedoch seine eigenen Probleme
Wenn dieselben Tests immer wieder wiederholt werden, werden dieselben Testfälle möglicherweise keine neuen Fehler mehr finden.
3) Pestizid-Paradoxon
Die wiederholte Verwendung derselben Pestizidmischung zur Ausrottung von Insekten während der Landwirtschaft führt im Laufe der Zeit dazu, dass die Insekten eine Resistenz gegen das Pestizid entwickeln, wodurch Pestizide bei Insekten unwirksam werden. Gleiches gilt für Softwaretests. Wenn die gleichen sich wiederholenden Tests durchgeführt werden, ist die Methode für die Entdeckung neuer Fehler unbrauchbar.
Um dies zu überwinden, müssen die Testfälle regelmäßig überprüft und überarbeitet werden, wobei neue und andere Testfälle hinzugefügt werden müssen, um mehr Fehler zu finden.
Tester können sich nicht einfach auf vorhandene Testtechniken verlassen. Er muss ständig darauf achten, die vorhandenen Methoden zu verbessern, um das Testen effektiver zu gestalten. Aber selbst nach all dem Schweiß und der harten Arbeit beim Testen können Sie niemals behaupten, dass Ihr Produkt fehlerfrei ist. Um diesen Punkt nach Hause zu fahren, sehen wir uns dieses Video des öffentlichen Starts von Windows 98 an
Sie denken, ein Unternehmen wie MICROSOFT hätte sein Betriebssystem nicht gründlich getestet und würde seinen Ruf riskieren, nur um zu sehen, wie sein Betriebssystem beim öffentlichen Start abstürzt!
4) Tests zeigen das Vorhandensein von Defekten
Das Testprinzip besagt daher, dass - das Testen über das Vorhandensein von Fehlern und nicht über das Fehlen von Fehlern spricht. Das heißt, Softwaretests verringern die Wahrscheinlichkeit, dass unentdeckte Fehler in der Software verbleiben. Selbst wenn keine Fehler gefunden werden, ist dies kein Beweis für die Richtigkeit.
Aber was ist, wenn Sie besonders hart arbeiten, alle Vorsichtsmaßnahmen treffen und Ihr Softwareprodukt zu 99% fehlerfrei machen? Und die Software erfüllt nicht die Bedürfnisse und Anforderungen der Kunden.
Dies führt uns zu unserem nächsten Prinzip, das besagt, dass keine Fehler vorliegen
5) Fehlen von Fehlern - Irrtum
Es ist möglich, dass Software, die zu 99% fehlerfrei ist, immer noch unbrauchbar ist. Dies kann der Fall sein, wenn das System gründlich auf die falsche Anforderung getestet wird. Softwaretests sind nicht nur das Auffinden von Fehlern, sondern auch das Überprüfen, ob die Software den geschäftlichen Anforderungen entspricht. Das Fehlen eines Fehlers ist ein Irrtum, dh das Auffinden und Beheben von Fehlern hilft nicht, wenn der Systemaufbau unbrauchbar ist und die Anforderungen und Anforderungen des Benutzers nicht erfüllt.
Um dieses Problem zu lösen, heißt es im nächsten Testprinzip: Frühes Testen
6) Frühes Testen
Frühes Testen - Das Testen sollte so früh wie möglich im Lebenszyklus der Softwareentwicklung beginnen. Damit werden etwaige Mängel in der Anforderungs- oder Entwurfsphase frühzeitig erfasst. Es ist viel billiger, einen Fehler in den frühen Testphasen zu beheben. Aber wie früh sollte man mit dem Testen beginnen? Es wird empfohlen, dass Sie den Fehler in dem Moment suchen, in dem die Anforderungen definiert sind. Mehr zu diesem Prinzip in einem späteren Training.
7) Das Testen ist kontextabhängig
Das Testen ist kontextabhängig, was im Grunde bedeutet, dass sich die Art und Weise, wie Sie eine E-Commerce-Website testen, von der Art und Weise unterscheidet, wie Sie eine kommerzielle Standardanwendung testen. Alle entwickelten Softwareprodukte sind nicht identisch. Je nach Anwendungstyp können Sie unterschiedliche Ansätze, Methoden, Techniken und Testtypen verwenden. Zum Beispiel unterscheidet sich jedes POS-System in einem Einzelhandelsgeschäft vom Testen eines Geldautomaten.
Mythos: "Prinzipien dienen nur als Referenz. Ich werde sie in der Praxis nicht anwenden."
Das ist so sehr falsch. Mithilfe von Testprinzipien können Sie eine effektive Teststrategie erstellen und Fehlerfall-Testfälle entwerfen.
Das Erlernen von Testprinzipien ist jedoch wie das erstmalige Erlernen des Fahrens.
Während Sie das Fahren lernen, achten Sie zunächst auf alles wie Schaltvorgänge, Geschwindigkeit, Kupplungshandling usw. Mit der Erfahrung konzentrieren Sie sich jedoch nur auf das Fahren. Der Rest ist selbstverständlich. So dass Sie sogar Gespräche mit anderen Passagieren im Auto führen.
Gleiches gilt für Testprinzipien. Erfahrene Tester haben diese Prinzipien so verinnerlicht, dass sie sie auch ohne nachzudenken anwenden. Daher ist der Mythos, dass die Prinzipien in der Praxis nicht angewendet werden, einfach nicht wahr.