test coverage software testing
Software Testing Test Coverage Vollständiger Leitfaden: So testen Sie mehr, sparen Zeit und erzielen bessere Testergebnisse:
Softwaretests sind eine wesentliche Aktivität in den Lebenszyklen der Softwareentwicklung und -wartung. Diese Praxis wird häufig verwendet, um die Softwarequalität zu bestimmen und zu verbessern.
Die Entwicklung ist heutzutage systematischer und Organisationen suchen nach Maßnahmen zur Prüfung der Vollständigkeit und Wirksamkeit der Tests, um die Kriterien für den Abschluss der Tests aufzuzeigen. Von allen wird die Berichterstattung als besonders wertvoll angesehen.
Was du lernen wirst:
- Was ist Testabdeckung?
- Testabdeckung und Code-Abdeckung
- Meine Erfahrung
- Testabdeckungsbedeutung
- Wie wende ich eine geeignete Testabdeckungsmethode an?
- Wie kann sichergestellt werden, dass alles getestet wird?
- Kritische Bereiche und Methoden für effektive Tests
- Vorteile des Testens des Abdeckungsbewusstseins für einen Tester:
- Fazit
- Literatur-Empfehlungen
Was ist Testabdeckung?
Einfach ausgedrückt lautet die Berichterstattung: 'Was testen wir und wie viel testen wir?'
Die Testabdeckung hilft bei der Überwachung der Testqualität und hilft den Testern, Tests zu erstellen, die Bereiche abdecken, die fehlen oder nicht validiert sind.
Die meisten Teams stützen ihre Deckungsberechnungen ausschließlich auf funktionale Anforderungen. Es ist auch fair, weil in erster Linie eine Anwendung das tun sollte, was sie tun soll. Wenn nicht, ist seine Geschwindigkeit oder Sicherheit oder Benutzerfreundlichkeit - nichts davon ist von Bedeutung.
Wenn jedoch engagiert und unabhängig nicht funktionale Prüfung Die Teams arbeiten an Leistung, Sicherheit, Usability-Tests usw. und müssen dann ihre Anforderungen bis zur Ausführung durch Testabdeckungsanalysen verfolgen.
Testabdeckung und Code-Abdeckung
Die Testabdeckung wird häufig mit der Codeabdeckung verwechselt. Obwohl die zugrunde liegenden Prinzipien dieselben sind, handelt es sich um zwei verschiedene Dinge.
Code-Abdeckung spricht wirklich über Unit-Test-Praktiken, die mindestens einmal auf alle Bereiche des Codes abzielen müssen und von Entwicklern durchgeführt werden.
Testabdeckung ist dagegen Testen jeder Anforderung mindestens einmal und ist offensichtlich eine QA-Teamaktivität.
Was sich wirklich als gedeckte Anforderung qualifiziert, hängt von der Interpretation jedes Teams ab.
Zum Beispiel Einige Teams nennen eine Anforderung abgedeckt, wenn mindestens ein Testfall dagegen vorliegt. Manchmal ist es abgedeckt, wenn mindestens ein Teammitglied zugewiesen ist. Oder wenn alle damit verbundenen Testfälle ausgeführt werden.
- Wenn 10 Anforderungen und 100 Tests erstellt wurden - wenn diese 100 Tests alle 10 Anforderungen erfüllen und keine auslassen - nennen wir dies eine angemessene Testabdeckung auf Entwurfsebene.
- Wenn nur 80 der erstellten Tests ausgeführt werden und nur 6 der Anforderungen ansprechen. Wir sagen, dass 4 Anforderungen nicht abgedeckt sind, obwohl 80% der Tests durchgeführt werden. Dies sind Abdeckungsstatistiken auf Ausführungsebene.
- Wenn nur 90 Tests, die sich auf 8 Anforderungen beziehen, Tester zugewiesen haben und der Rest nicht, sagen wir, dass die Testzuweisungsabdeckung 80% beträgt (8 von 10 Anforderungen).
Es ist auch wichtig, wann die Abdeckung berechnet werden muss.
Wenn Sie dies zu früh tun, werden Sie viele Lücken sehen, da die Dinge noch unvollständig sind. Daher wird generell empfohlen Warten Sie bis zum letzten Build d.h. Final Regression Build. Dies gibt eine korrekte Abdeckung der Tests, die für die gegebenen Anforderungen durchgeführt wurden.
Lesen Sie auch => Release- und Bereitstellungsverwaltungsprozess
Meine Erfahrung
Szene vor 8 Jahren: Als ich 2 Jahre Erfahrung in der Software-Testbranche hatte, dachte ich, dass es in Ordnung ist, wenn ich einige Grundlagen über Software-Tests nicht kenne, da man sie mit Erfahrung lernen kann und ich es auch tun werde.
Ich hatte Recht - und auch Unrecht.
Richtig, weil Sie mit der Erfahrung lernen, ein größeres Bild zu sehen, die wahre Bedeutung von „Kritische Situation“ verstehen und den Endbenutzer besser verstehen.
Falsch, weil keines der genannten Dinge Erfahrung erfordert, sondern frühes Lernen, das ich sehr spät verstanden habe. Das ist der ermutigende Faktor, diesen Beitrag zu schreiben.
Hier ist meine Erfahrung aus einem der damaligen Interviews:
Wie stellen Sie sicher, dass die Testabdeckung vollständig oder maximal ist? Ich wurde gefragt.
Ummmm ... Ich stelle sicher, dass ich jede Funktionalität teste , Ich sagte.
S. o Sie sagen, dass Sie nach dem Testen aller Funktionen das Gefühl haben, ein Maximum an Anwendung / Produkt in Bezug auf das Testen abgedeckt zu haben , der Interviewer ging nach hinten los.
Ähm ... na ja ... ähm ... ja, denn wenn Sie alle Funktionen testen, sind Sie sicher, dass sich die Anwendung / das Produkt verhält. Ich habe meine Antwort unterstützt .
Ich stimme zu, aber meine Frage lautet: Gibt es Ihnen das Vertrauen, dass Ihre Testabdeckung maximal oder vollständig ist? Der Interviewer war nicht in der Stimmung, mich gehen zu lassen.
Jetzt wurde ich ungeduldig und wusste nicht, dass ich eines der wichtigsten Themen zum Testen von Software lernen würde - '' Testabdeckung' .
Anstatt die Auszüge des Interviews zu reproduzieren, fasse ich hier zusammen, was ich an diesem Tag über das Testen der Berichterstattung gelernt habe. Aber lassen Sie uns vorher in einem Punkt klar sein: Das Testen der Abdeckung bedeutet nie, zu wissen, ob Sie genug testen oder nicht, und es bedeutet auch nicht, dass Sie perfekt testen oder nicht.
Testabdeckungsbedeutung
Das Testen der Abdeckung kann in unterschiedlichen Kontexten eine unterschiedliche Bedeutung haben. Lassen Sie uns diese Kontexte einzeln entdecken:
Produktabdeckung - Welche Aspekte des Produkts haben Sie betrachtet?
Ja, wenn die Testabdeckung in Bezug auf das Produkt gemessen wird, ist der Hauptbereich, auf den Sie sich konzentrieren sollten: Welche Produktbereiche haben Sie getestet und welche bleiben ungetestet?
Beispiel 1:
Wenn „Messer“ ein Produkt ist, testen Sie; Konzentrieren Sie sich nur nicht darauf, zu prüfen, ob das Gemüse / Obst richtig geschnitten wird. Es gibt andere Aspekte, nach denen gesucht werden muss, z. B. - der Benutzer sollte in der Lage sein, bequem damit umzugehen.
Beispiel 2:
Wenn „Notepad“ eine Anwendung ist, die Sie testen, ist es ein Muss, relevante Funktionen zu überprüfen.
Andere Aspekte, die berücksichtigt werden müssen, sind: Die Anwendung reagiert ordnungsgemäß, während andere Anwendungen gleichzeitig verwendet werden. Die Anwendung stürzt nicht ab wenn der Benutzer versucht, etwas Ungewöhnliches zu tun Wenn dem Benutzer die richtigen Warn- / Fehlermeldungen zur Verfügung gestellt werden, kann er die Anwendung leicht verstehen und verwenden. Hilfeinhalte sind bei Bedarf verfügbar.
Wenn Sie sich die genannten Szenarien nicht ansehen, können Sie nicht behaupten, dass die Testabdeckung für die Anwendung vollständig ist.
Risikodeckung - Auf welche Risiken haben Sie getestet?
Die Risikodeckung ist ein weiterer Aspekt für eine vollständige Testdeckung. Sie können das Produkt oder die Anwendung erst dann als 'getestet' kennzeichnen, wenn Sie auch die damit verbundenen Risiken testen. Die Abdeckung der damit verbundenen Risiken ist ein wichtiger Faktor für die Gesamtabdeckung der Tests.
Beispiel 1:
Wenn Ihnen ein Tester beim Testen eines Flugzeugs mitteilt, dass er das interne System des Flugzeugs vollständig getestet hat und es einwandfrei funktioniert, aber nur die Flugfähigkeit des Flugzeugs beim Testen nicht abgedeckt wurde - wie würden Sie reagieren?
Genau das bedeutet Risikodeckung. Es ist immer eine gute Praxis, das Risiko gemäß der Anwendung / dem Produkt zu identifizieren und es gründlich zu testen.
Beispiel 2:
Beim Testen einer E-Commerce-Website berücksichtigte der Tester jeden wirksamen Faktor, berücksichtigte jedoch nicht das Risiko, dass eine Anzahl von Benutzern gleichzeitig und am Super OFFER-Tag auf die Website zugreift. Das nicht berücksichtigte Risiko erwies sich als großer Fehler.
Literatur-Empfehlungen =>
ios Interview Fragen und Antworten für erfahrene PDF
Anforderungsabdeckung - Auf welche Anforderungen haben Sie getestet?
Wenn ein Produkt oder eine Anwendung sehr gut entwickelt ist, aber nicht den Kundenanforderungen entspricht, nützt es nichts. Die Anforderungsabdeckung beim Testen ist ebenso wichtig wie die Produktabdeckung.
Beispiel 1:
Aufgeregt für die Familienfeier baten Sie den Schneider, Ihr Kleid zu nähen und die pfauenblauen Showknöpfe am Ausschnitt anzuziehen.
Während des Nähens des Kleides dachte der Schneider, dass das Anbringen dieser Knöpfe am Ausschnitt nicht gut aussehen würde, also nähte er stattdessen einen goldfarbenen Rand. Am Verhandlungstag rief der unglückliche Kunde dem Schneider definitiv zu, er habe sich nicht an die Anforderungen gehalten.
Beispiel 2:
Beim Testen einer Chat-Anwendung kümmerte sich der Tester um alle wichtigen Punkte wie das Chatten mehrerer Benutzer in einer Gruppe, das unabhängige Chatten zweier Benutzer, alle verfügbaren Emoticons, Aktualisierungen, die sofort an den Benutzer gesendet wurden usw. Er vergaß jedoch, das Anforderungsdokument zu lesen, was eindeutig war erwähnt, dass, wenn zwei Benutzer unabhängig voneinander chatten, die Videoanrufoption aktiviert sein sollte.
Der Client vermarktete die Chat-Anwendung und behauptete, sie würde das Telefonieren erlauben, während zwei Benutzer unabhängig voneinander chatten. Sie können sich vorstellen, was mit der Chat-Anwendung passiert wäre.
Ebenfalls lesen => So erstellen Sie eine Anforderungsrückverfolgbarkeitsmatrix
Wie wende ich eine geeignete Testabdeckungsmethode an?
Bewusstsein ist alles:
Das Wichtigste zuerst: Das QS-Team muss wissen, wie viel Arbeit erforderlich ist und wo sich die Entwurfsaufgaben befinden. Auf diese Weise werden sie wissen, ob weitere Tests hinzugefügt werden sollen. Zu diesem Zweck können Sie wie üblich ein RTM verwenden.
=> Lesen Sie diesen Artikel, um mehr darüber und seine Verwendung zu erfahren: Erstellen einer Anforderungsrückverfolgbarkeitsmatrix - Exakter Prozess mit Beispielvorlage
Überprüfen Sie zweitens die Ressourcenzuweisung und Testausführungsprozess um zu sehen, ob alles effektiver getestet wird.
Eine Tabelle wie die folgende kann hilfreich sein:
Testtyp | Fälle insgesamt | Ausgeführte Fälle | Status | Bemerkungen |
---|---|---|---|---|
Funktionell | 100 | 80 | 50 bestanden, 30 nicht bestanden | |
Kompatibilität | 100 | fünfzig | 45 bestanden, 5 nicht bestanden | |
Benutzerfreundlichkeit | 100 | 100 | 98 bestanden, 2 nicht bestanden | |
Endgültige Regression | 100 | 100 | 99 bestanden, 1 nicht bestanden |
Wie kann sichergestellt werden, dass alles getestet wird?
- Jeder Tester sollte die Anforderungen und Testmethoden kennen
- Priorisieren Sie Ihre Anforderungen und konzentrieren Sie Ihre Energie dort, wo sie am dringendsten benötigt wird
- Informieren Sie sich darüber, wie sich eine bestimmte Version von der vorherigen unterscheidet, damit Sie kritische Anforderungen genauer identifizieren und sich auf eine maximale positive Abdeckung konzentrieren können
- Testautomatisierung anpassen
- Verwenden Sie Testmanagement-Tools immer auf dem Laufenden bleiben
- Intelligente Arbeitsaufgabe - Kanalisieren Sie Ihre besten Ressourcen für kritische Aufgaben und lassen Sie neue Tester mehr für eine neue Perspektive entdecken
- Aufrechterhaltung eines Checkliste für alle Aufgaben und verschiedene Aktivitäten
- Interagieren Sie mehr mit Ihren Dev / Scrum / BA-Teams, um Einblicke in das Anwendungsverhalten zu erhalten
- Behalten Sie alle Ihre Build-Zyklen und Korrekturen im Auge
- Identifizieren Sie die wichtigsten Probleme in den ersten Builds selbst (wenn möglich), damit die späteren für eine bessere Stabilität sorgen und die Bereiche erreichen können, die durch frühere Probleme blockiert wurden
Kritische Bereiche und Methoden für effektive Tests
# 1)Ressourcen-Durcheinander: Tauschen Sie Aufgaben zwischen Ihren Teammitgliedern aus. Dies hilft, das Engagement zu verbessern und Wissenskonzentration zu verhindern.
#zwei)Kompatibilitätsabdeckung: Stellen Sie sicher, dass Sie sich bewusst sind und die verschiedene Browser und Plattformen um Ihre Anwendung zu testen.
#3)Eigentum: Machen Sie Tester zur Rechenschaft und geben Sie ihnen (natürlich mit Überwachung und Unterstützung) freie Hand für das Modul / die Aufgabe, an der sie arbeiten. Dies hilft beim Aufbau von Verantwortung und ermöglicht es ihnen, kreative Wege zu gehen, anstatt den geschlagenen Straßen zu folgen.
# 4)Fristen: Die Kenntnis der Freigabefristen vor Beginn der Testphase hilft bei der effektiven Planung
# 5)Kommunikation :: Bleiben Sie in Kontakt mit dem Entwickler und anderen Teams zwischen den Veröffentlichungszyklen, um zu wissen, was los ist.
# 6)RTM pflegen: Wirkt als gutes Derivat zum Stakeholder oder Kunden , basierend auf denen der Release-Zeitplan bestätigt werden kann
Vorteile des Testens des Abdeckungsbewusstseins für einen Tester:
- Es hilft in erster Linie beim Testen der Priorisierung von Aufgaben
- Es hilft dabei, eine 100% ige Anforderungsabdeckung zu erreichen, oder verhindert mit anderen Worten, dass Anforderungen verloren gehen
- Wirkungsanalyse wird einfacher
- Nützlich bei der Bestimmung der Abbruchkriterium
- Ermöglicht eine Testleitung zur Vorbereitung eines Clear Testabschlussbericht
Fazit
Die Testabdeckung endet nicht mit den genannten Kontexten. Es gibt viele andere Punkte, die beim Testen der Abdeckung berücksichtigt werden sollten.
Es ist nicht immer wahr, dass die Ergebnisse besser sind, wenn Sie mehr testen. Wenn Sie mehr ohne offensichtliche Strategie testen, werden Sie wahrscheinlich viel Zeit investieren.
Mit einem strukturierteren Ansatz, dem Ziel einer 100% igen Anforderungsabdeckung und effektiven Testmethoden gehen Sie keine Kompromisse bei der Qualität ein.
Wir hoffen, dass die in diesem Artikel beschriebenen Techniken Ihnen einige Hinweise geben.
Geben Sie Ihre Kommentare und Ansichten zum Beitrag ein. Wie immer freuen wir uns, von Ihnen zu hören.
Literatur-Empfehlungen
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- Software Testing QA Assistant Job
- Softwaretestkurs: An welchem Softwaretestinstitut soll ich teilnehmen?
- Wählen Sie Software-Tests als Ihre Karriere
- Software Testing Technical Content Writer Freiberufler Job
- Ist das Testen von Software eine emotionale Aufgabe?
- Einige interessante Fragen zu Softwaretests
- Feedback und Bewertungen zum Softwaretestkurs