CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 1
CCDL – Einfache und mächtige Testbeschreibungssprache für Zulassungstests
und Zertifizierung
Michael Wittner
Razorcat Development GmbH
Witzlebenplatz 4
14057 Berlin
Tel.: 030 – 536 357 0
Fax: 030 – 536 357 60
www.razorcat.com
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 2
?
Wie kann nachvollziehbar dokumentiert werden, dass alle Anforderungen durch Tests abgedeckt sind?
Anforderung 1
Anforderung 2
Anforderung 3
Test 1
Test 2
Test 3
Test 4
Ergebnis 1
Ergebnis 2
Ergebnis 3
Ergebnis 4
V&V Matrix
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 3
Herausforderungen für einen Test-Ingenieur
Test Definition Step 1 … Step 2 … Step 3 …
Test Procedure while () … if (x < y) … for () …
SystemverständnisTestmethodik
SUT
Testanlage
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 4
Problematisch: Testbeschreibung und Umsetzung in eine Testprozedur
Anforderung 1
Anforderung 2
Anforderung 3
Test 2
Test 3
Test 4
?
Ergebnis 1
Ergebnis 2
Ergebnis 3
Ergebnis 4
V&V Matrix
Test Definition
Initial Conditions … Step 1 … Step 2 … Step 3 …
Test Procedure
while () …
if (x < y) …
for () …
Test 1
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 5
Bisheriges Vorgehen: Aufteilung auf verschiedene Testrollen
Nachteile Programmierer braucht
Systemverständnis und muss die Testanlage genau kennen
Missverständnisse bei der Umsetzung in ein Testprogramm
Schlechte Dokumentation
Test
Definition
Testanlagen-
spezifisches
Script/Programm
(Python, C, ...)
manuelle Umsetzung
Dokumentation ?
Tester Programmierer
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 6
Zielstellung für eine Testbeschreibungssprache
Leicht erlernbar Intuitiv lesbar Echtzeitfähig Direkte Verweise auf einzelne Anforderungen möglich Kapselung von testanlagen- und SUT-spezifischen Funktionen Umgang mit Redundanz (Signale/Subsysteme)
Check Case Definition Language (CCDL)
Chronologische und ereignisbasierte Stimulation Synchrone und asynchrone Prüfung der Systemreaktionen
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 7
Was bieten heutige Testsysteme ?
C-Code, Python Wenig für Testerstellung geeignet Gute Programmierkenntnisse
notwendig Keine Testauswertung Keine Dokumentation
TTCN-3 Ebenfalls Programmierung
erforderlich Eher für message-basierte
Systeme geeignet
Grafische Testbeschreibungen Wichtige Informationen zum Teil
versteckt Dokumentation
aufwendig/schwierig
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 8
Testbeschreibung und Testdurchführung mit CCDL
Tester
Programmierer
Ausführung auf der Testanlageautomatische Übersetzung
Test
Definition
(CCDL)
Testanlagen- und A/C
spezifische Funktionen
Test
Prozedur
(testanlagen-
spezifisch)
CCDLCompiler
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 9
Einsatz der CCDL in Airbus-Zertifizierungs-Testprogrammen
Test der Landeklappensteuerung (High-Lift-System) in Bremen A400M A320 SFCC Re-Design A350 (aktuell laufende Testkampagne)
Performance-Steigerung im Testprozess mit CCDL gegenüber Programmierung der Testprozeduren in Python über 100%
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 10
Einfaches Beispielsystem
Lever
Motor
Sensor
FaultIndicator
Controller(SUT)
Break
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 11
Typisches Testszenario einer LandeklappensteuerungZ
eit
[s]
Aktionen
(chronologisch)
Wählhebel setzen
Warte, bis Endposition erreicht ist
Bremse offen
Normale Geschwindigkeit
Definierter Zeitraum
Bei Erreichen einer Bedingung:
Fehlersituation erzeugen
Laufzeit eines Testschritts
System bewegt sich
Asynchrones Überwachen
der Systemreaktionen
Bremse schließt
halbe Geschwindigkeit
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 12
Erstellen der Test Definition auf Basis der Anforderungen
RQMT:0815-1The motor shall operate the system at a speed of 1000 rpm
RQMT:4711-1If any overspeed (more than 1100 rpm) is detected, the system shall stop the motor and activate the break within 100 ms. A fault warning shall be indicated.
1. Initialisierung des Systems
2. Setze den Wählhebel auf Position 1
3. Warte, bis die Normalgeschwindigkeit ereicht ist.
4. Simuliere einen Sensorfehler:Setze einen künstlichen Offset auf den gemessenen Wert.
5. Prüfe, ob das System nach 100 ms gestoppt wird.
Test DefinitionAnforderungen
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 13
Umsetzung der Test Definition in CCDL
Test Step 1, Timeout 99 [s]: {// Action: Set lever position to 2
set CTRL.LeverPosition to 2// Check for motor speed of system// - Set a trigger variable if the event occured
set trigger T1 when CTRL.MotorSpeed >= 1000 [rpm] (RQMT:0815-1)// When system is in state "ready for this test":// Set failure condition: Manipulate sensor
when T1:// Manipulate sensor value
set CTRL.MotorSpeed to offset 110 [rpm] (RQMT:4711-1)// Check if system detects the failure condition
within T1 .. T1 & 100 [ms]: {expect CTRL.BreakState => ENGAGED (RQMT:4711-1)expect CTRL.FailureWarning => 1 (RQMT:4711-1)
}}
Test Step 1, Timeout 99 [s]: {// Action: Set lever position to 2
set CTRL.LeverPosition to 2// Check for motor speed of system// - Set a trigger variable if the event occured
set trigger T1 when CTRL.MotorSpeed >= 1000 [rpm] (RQMT:0815-1)// When system is in state "ready for this test":// Set failure condition: Manipulate sensor
when T1:// Manipulate sensor value
set CTRL.MotorSpeed to offset 110 [rpm] (RQMT:4711-1)// Check if system detects the failure condition
within T1 .. T1 & 100 [ms]: {expect CTRL.BreakState => ENGAGED (RQMT:4711-
1)expect CTRL.FailureWarning => 1 (RQMT:4711-
1) }}
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 14
Umgang mit redundanten Signalen/Subsystemen
set HLSF[1;2].RL206_GADIRU[1;2;3]_CAS to 200 [kts]
Das ist die zusammengefasste Schreibweise für:
set HLSF1.RL206_GADIRU1_CAS to 200 [kts]set HLSF1.RL206_GADIRU2_CAS to 200 [kts]set HLSF1.RL206_GADIRU3_CAS to 200 [kts]set HLSF2.RL206_GADIRU1_CAS to 200 [kts]set HLSF2.RL206_GADIRU2_CAS to 200 [kts]set HLSF2.RL206_GADIRU3_CAS to 200 [kts]
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 15
Testauswertung in CCDL
Zeitlich genau definierbare Auswertungsintervalle Eine Real-Time-Zeitscheibe
als kleinste Einheit Asynchrone Trigger-Bedingungen
Für Stimulation Für Auswertung
Zuordnung der Testergebnisse zu den annotierten Anforderungen Übernahme ins
Testmanagement-System Anforderungsbasierte
Auswertung der Tests
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH)
Grafische Visualisierung des Testablaufs
16
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 17
Architektur der CCDL Implementierung
Compiler Übersetzung CCDL ==> C
Execution Framework Real-Time Laufzeitumgebung Stimulation/Auswertung
User Functions Library Implementierung testanlagen-
oder SUT-spezifischer Funktionen
Test Engine Abstraction Layer Interface zur Testanlage Beliebig portierbar
Test Engine (TE)
(e.g. ADS2, Concurrent, dSPACE, ...)
TE abstraction layer
Execution
Framework
User Functions
Library
Generated Test Program (C Code)
CCDL
Procedure
Compiler
independent of test engine
dependent of test engine
Configuration
Files
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 18
Vergleich TTCN-3 und CCDL
Vorteile der CCDL Kompakte, gut lesbare Notation Implizite Behandlung von Timeouts Implizites Setzen von
Passed/Failed-Ergebnissen
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 19
Zusammenfassung CCDL
Leicht erlernbar, intuitiv lesbar Echtzeitfähig Direkter Verweis auf Anforderungen Eingebettet in einen kompletten Testprozess
Umfassende Automatisierung im Testprozess und in der Nachweisführung
CCDL TestbeschreibungsspracheMichael Wittner, [email protected] (Razorcat Development GmbH) 20
Vielen Dank für Ihre Aufmerksamkeit.