ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 18.04.2021

Просмотров: 1793

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Certified Tester 

Foundation Level Syllabus 
(Deutschsprachige Ausgabe) 
 

Version 2011  

Seite 21/84 

1.8.2011 

© International Software Testing Qualifications Board 

2  Testen im Softwarelebenszyklus (K2)  

115 Minuten 

Lernziele für den Abschnitt Testen im Softwarelebenszyklus 

Die Lernziele legen fest, was Sie nach Beenden des jeweiligen Moduls gelernt haben sollten. 
 
2.1 Softwareentwicklungsmodelle (K2) 

LO-2.1.1  Beziehungen  zwischen  Entwicklungs-  und  Testaktivitäten  und  Arbeitsergebnissen  im  Ent-

wicklungslebenszyklus  anhand  von  Beispielen  unter  Verwendung  von  Projekt-  und  Pro-
dukteigenschaften erklären können (K2) 

LO-2.1.2  Die  Tatsache  erkennen,  dass  Softwareentwicklungsmodelle  an  das  Projekt  und  die  Pro-

dukteigenschaften angepasst werden müssen (K1) 

LO-2.1.3  Eigenschaften  „guter”  Tests  nennen  können,  die  in  beliebigen  Entwicklungslebenszykle n 

anwendbar sind (K1) 

2.2 Teststufen (K2) 

LO-2.2.1  Verschiedene Teststufen vergleichen können: Hauptziele, typische Testobjekte, typische 

Testziele (z.B. funktionale oder strukturelle) und entsprechende Arbeitsergebnisse, Rollen 
beim Testen, Arten von zu identifizierenden Fehlerzuständen und –wirkungen (K2) 

2.3 Testarten (K2) 

LO-2.3.1  Vier Arten des Softwaretestens (funktional, nicht-funktional, strukturell und änderungsbezo-

gen) an Beispielen vergleichen können (K2) 

LO-2.3.2  Erkennen, dass funktionale und strukturelle Tests auf jeder Teststufe angewendet werden 

können (K1) 

LO-2.3.3  Nicht-funktionale Testarten auf Grundlage von nicht-funktionalen Anforderungen identifizie-

ren und beschreiben können (K2) 

LO-2.3.4  Testarten basierend auf der Analyse der Struktur oder Architektur des Softwaresystems 

identifizieren und beschreiben können (K2) 

LO-2.3.5  Zweck eines Fehlernachtests und eines Regressionstests beschreiben können (K2) 

2.4 Wartungstests (K2) 

LO-2.4.1  Wartungstests  (also  Testen  eines  existierenden  Systems)  vergleichen  können  mit  dem 

Testen  einer  neuen  Anwendung  bzgl.  der  Testarten,  Auslöser  des  Testens  und  des  Test-
umfangs (K2) 

LO-2.4.2  Indikatoren  für  Wartungstests  (also  Modifikation,  Migration  und  Außerbetriebnahme  der 

Software) erkennen können (K1) 

LO-2.4.3  Die Rolle von Regressionstests und Auswirkungsanalyse in der Softwarewartung beschrei-

ben können (K2) 


background image

Certified Tester 

Foundation Level Syllabus 
(Deutschsprachige Ausgabe) 
 

Version 2011  

Seite 22/84 

1.8.2011 

© International Software Testing Qualifications Board 

2.1  Softwareentwicklungsmodelle (K2)  

20 Minuten 

 
Begriffe 
iterativ-inkrementelles Entwicklungsmodell, kommerzielle Standardsoftware (COTS – Commercial Off 
The Shelf), V-Modell (allgemeines), Validierung, Verifizierung 
 
Hintergrund 
Testen findet nicht isoliert statt; Testaktivitäten sind immer bezogen auf Softwareentwicklungsaktivitä-
ten. Verschiedene Entwicklungslebenszyklusmodelle erfordern verschiedene Testansätze. 

2.1.1  V-Modell (sequentielles Entwicklungsmodell) (K2) 

Es  existieren  Varianten  des  V-Modells.  Das  Gängigste,  das  allgemeine  V-Modell,  besteht  aus  fünf 
Entwicklungsstufen und vier Teststufen. Die vier Teststufen korrespondieren mit den Entwicklungsstu-
fen. 
 
Die vier in diesem Lehrplan verwendeten Teststufen nach dem allgemeinen V-Modell sind: 

Komponententest (unit test) 

Integrationstest 

Systemtest 

Abnahmetest 

 
In  der  Praxis  kann  ein  V-Modell,  entsprechend  dem  Projekt(-vorgehen)  oder  Produkt,  das  entwickelt 
und getestet werden soll, weniger, mehr oder andere Stufen aufweisen. Beispielsweise kann es Kom-
ponentenintegrationstests  nach  Komponententests  oder  Systemintegrationstests  nach  Systemtests 
geben. 
 
Entwicklungsdokumente  (wie  Geschäftsvorfälle  oder  Anwendungsfälle,  Anforderungsspezifikationen, 
Entwurfsdokumente und Code), die während der Entwicklung entstehen, sind oft die Basis für Tests in 
einer oder mehreren Stufen.  
Referenzen  für  generische  Arbeitspapiere  können  unter  anderem  in  folgenden  Standards  gefunden 
werden:  

CMMI-2004 (Capability Maturity Model Integration) 

IEEE/IEC 12207-2008 (‘Software life cycle processes’) 

 
Verifizierung  und  Validierung  (und  früher  Testentwurf)  können  während  der  Erstellung  der  Entwick-
lungsdokumente durchgeführt werden. 

2.1.2  Iterativ-inkrementelle Entwicklungsmodelle (K2)  

Bei iterativ-inkrementeller Entwicklung werden Anforderungen, Entwurf, Entwicklung und Test in einer 
Reihe  kurzer  Entwicklungszyklen  durchlaufen.  Beispiele  hierfür  sind  Prototyping,  Rapid  Application 
Development (RAD), der Rational Unified Process (RUP) und agile Entwicklungsmodelle. Ein System, 
welches  unter  Nutzung dieser  Entwicklungsmodelle erstellt wird, kann  in  jeder Iteration die  verschie-
denen  Teststufen  durchlaufen.  Jedes  Inkrement  bzw.  Erweiterung,  die  der  bisherigen  Entwicklung 
hinzugefügt  wird,  ergibt  ein  wachsendes  System,  das  ebenso  getestet  werden  muss.  Regressions-
tests haben daher bei allen Iterationen  nach dem ersten Zyklus eine  zunehmende  Bedeutung. Verifi-
zierung und Validierung können für jede Erweiterung durchgeführt werden. 

2.1.3  Testen innerhalb eines Entwicklungslebenszyklus (K2) 

In jedem Entwicklungslebenszyklus findet man einige Charakteristika für gutes Testen: 

Zu jeder Entwicklungsaktivität gibt es eine zugehörige Aktivität im Testen. 

Jede Teststufe hat Testziele, die spezifisch für diese Stufe sind. 


background image

Certified Tester 

Foundation Level Syllabus 
(Deutschsprachige Ausgabe) 
 

Version 2011  

Seite 23/84 

1.8.2011 

© International Software Testing Qualifications Board 

Die  Analyse  und  der  Entwurf  der  Tests  für  eine  Teststufe  sollten  während  der  zugehörigen 
Entwicklungsaktivität beginnen. 

Die  Tester  sollten  im  Reviewprozess  der  Entwicklungsdokumente  (Anforderungen,  Analyse 
und  Design) eingebunden werden, sobald eine Vorabversion eines der Dokumente  verfügbar 
ist. 

 
Teststufen können  in Abhängigkeit des Projekts oder der Systemarchitektur kombiniert oder neu fest-
gelegt  (geordnet)  werden.  Zum  Beispiel  kann  ein  Käufer  für  die  Integration  kommerzieller  Standard-
software den Integrationstest auf Systemebene (z.B. zur Integration  in die Infrastruktur und mit ande-
ren  Systemen  oder  zur  Nutzung  in  der  Produktivumgebung)  und  den  Abnahmetest  (beispielsweise 
funktionale und/oder nicht-funktionale Tests und Nutzer- und/oder Betriebstests) durchführen. 


background image

Certified Tester 

Foundation Level Syllabus 
(Deutschsprachige Ausgabe) 
 

Version 2011  

Seite 24/84 

1.8.2011 

© International Software Testing Qualifications Board 

2.2  Teststufen (K2) 

40 Minuten 

Begriffe 
Alpha-Test, Benutzer-Abnahmetest, Beta-Test, Feldtest, funktionale Anforderung, Integration, Integra-
tionstest,  Komponententest,  nicht-funktionale  Anforderung,  Platzhalter  (stubs),  Robustheitstest,  Sys-
temtest, testgetriebene Entwicklung, Teststufe, Treiber, Testumgebung  
 
Hintergrund 

Alle  Teststufen  können  durch  die  folgenden  Aspekte  charakterisiert  werden:  allgemeine  Ziele;  die 
Arbeitsergebnisse,  von  denen  die  Testfälle  abgeleitet  werden  (also  die  Testbasis);  das  Testobjekt 
(also was getestet wird); typische Fehlerwirkungen  und –zustände, die gefunden werden sollten; An-
forderungen  an  den  Testrahmen  und  Werkzeugunterstützung;  spezifische  Ansätze  und  Verantwort-
lichkeiten. 

Das Testen der Konfigurationsdaten eines Systems soll in der Testplanung berücksichtigt werden. 

2.2.1  Komponententest (K2) 

Testbasis: 

Anforderungen an die Komponente 

detaillierter Entwurf  

Code 

Typische Testobjekte: 

Komponenten 

Programme 

Datenumwandlung/Migrationsprogramme 

Datenbankmodule 

 
Der Komponententest (auch bekannt als Unit-, Modul- oder Programmtest) hat zum Ziel, Software, die 
separat getestet werden kann (z.B. Module, Programme, Objekte, Klassen, etc.), zu prüfen  und darin 
vorhandene  Fehler  zu  finden.  In  Abhängigkeit  von  Lebenszyklus  und  System  kann  das  durch  Isolie-
rung  vom  Rest des  Systems erreicht werden. Dabei werden  meist Platzhalter, Treiber  und Simulato-
ren eingesetzt. 
 
Der Komponententest kann das Testen funktionaler wie auch nicht-funktionaler Aspekte umfassen, so 
etwa  das  Testen  der  Ressourcenverwendung  (z.B.  Suche  nach  Speicherengpässe),  Robustheitstest 
oder  auch  struktureller  Test  (z.B.  Entscheidungsüberdeckung).  Testfälle  werden  von  Entwicklungs-
dokumenten wie einer Komponentenspezifikation, dem Softwareentwurf oder dem Datenmodell abge-
leitet. 
 
Meistens stehen den  Testern  beim Komponententest der Quellcode wie auch  Unterstützung aus der 
Entwicklungsumgebung  zur  Verfügung,  beispielsweise  eine  spezielle  Komponententestumgebung 
(unit test framework) oder Debugging-Werkzeuge. In der Praxis sind oft die für den Code verantwortli-
chen  Entwickler  an  den  Komponententests  beteiligt.  Dabei  werden  die  gefundenen  Fehlerzustände 
häufig sofort korrigiert und gar nicht erst formell behandelt. 
 
Ein  Ansatz  beim  Komponententest  ist  es,  die  Testfälle  vor  der  Implementierung  der  Funktionalität 
vorzubereiten  und  zu  automatisieren.  Dies  wird  Test-First-Ansatz  oder  testgetriebene  Entwicklung 
(test-driven) genannt. Dieser Ansatz ist sehr iterativ und basiert auf Zyklen aus Entwicklung von Test-
fällen, der Entwicklung und Integration von kleinen Code-Stücken und der Ausführung von Komponen-
tentests im Wechsel mit der Behebung der Probleme, bis die Tests erfolgreich durchlaufen sind. 
 


background image

Certified Tester 

Foundation Level Syllabus 
(Deutschsprachige Ausgabe) 
 

Version 2011  

Seite 25/84 

1.8.2011 

© International Software Testing Qualifications Board 

2.2.2  Integrationstest (K2) 

Testbasis 

Software- und Systementwurf 

Architektur 

Nutzungsabläufe/Workflows 

Anwendungsfälle (use cases) 

Typische Testobjekte 

Subsysteme 

Datenbankimplementierungen 

Infrastruktur 

Schnittstellen 

Systemkonfiguration und Konfigurationsdaten 

 
Der  Integrationstest  prüft  die  Schnittstellen  zwischen  Komponenten  und  die  Interaktionen  zwischen 
verschiedenen  Teilen  eines  Systems,  beispielsweise  zum  Betriebssystem,  Dateisystem,  zur  Hard-
ware, und er prüft die Schnittstellen zwischen Systemen.  
 
Es  können  mehrere  Integrationsstufen  zum  Einsatz  gelangen  und  diese  können  Testobjekte  unter-
schiedlichster Größe betreffen. Zum Beispiel: 

1.  Ein  Komponentenintegrationstest  prüft  das  Zusammenspiel  der  Softwarekomponenten  und 

wird nach dem Komponententest durchgeführt.  

2.  Ein  Systemintegrationstest  prüft  das  Zusammenspiel  verschiedener  Softwaresysteme  oder 

zwischen  Hardware  und  Software  und  kann  nach  dem  Systemtest  durchgeführt  werden.  In 
einem solchen Fall hat das Entwicklungsteam oft nur die eine Seite der zu prüfenden Schnitt-
stelle unter seiner Kontrolle. Dies kann als Risiko betrachtet werden. Geschäftsprozesse, die 
als  Workflows  implementiert  sind,  können  eine  Reihe  von  Systemen  nutzen.  Plattformüber-
greifende Fragestellungen können signifikant sein.  

Je größer der Umfang einer Integration ist, desto schwieriger ist die Isolation  von Fehlerzuständen  in 
einer spezifischen Komponente oder einem System, was zur Erhöhung des Risikos und zusätzlichem 
Zeitbedarf zur Fehlerbehebung führen kann.  
 
Systematische Integrationsstrategien können auf der Systemarchitektur (z.B. Top-Down  und Bottom-
Up),  funktionalen  Aufgaben,  Transaktionsverarbeitungssequenzen  oder  anderen  Aspekten  des  Sys-
tems  oder  seiner  Komponenten  basieren.  Um  die  Fehlerisolation  zu  erleichtern  und  Fehlerzustände 
früh  aufzudecken,  sind  inkrementelle  Integrationsstrategien  normalerweise  der  Big-Bang-Strategie 
vorzuziehen.  
 
Das  Testen  spezieller  nicht-funktionaler  Eigenschaften  (z.B.  Performanz)  kann  im  Integrationstest 
ebenso enthalten sein, wie funktionale Tests.  
 
Bei jeder Integrationsstufe sollen Tester sich ausschließlich auf die eigentliche Integration konzentrie-
ren. Wenn zum Beispiel das Modul A mit dem Modul B integriert wird, so soll der Fokus auf der Kom-
munikation zwischen den Modulen und nicht etwa auf der Funktionalität der einzelnen Module  liegen, 
welche  Inhalt  des  Komponententests  war.  Sowohl  funktionale  als  auch  strukturelle  Ansätze  können 
genutzt werden. 
  
Idealerweise  sollten  Tester  die  Architektur  verstehen  und  entsprechend  auf  die  Integrationsplanung 
Einfluss nehmen. Werden Integrationstests bereits vor der Erstellung der einzelnen Komponenten od-
er Systeme geplant, können diese dann in der für die Integration effizientesten Reihenfolge entwickelt 
werden.