270 likes | 482 Views
Aircraft Design and an Engineer’s Approach to Software Testing. Daniel Böhnke Integrated Aircraft Design Air Transportation Systems. Source: Boeing. nPax = 140.7. Overview. Conceptual Aircraft Design An Engineer’s Approach to Unit Integration System Conclusion & Outlook.
E N D
Aircraft Design and an Engineer’s Approach to Software Testing Daniel Böhnke Integrated Aircraft Design Air Transportation Systems
Source: Boeing > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
> Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
nPax = 140.7 > 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 > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
ConceptualAircraft Design Requirements Simple Methods • Transparency ChangingRequirements • Flexibility Design Concept > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
python VAMPzero.py Requirements Flexibility Calculate Dependencies Transparency Sensitivities Concept > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
VAMPzero Geom Aero … Aircraft Area Component Wing … Parameter Discipline > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Parameter: Area value • 122m² status • fix • calc • init calc() • Handbook-Methods • otherParameter.getValue() choose replace > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
b/2 = 17m Span² Dependencies AspectRatio= Area 34²m² 9,475 = S = 122m² 122m² vampzero.googlecode.com
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 > 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 > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Finite Differences Complex Step Derivative Sensitivities Error % Step size h > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Dynamic Typing fromcmathimport … classzeroComplex(complex): def__eq__(self,other): ifself.real == other: return True else: returnFalse > 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) < and > bandwidth Inputs Outputs Reference Point Calculated Sensitivities • Integrated Aircraft Design Department • Dependencies • Estimated Sensitivities > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Unit Test Evaluation • Simple “Regular Expressions” • High Effort • Detailed Insight • Validation & Verification • Is the model implemented correctly? • Does the model return correctly? > 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 > 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 > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Integration Test If caller.status == ‘fix’ and calles.status == ‘fix’ > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Integration Test Evaluation • DuringRuntime • Dependent on User Inputs • nearly infinite • from an infinite numberofinputs 99% useless • Not really a test > 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 > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
System Test Plan > 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 > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
System Test Data Inputs Outputs Takeoff Mass Empty Mass • Geometry • Speed • Passengers • Engines • Technology Factors > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
25 aircraft all converge all low indicator for improvement > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
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 > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke
Thanks for Attending !!! daniel.boehnke@dlr.de code.google.com/p/vampzero/downloads/list > Aircraft Design and an Engineers Approach to Software Testing > Daniel Böhnke