Aircraft Design and an Engineer’s Approach to Software Testing Daniel Böhnke Integrated Aircraft Design Air Transportation Systems
Chart 2> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke Source: Boeing
Chart 3> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
nPax = Chart 4> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Overview ► Conceptual Aircraft Design ►An Engineer’s Approach to ►Unit ►Integration ►System ►Conclusion & Outlook Chart 5> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Conceptual Aircraft Design Simple Methods ►Transparency Changing Requirements ►Flexibility Requirements Design Concept Chart 6> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
python VAMPzero.py Requirements Concept Calculate Dependencies Sensitivities Flexibility Transparency Chart 7> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
VAMPzero Aircraft Geom Wing … …Aero Component Discipline Area Parameter Chart 8> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
value ►122m² status ►fix ►calc ►init calc() ►Handbook-Methods ►otherParameter.getValue() Parameter: Area choose replace Chart 9> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
vampzero.googlecode.com Dependencies S = 122m² Area AspectRatio = b/2 = 17m Span² 34²m² 122m² 9,475 =
Unit Testing “[…] the comparison of the unit’s actual behavior with its required behavior as specified in the unit’s requirements documentation.” IEEE Standard for Software Unit Testing Chart 11> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Unit Test Plan ► Actual Behaviour: ►If nPax changes mPayload changes ► Required Behaviour: ►If nPax changes mPayload changes ►If nPax increases mPayload must increase ► Check for Sensitivities Chart 12> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Sensitivities ► Finite Differences ► Complex Step Derivative Error % Step size h > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnkewww.DLR.de Chart 13
Dynamic Typing from cmath import … class zeroComplex(complex): def __eq__(self,other): if self.real == other: return True else: return False Chart 14> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Inputs ►Integrated Aircraft Design Department ►Dependencies ►Estimated Sensitivities Outputs ► Reference Point ►Calculated Sensitivities Chart 15> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke Unit Test Data 0 + or - directional sensitivity ++ or - - superior sensitivity +++ or --- largest impact (1 occurrence) bandwidth
Unit Test Evaluation ► Simple “Regular Expressions” ► High Effort ► Detailed Insight ►Validation & Verification ►Is the model implemented correctly? ►Does the model return correctly? Chart 16> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Integration Testing “Testing in which software components […] are combined and tested to evaluate the interaction among them.” IEEE Standard for System and Software Verification and Validation Chart 17> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Integration Test Plan ► User overwrites calculations ► Actual Behaviour: ►If nPax changes mPayload changes ►Fails if nPax and mPayload are inputs ► Check if input set is over-determined Chart 18> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Integration Test Chart 19> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke If caller.status == ‘fix’and calles.status == ‘fix’
Integration Test Evaluation ► During Runtime ► Dependent on User Inputs ► nearly infinite ► from an infinite number of inputs 99% useless ► Not really a test Chart 20> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
System Testing “Testing conducted on a complete, integrated system to evaluate the system’s compliance with its specified requirements” IEEE Standard for System and Software Verification and Validation Chart 21> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
System Test Plan Chart 22> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
System Test Data ►Aircraft Characteristics for Airport Planing ►Mission Profile ►Geometry ►Mass Data ►Publicly available Chart 23> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Inputs ►Geometry ►Speed ►Passengers ►Engines ►Technology Factors Outputs ►Takeoff Mass ►Empty Mass Chart 24> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke System Test Data
Chart 25> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke ► 25 aircraft ► all converge ► all low ►indicator for improvement
Outlook and Conclusion “An engineer’s approach to software testing does not substitute software testing” ► Calibration and Validation are closely coupled ► Applicable for “expert” mathematical software ► Increases the quality of actual code and development ► Include system test in release cycle Chart 26> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Chart 27> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke Thanks for Attending !!! code.google.com/p/vampzero/downloads/list