Kommen wir zu den Grundkonzepten.
Software-Tests sind eine ĂberprĂŒfung der KonformitĂ€t der tatsĂ€chlichen und erwarteten Ergebnisse des Programmverhaltens, die mit einer endlichen Reihe von Tests durchgefĂŒhrt werden, die auf eine bestimmte Weise ausgewĂ€hlt wurden.
Der Zweck des Testens besteht darin, zu ĂŒberprĂŒfen, ob die Software die Anforderungen erfĂŒllt, das Vertrauen in die QualitĂ€t der Software zu gewĂ€hrleisten und nach offensichtlichen Fehlern in der Software zu suchen, die identifiziert werden mĂŒssen, bevor die Benutzer des Programms sie finden.
Warum sind Softwaretests erforderlich?
- Der Testprozess stellt sicher, dass die Software die erforderlichen Leistungen erbringt.
- Dies reduziert die Codierungszyklen, indem Probleme frĂŒh in der Entwicklungsphase erkannt werden. Das frĂŒhzeitige Erkennen von Problemen in der Entwicklungsphase stellt den korrekten Einsatz von Ressourcen sicher und verhindert Kostensteigerungen.
- , .
- , , , .
- 1 â (Testing shows presence of defects). , , , . , , .
- 2 â (Exhaustive testing is impossible). , . , .
- 3 â (Early testing). , , .
- 4 â (Defects clustering). â . . , .
- 5 â (Pesticide paradox). , . « », , , , , .
- 6 â (Testing is concept depending). - . , , , , .
- Prinzip 7 - MissverstĂ€ndnisse ĂŒber das Fehlen von Fehlern (Ende der Fehlerfreiheit Der Irrtum) . Das Fehlen festgestellter MĂ€ngel wĂ€hrend des Tests bedeutet nicht immer, dass das Produkt zur Freigabe bereit ist. Das System sollte benutzerfreundlich sein und die Erwartungen und BedĂŒrfnisse des Benutzers erfĂŒllen.
QualitĂ€tssicherung (QS) und QualitĂ€tskontrolle (QC) - Diese Begriffe Ă€hneln austauschbaren Begriffen, es besteht jedoch immer noch ein Unterschied zwischen QualitĂ€tssicherung und QualitĂ€tskontrolle, obwohl die Prozesse in der Praxis einige Ăhnlichkeiten aufweisen.
QC (QualitÀtskontrolle) - ProduktqualitÀtskontrolle - Analyse der Testergebnisse und QualitÀt neuer Versionen des freigegebenen Produkts.
Zu den Aufgaben der QualitÀtskontrolle gehören:
- ĂberprĂŒfung der Softwarebereitschaft fĂŒr die Freigabe;
- ĂberprĂŒfung der Einhaltung der Anforderungen und der QualitĂ€t dieses Projekts.
QA (QualitĂ€tssicherung) - ProduktqualitĂ€tssicherung - Erkundung von Möglichkeiten zur Ănderung und Verbesserung des Entwicklungsprozesses, Verbesserung der Kommunikation im Team, wobei das Testen nur einer der Aspekte der QualitĂ€tssicherung ist.
Zu den Zielen der QualitÀtssicherung gehören:
- ĂberprĂŒfung der technischen Eigenschaften und Softwareanforderungen;
- RisikoabschÀtzung;
- Planen von Aufgaben zur Verbesserung der ProduktqualitÀt;
- Vorbereitung von Dokumentation, Testumgebung und Daten;
- testen;
- Analyse der Testergebnisse sowie Erstellung von Berichten und anderen Dokumenten.
Verifikation und Validierung sind zwei Konzepte, die eng mit Test- und QualitÀtssicherungsprozessen verbunden sind. Leider sind sie oft verwirrt, obwohl die Unterschiede zwischen ihnen ziemlich bedeutend sind.
Bei der ĂberprĂŒfung wird ein System bewertet, um festzustellen, ob die Ergebnisse der aktuellen Entwicklungsphase die zu Beginn formulierten Bedingungen erfĂŒllen.
Die Validierung ist die Feststellung, ob die entwickelte Software den Erwartungen und BedĂŒrfnissen des Benutzers und seinen Anforderungen an das System entspricht.
: 310, , «», . , , «». , . , , , . «» â , «» â . , .
Die Dokumentation, die fĂŒr Softwareentwicklungsprojekte verwendet wird, kann grob in zwei Gruppen unterteilt werden:
- Projektdokumentation - enthÀlt alles, was mit dem gesamten Projekt zu tun hat.
- Die Produktdokumentation ist Teil der separat zugewiesenen Konstruktionsdokumentation, die sich direkt auf die entwickelte Anwendung oder das entwickelte System bezieht.
Testphasen:
- Produktanalyse
- Mit Anforderungen arbeiten
- Entwicklung einer Teststrategie und Planung von QualitÀtskontrollverfahren
- Erstellung der Testdokumentation
- Prototypentest
- Grundlegende Tests
- Stabilisierung
- Ausbeutung
Softwareentwicklungsphasen - Die Phasen, die Softwareentwicklungsteams durchlaufen, bevor das Programm einer Vielzahl von Benutzern zur VerfĂŒgung steht.
Das Softwareprodukt durchlÀuft die folgenden Phasen:
- Analyse der Projektanforderungen;
- Design;
- Implementierung;
- Produkttest;
- Implementierung und UnterstĂŒtzung.
Bedarf
Anforderungen sind eine Spezifikation (Beschreibung) dessen, was implementiert werden muss.
Die Anforderungen beschreiben, was implementiert werden muss, ohne die technische Seite der Lösung zu beschreiben.
Anforderungen an Anforderungen:
- Korrektheit - Jede Anforderung muss die gewĂŒnschte FunktionalitĂ€t genau beschreiben.
- ĂberprĂŒfbarkeit - Die Anforderung sollte so formuliert sein, dass eindeutig ĂŒberprĂŒft werden kann, ob sie erfĂŒllt ist oder nicht.
- VollstÀndigkeit - Jede Anforderung muss alle erforderlichen Informationen enthalten, die der Entwickler zur Implementierung der FunktionalitÀt benötigt.
- Eindeutig - Die Anforderung wird ohne nicht offensichtliche AbkĂŒrzungen und vage Formulierungen beschrieben und erlaubt nur eine eindeutige Interpretation des Geschriebenen.
- â .
- â ( ). .
- â .
- â .
- â , .
Defekt (Fehler) - Abweichung des tatsÀchlichen Ergebnisses vom erwarteten.
Ein Fehlerbericht ist ein Dokument, das die Situation beschreibt, die zur Entdeckung eines Fehlers gefĂŒhrt hat, und die GrĂŒnde und das erwartete Ergebnis angibt.
Fehlerberichtattribute:
- Eindeutige Kennung (ID) - wird vom System automatisch vergeben.
- Thema (Kurzbeschreibung, Zusammenfassung) - eine kurz formulierte Essenz des Defekts gemÀà der Regel âWas? Wo? Wann?"
- Beschreibung - eine breitere Beschreibung des Wesens des Defekts (optional angegeben).
- Reproduktionsschritte - eine sequentielle Beschreibung der Aktionen, die zur Identifizierung des Fehlers gefĂŒhrt haben. Es ist notwendig, so detailliert wie möglich zu beschreiben und die spezifischen Eingabewerte anzugeben.
- (Actual result) â , , .
- (Expected result) â , , .
- (Attachments) â , -.
- (, Severity) â .
- (, Priority) â .
- (Status) â . - .
- (environment) â , .
Severity vs Priority
Der Schweregrad gibt den Grad des Schadens an, der durch das Vorliegen eines Mangels am Projekt verursacht wurde. Der Schweregrad wird vom Tester angezeigt.
Bewertung des Schweregrads von Fehlern:
- Blocking (S1 - Blocker)
-Tests eines wesentlichen Teils der FunktionalitĂ€t sind ĂŒberhaupt nicht verfĂŒgbar. Ein Blockierungsfehler, der die Anwendung funktionsunfĂ€hig macht, wodurch eine weitere Arbeit mit dem zu testenden System oder seinen SchlĂŒsselfunktionen unmöglich wird. - (S2 â Critical)
, -, , , , - , workaround ( / ), . - (S3 â Major)
- /-, , workaround, - . visibility â , , , . - (S4 â Minor)
GUI, , . , . - Trivial (S5 - Trivial)
fast immer Fehler in der GUI - Tippfehler im Text, NichtĂŒbereinstimmung von Schriftart und Farbton usw. oder ein schlecht reproduzierbarer Fehler, der keine GeschĂ€ftslogik betrifft, ein Problem mit Bibliotheken oder Diensten von Drittanbietern, a Problem, das keinen Einfluss auf die GesamtqualitĂ€t des Produkts hat.
Die PrioritÀt gibt an, wie schnell der Fehler behoben werden soll. Die PrioritÀt wird vom Manager, Teamleiter oder Kunden festgelegt.
FehlerprioritÀtsabstufung (PrioritÀt):
- P1 Hoch Der
Fehler sollte so schnell wie möglich behoben werden. Ihre PrĂ€senz ist fĂŒr das Projekt von entscheidender Bedeutung. - P2 Mittel Der
Fehler muss korrigiert werden, sein Vorhandensein ist nicht kritisch, muss aber behoben werden. - P3 (Low)
, .
:
- (epic) â , .
- (story) â (), 1 .
- (task) â , .
- - (sub-task) â / , .
- (bug) â , .
- (Development Env) â , , , Unit-. .
- (Test Env) â . . , , . .
- (Integration Env) â , . end-to-end , , . , . â , .
- (Preview, Preprod Env) â , : , - , . , «». end-to-end , / (User Acceptance Testing (UAT)), L3 L2 DryRun ( ). L3 .
- (Production Env) â , . L2 , , . L3.
- Pre-Alpha: . . . .
- Alpha: . â . - . . .
- Beta: . , .
- Release Candidate (RC) : Basierend auf dem Beta-Test-Feedback nehmen Sie SoftwareĂ€nderungen vor und möchten Fehlerbehebungen testen. An dieser Stelle möchten Sie keine drastischen Ănderungen an der FunktionalitĂ€t vornehmen, sondern nur nach Fehlern suchen. RC kann auch fĂŒr die Ăffentlichkeit freigegeben werden.
- Release: Alles funktioniert, Software wird fĂŒr die Ăffentlichkeit freigegeben.
Die wichtigsten Arten von Softwaretests
Eine Art von Test ist eine Reihe von AktivitÀten, die darauf abzielen, die festgelegten Eigenschaften eines Systems oder seines Teils basierend auf bestimmten Zielen zu testen.
- Klassifizierung durch AusfĂŒhren von Code zur AusfĂŒhrung:
- â . , . «». â .
- â . , / . â , . , , .
- :
- â , , // .
- â , White Box Black Box . , .
- â , â , .
- :
- â - ( , subprograms, subroutines, ) . , .
- â , ( , ).
- â , , .
- â , - .
- :
- .
- .
-
- â , .
- â , .
- :
- (smoke test) â , , .
- (critical path) â , .
- (extended) â .
- :
- - â . - .
- - â . , .
- :
- (functional testing) â ( ).
- (non-functional testing) â , , , « ».
- (performance testing) â , , .
- (load testing) â , , .
- (scalability testing) â .
- (volume testing) â , .
- (stress testing) â , .
- (installation testing) â , , .
- (GUI/UI testing) â .
- (usability testing) â , .
- (localization testing) â (, ).
- (security testing) â , .
- (reliability testing) â .
- Regressionstests - Testen zuvor getesteter Funktionen nach Ănderungen am Anwendungscode, um sicherzustellen, dass diese Ănderungen keine Fehler in Bereichen hervorrufen, die nicht geĂ€ndert wurden.
- Erneutes Testen / BestĂ€tigungstest - Testen, bei dem Testskripte ausgefĂŒhrt werden, bei denen Fehler wĂ€hrend des letzten Durchlaufs festgestellt wurden, um den Erfolg der Behebung dieser Fehler zu bestĂ€tigen.
Testdesign ist die Phase des Softwaretests, in der TestfÀlle (TestfÀlle) entworfen und erstellt werden.
Testdesign-Techniken:
- (equivalence partitioning) â , , ( ) .
- (boundary value testing) â () .
- (pairwise testing) â , -.
- (State-Transition Testing) â .
- (Decision Table Testing) â , , .
- (Exploratory Testing) â , -: .
- (Domain Analysis Testing) â , .
- (Use Case Testing) â Use Case ( â ).
White-Box- Test ist eine Softwaretestmethode, bei der davon ausgegangen wird, dass die interne Struktur / das GerÀt / die Implementierung des Systems dem Tester bekannt ist.
White-Box-Tests sind laut ISTQB:
- Tests auf der Grundlage einer Analyse der internen Struktur einer Komponente oder eines Systems;
- Testdesign basierend auf der White-Box-Technik - ein Verfahren zum Schreiben oder AuswÀhlen von TestfÀllen basierend auf einer Analyse der internen Struktur eines Systems oder einer Komponente.
Warum White Box? Das fĂŒr den Tester getestete Programm ist eine transparente Box, deren Inhalt er perfekt sieht.
Gray-Box-Test- Softwaretestmethode, die eine Kombination von White-Box- und Black-Box-AnsĂ€tzen voraussetzt. Das heiĂt, wir kennen die interne Struktur des Programms nur teilweise.
Black-Box-Tests - auch als spezifikationsbasierte Tests oder Verhaltenstests bezeichnet - sind Testtechniken, die sich ausschlieĂlich auf die externen Schnittstellen des zu testenden Systems stĂŒtzen.
Laut ISTQB sind Black-Box-Tests:
- sowohl funktionale als auch nicht funktionale Tests, bei denen die interne Struktur einer Komponente oder eines Systems nicht bekannt ist;
- Testdesign basierend auf der Black-Box-Technik - ein Verfahren zum Schreiben oder AuswÀhlen von TestfÀllen basierend auf einer Analyse der funktionalen oder nicht funktionalen Spezifikation einer Komponente oder eines Systems, ohne deren interne Struktur zu kennen.
Testdokumentation
Ein Testplan ist ein Dokument, das den gesamten Testumfang beschreibt, von der Beschreibung der Einrichtung, der Strategie, des Zeitplans, der Kriterien fĂŒr den Beginn und das Ende der Tests bis hin zu den fĂŒr den Betrieb erforderlichen GerĂ€ten, Spezialkenntnissen und der Risikobewertung mit Optionen fĂŒr ihre Auflösung. ...
Der Testplan sollte die folgenden Fragen beantworten:
- Was soll getestet werden?
- Was wirst du testen?
- Wie wirst du testen?
- Wann wirst du testen?
- Teststartkriterien.
- Testbeendigungskriterien.
Die Hauptpunkte des Testplans:
Der IEEE 829-Standard listet die Punkte auf, aus denen der Testplan bestehen sollte:
a) Testplankennung;
b) EinfĂŒhrung;
c) TestgegenstÀnde;
d) zu testende Merkmale;
e) nicht zu testende Merkmale;
f) Ansatz;
g) Pass / Fail-Kriterien fĂŒr Artikel;
h) Suspendierungskriterien und Wiederaufnahmevoraussetzungen;
i) PrĂŒfergebnisse;
j) Testaufgaben;
k) UmweltbedĂŒrfnisse;
l) Verantwortlichkeiten;
m) Personal- und Schulungsbedarf;
n) Zeitplan;
o) Risiken und Eventualverbindlichkeiten;
p) Zulassungen.
Eine Checkliste ist ein Dokument, das beschreibt, was getestet werden soll. Die Checkliste kann völlig unterschiedliche Detaillierungsgrade aufweisen.
Meistens enthÀlt die Checkliste nur Aktionen ohne das erwartete Ergebnis. Die Checkliste ist weniger formalisiert.
Ein Testfall ist ein Artefakt, das eine Reihe von Schritten, spezifischen Bedingungen und Parametern beschreibt, die zum Testen der Implementierung einer zu testenden Funktion oder eines Teils davon erforderlich sind.
Testfallattribute:
- Voraussetzungen - Eine Liste von Aktionen, die das System in einen Zustand bringen, der fĂŒr die DurchfĂŒhrung einer BasisprĂŒfung geeignet ist. Oder eine Liste von Bedingungen, deren ErfĂŒllung anzeigt, dass sich das System in einem Zustand befindet, der fĂŒr die DurchfĂŒhrung des Haupttests geeignet ist.
- Schritte - Eine Liste von Aktionen, mit denen das System von einem Zustand in einen anderen ĂŒbertragen wird, um ein Ergebnis zu erzielen, auf dessen Grundlage geschlossen werden kann, dass die Implementierung die Anforderungen erfĂŒllt.
- Erwartetes Ergebnis - was sie eigentlich bekommen sollten.
Zusammenfassung
Versuchen Sie, die Definitionen zu verstehen, nicht auswendig zu lernen. Und wenn Sie eine Frage haben, können Sie uns jederzeit im @ qa_chillout- Telegrammkanal fragen .