SlideShare a Scribd company logo
1© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Requirement-driven Model-based
Testing of the cFS’ Software Bus
Service
Dharma Ganesan, Mikael Lindvall, Asa Valdimarsdottir,
Stefan Hafsteinsson
In collaboration with the cFS team:
Susanne Strege,Walter Moleski, and Dave McComas,
and Alan Cudmore
2© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Agenda
 Context
 Motivation
 System UnderTest (SUT)
 Challenges with traditional testing
 Model-based testing (MBT)
 Model-based testing applied on Software Bus
 Sample Issues detected
 Conclusion
 Possible future work
3© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Context
 The SARP project
 Software Assurance Research Program
“An Assurance Approach to Identify,Test
and Cover Off-nominal Behavior”
 Off-nominal behavior
 Unexpected sequences of events
 Out-of-range data values
 Environment issues
4© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Motivation
 Testing is always important
 Even more important when
 Safety is critical
 Failures are expensive
5© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
cFE/cFS Context Diagram
Inter-task Message Router (SW Bus)
Transponders
Commands
Real-time Telemetry (UDP)
Comm Cards
File downlink
(CFDP)
Summit Chip
Mass
Storage
System
CFDP File
Transfer
File
Manager
Local
Storage
Data
Storage
Event
Services
Executive
Services
Time
Services
1553 Bus
Support
Software
Bus
Command
Ingest
Telemetry
Output
Table
Services
EDAC
Memory
Scrubber
Self
Test
Memory
Dwell
Instrument
Manager
Checksum
Memory
Manager
GN&C
Applications
(4)
Mission Apps
cFE core App
CFS Applications
Stored
Commanding
Software
Scheduler
Health &
Safety
Manager
House-
keeping
Limit
Checker
6© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Challenges with traditional testing
 Why do we need more testing?
 Previous testing
 Unit tests
 Good coverage
 Only test execution is automated
 Test cases are manually constructed
 Tests are too low-level detailed
 Not testing multi-tasking nor communication between tasks
7© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Solution
 Model-basedTesting (MBT)
 Relatively new technology
 Black box approach
 A model that describes desired behavior of the SUT
 Automatic generation of innumerable test cases
 Triggers off-nominal behaviors
8© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Model-based Testing (MBT)
 The tester develops a model
 Instead of writing test cases
 Based on functional requirements and API documentation
 In our case: A model program
 Rules describe the SUT´s desired behaviors
 Becomes the “test oracle”
9© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
MBT applied on the cFS‘ Software Bus
 Software Bus Service
 Handles communication between tasks/applications
 Publish-Subscribe architectural style
 Main features
 Pipes
 Create, Delete, Subscribe through, Receive from
 Messages
 Send, Receive
 Subscriptions
 Subscribe, Unsubscribe
10© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Challenges of testing a SB
 Multi-tasking
 Communication between tasks/applications
 Need more than one task/application
 An application can not decide on the correctness of it‘s
own execution
 Need an architecture for coordination
 Overview
 Control
11© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Solution – The Parent Child
Architecture
 Each test case acts as a
Parent Application
 Generated by our model
 The Parent spans multiple
Child Tasks
 The Parent sends
commands to it‘s Child
Tasks
 The Parent “knows“ which
behaviors should succeed
and which should fail
Parent
Child
Task Child
Task
Child
Task
12© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Solution – The Parent Child
Architecture
Parent
Child
Task
Result pipe
Command pipe
Command
13© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Solution – The Parent Child
Architecture
Parent
Child
Task
Result pipe
Command pipeResult
14© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Example: Command sequence
 How to test whether publish works between two tasks?
 Our test case generates a sequence as below
 Parent send a sequence of commands:
 Parent: “Child no. 1 create a pipe“
 Child1creates a pipe and sends the return code to the parent
 Parent: “Child no. 1subscribe to message nr 5“
 Child 1 subscribes to message nr 5 and sends the return code
 Parent:“Child 2 publish message nr 5“
 Child 2 publishes message nr 5 and sends the return code
 Parent:“Child 1receive message nr 5”
 Child 1 receives message nr 5 and sends the return code
15© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Our model
 Spec Explorer
 A plug-in toVisual Studio
 Tester develops a model program
 Written in C#
 Simplified and abstract version of the SUT
 Simple structures and data types
 Messages modeled as integers
 Pipes modeled as a set of integers
 No complex structures, threads, pointers or semaphores
16© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Model Program (Sample)
 Model
 We capture requirement numbers in our model
 Helps in detecting missing requirements
 Will be used for establishing traceability links
17© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Our model
18© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Generated from
our model
program
 Spec Explorer generates
state machines from our
model
 In regular MBT models
are either manually
created and/or derived
from test cases
(Fraunhofers tool FAST)
Create Pipe
is telling
child 0 to
create a
pipe with
name 0 of
depth 1.
19© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Generated
test
sequences -
sample
 Each chain is a test
case
 A Parent Application
 Parent creates a child
(id is 0 in InitTask)
 Also get test code
 Adapter converts the
test code to SUT
syntax
 From C# to C
20© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Generated test sequences - sample
 Two ChildTasks
 Two ChildTasks and looser restrictions
Each test case (i.e. a parent) creates two child task and send different commands such as
Publish, subscribe, unsubscribe, ReadMsg, etc.
21© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Zoom-in
22© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Requirement tracability
 Future work:
Create visualization
23© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Cross running
Parent
Child
Task
Child
Task
Child
Task
Parent
Child
Task
Child
Task
Parent
Child
Task
Child
Task
Allows for testing of more complex concurrency situations
24© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Issues detected
 These issues were unknown to the CFS team
 Off-nominal behaviors
 Trying to create an already existing pipe caused data
corruption
 Cross running multiple Parent Applications
 Method called to delete ChildTasks does not clean up the task
data properly
 Caused memory issue
 Requirement issues
 Missing or/and unclear requirements
 Off-nominal scenarios often not discussed
 Duplicate requirements
25© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
A sample issue detected
26© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Another issue (sample)
 Off-nominal pipe creation
 Found early
 Trying to create an already
existing pipe caused data
corruption
 Not accounted for in the
SUT‘s code
 Caused failures in later
steps
Delete Pipe
failed
27© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Conclusion and future work
 MBT is promising
 Detecting off-nominal issues is the core of MBT
 MBT Helps in detecting
 Missing requirements (we can improve requirements)
 Functional errors in the SUT
28© 2015 Fraunhofer USA, Inc.
Center for Experimental Software Engineering
Acknowledgements
 NASA SARP
 Martha Wetherholt
 Kenneth D. Rehm
 Steven Hard
 Markland Benson
 cFS team
 JonathanWilmot
Contact:
 dganesan@fc-md.umd.edu
 mlindvall@fc-md.umd.edu

More Related Content

PDF
Automated Traceability for Software Engineering Tasks
PDF
Interface-Implementation Contract Checking
PPTX
When do software issues get reported in large open source software
PPTX
The Impact of Test Ownership and Team Structure on the Reliability and Effect...
PPTX
Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...
PDF
It's Not a Bug, It's a Feature — How Misclassification Impacts Bug Prediction
PDF
Leveraging HPC Resources to Improve the Experimental Design of Software Analy...
PPT
Crowd debugging (FSE 2015)
Automated Traceability for Software Engineering Tasks
Interface-Implementation Contract Checking
When do software issues get reported in large open source software
The Impact of Test Ownership and Team Structure on the Reliability and Effect...
Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...
It's Not a Bug, It's a Feature — How Misclassification Impacts Bug Prediction
Leveraging HPC Resources to Improve the Experimental Design of Software Analy...
Crowd debugging (FSE 2015)

What's hot (20)

PPTX
Issre2014 test defectprediction
PPTX
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
PDF
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
PDF
Personalized Defect Prediction
PDF
Mutation Analysis vs. Code Coverage in Automated Assessment of Students’ Test...
PDF
Debug me
PPT
Using Developer Information as a Prediction Factor
PDF
A Survey on Automatic Software Evolution Techniques
PDF
Ssbse12b.ppt
PDF
Experimental design
PDF
Technology & innovation Management Course - Session 2
PDF
Cross-project defect prediction
PDF
A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...
PDF
Transfer defect learning
PPT
An Application-Oriented Approach for Computer Security Education
PPTX
QUICKAR: Automatic Query Reformulation for Concept Location Using Crowdsource...
PPTX
Survey on Software Defect Prediction
PDF
ICPE2015
PDF
Defect Prediction: Accomplishments and Future Challenges
PDF
ICSME2014
Issre2014 test defectprediction
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
Personalized Defect Prediction
Mutation Analysis vs. Code Coverage in Automated Assessment of Students’ Test...
Debug me
Using Developer Information as a Prediction Factor
A Survey on Automatic Software Evolution Techniques
Ssbse12b.ppt
Experimental design
Technology & innovation Management Course - Session 2
Cross-project defect prediction
A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...
Transfer defect learning
An Application-Oriented Approach for Computer Security Education
QUICKAR: Automatic Query Reformulation for Concept Location Using Crowdsource...
Survey on Software Defect Prediction
ICPE2015
Defect Prediction: Accomplishments and Future Challenges
ICSME2014
Ad

Similar to Requirements driven Model-based Testing (20)

PPTX
Model-based Testing of a Software Bus - Applied on Core Flight Executive
PDF
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
PPTX
Assessing Model-Based Testing: An Empirical Study Conducted in Industry
PDF
Ivv workshop model-based-testing-of-nasa-systems
PPTX
Analysis of Testability of a Flight Software Product Line
PDF
Testing of C software components using Models
PDF
Automated Test Case Generation and Execution from Models
PPTX
Automated Testing of NASA Software
PDF
Model-based Testing Principles
PDF
Scaffolding with JMock
PDF
Model-Based Testing in The Test Automation
PDF
Model Based Software Testing
PDF
Automated testing-whitepaper
PPTX
Architecture Analysis of Systems based on Publish-Subscribe Systems
PPTX
Automating "Network Ready for Use" with pytest
PPTX
Modern Testing Strategies for Evolving Ecosystems
PPT
12 Rational Solo Pruebas 2009
PDF
Why on Earth would I test if I have to just "Let it crash"?
PDF
Q44098893
PDF
Hartmann im00
Model-based Testing of a Software Bus - Applied on Core Flight Executive
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Assessing Model-Based Testing: An Empirical Study Conducted in Industry
Ivv workshop model-based-testing-of-nasa-systems
Analysis of Testability of a Flight Software Product Line
Testing of C software components using Models
Automated Test Case Generation and Execution from Models
Automated Testing of NASA Software
Model-based Testing Principles
Scaffolding with JMock
Model-Based Testing in The Test Automation
Model Based Software Testing
Automated testing-whitepaper
Architecture Analysis of Systems based on Publish-Subscribe Systems
Automating "Network Ready for Use" with pytest
Modern Testing Strategies for Evolving Ecosystems
12 Rational Solo Pruebas 2009
Why on Earth would I test if I have to just "Let it crash"?
Q44098893
Hartmann im00
Ad

More from Dharmalingam Ganesan (20)

PDF
.NET Deserialization Attacks
PDF
Reverse Architecting using Relation Algebra.pdf
PDF
How to exploit rand()?
PDF
Cyclic Attacks on the RSA Trapdoor Function
PDF
An Analysis of RSA Public Exponent e
PDF
An Analysis of Secure Remote Password (SRP)
PDF
Thank-a-Gram
PDF
Active Attacks on DH Key Exchange
PDF
Can I write to a read only file ?
PPTX
How do computers exchange secrets using Math?
PDF
On the Secrecy of RSA Private Keys
PDF
Computing the Square Roots of Unity to break RSA using Quantum Algorithms
PDF
Analysis of Short RSA Secret Exponent d
PDF
Dependency Analysis of RSA Private Variables
PDF
Analysis of Shared RSA Modulus
PDF
RSA Game using an Oracle
PDF
RSA Two Person Game
PDF
RSA without Integrity Checks
PPTX
RSA without Padding
PDF
Solutions to online rsa factoring challenges
.NET Deserialization Attacks
Reverse Architecting using Relation Algebra.pdf
How to exploit rand()?
Cyclic Attacks on the RSA Trapdoor Function
An Analysis of RSA Public Exponent e
An Analysis of Secure Remote Password (SRP)
Thank-a-Gram
Active Attacks on DH Key Exchange
Can I write to a read only file ?
How do computers exchange secrets using Math?
On the Secrecy of RSA Private Keys
Computing the Square Roots of Unity to break RSA using Quantum Algorithms
Analysis of Short RSA Secret Exponent d
Dependency Analysis of RSA Private Variables
Analysis of Shared RSA Modulus
RSA Game using an Oracle
RSA Two Person Game
RSA without Integrity Checks
RSA without Padding
Solutions to online rsa factoring challenges

Recently uploaded (20)

PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
ai tools demonstartion for schools and inter college
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Digital Strategies for Manufacturing Companies
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
medical staffing services at VALiNTRY
PPTX
Introduction to Artificial Intelligence
How to Migrate SBCGlobal Email to Yahoo Easily
ai tools demonstartion for schools and inter college
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Navsoft: AI-Powered Business Solutions & Custom Software Development
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Upgrade and Innovation Strategies for SAP ERP Customers
Wondershare Filmora 15 Crack With Activation Key [2025
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
CHAPTER 2 - PM Management and IT Context
2025 Textile ERP Trends: SAP, Odoo & Oracle
Odoo Companies in India – Driving Business Transformation.pdf
wealthsignaloriginal-com-DS-text-... (1).pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Digital Strategies for Manufacturing Companies
Internet Downloader Manager (IDM) Crack 6.42 Build 41
medical staffing services at VALiNTRY
Introduction to Artificial Intelligence

Requirements driven Model-based Testing

  • 1. 1© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Requirement-driven Model-based Testing of the cFS’ Software Bus Service Dharma Ganesan, Mikael Lindvall, Asa Valdimarsdottir, Stefan Hafsteinsson In collaboration with the cFS team: Susanne Strege,Walter Moleski, and Dave McComas, and Alan Cudmore
  • 2. 2© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Agenda  Context  Motivation  System UnderTest (SUT)  Challenges with traditional testing  Model-based testing (MBT)  Model-based testing applied on Software Bus  Sample Issues detected  Conclusion  Possible future work
  • 3. 3© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Context  The SARP project  Software Assurance Research Program “An Assurance Approach to Identify,Test and Cover Off-nominal Behavior”  Off-nominal behavior  Unexpected sequences of events  Out-of-range data values  Environment issues
  • 4. 4© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Motivation  Testing is always important  Even more important when  Safety is critical  Failures are expensive
  • 5. 5© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering cFE/cFS Context Diagram Inter-task Message Router (SW Bus) Transponders Commands Real-time Telemetry (UDP) Comm Cards File downlink (CFDP) Summit Chip Mass Storage System CFDP File Transfer File Manager Local Storage Data Storage Event Services Executive Services Time Services 1553 Bus Support Software Bus Command Ingest Telemetry Output Table Services EDAC Memory Scrubber Self Test Memory Dwell Instrument Manager Checksum Memory Manager GN&C Applications (4) Mission Apps cFE core App CFS Applications Stored Commanding Software Scheduler Health & Safety Manager House- keeping Limit Checker
  • 6. 6© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Challenges with traditional testing  Why do we need more testing?  Previous testing  Unit tests  Good coverage  Only test execution is automated  Test cases are manually constructed  Tests are too low-level detailed  Not testing multi-tasking nor communication between tasks
  • 7. 7© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Solution  Model-basedTesting (MBT)  Relatively new technology  Black box approach  A model that describes desired behavior of the SUT  Automatic generation of innumerable test cases  Triggers off-nominal behaviors
  • 8. 8© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Model-based Testing (MBT)  The tester develops a model  Instead of writing test cases  Based on functional requirements and API documentation  In our case: A model program  Rules describe the SUT´s desired behaviors  Becomes the “test oracle”
  • 9. 9© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering MBT applied on the cFS‘ Software Bus  Software Bus Service  Handles communication between tasks/applications  Publish-Subscribe architectural style  Main features  Pipes  Create, Delete, Subscribe through, Receive from  Messages  Send, Receive  Subscriptions  Subscribe, Unsubscribe
  • 10. 10© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Challenges of testing a SB  Multi-tasking  Communication between tasks/applications  Need more than one task/application  An application can not decide on the correctness of it‘s own execution  Need an architecture for coordination  Overview  Control
  • 11. 11© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Solution – The Parent Child Architecture  Each test case acts as a Parent Application  Generated by our model  The Parent spans multiple Child Tasks  The Parent sends commands to it‘s Child Tasks  The Parent “knows“ which behaviors should succeed and which should fail Parent Child Task Child Task Child Task
  • 12. 12© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Solution – The Parent Child Architecture Parent Child Task Result pipe Command pipe Command
  • 13. 13© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Solution – The Parent Child Architecture Parent Child Task Result pipe Command pipeResult
  • 14. 14© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Example: Command sequence  How to test whether publish works between two tasks?  Our test case generates a sequence as below  Parent send a sequence of commands:  Parent: “Child no. 1 create a pipe“  Child1creates a pipe and sends the return code to the parent  Parent: “Child no. 1subscribe to message nr 5“  Child 1 subscribes to message nr 5 and sends the return code  Parent:“Child 2 publish message nr 5“  Child 2 publishes message nr 5 and sends the return code  Parent:“Child 1receive message nr 5”  Child 1 receives message nr 5 and sends the return code
  • 15. 15© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Our model  Spec Explorer  A plug-in toVisual Studio  Tester develops a model program  Written in C#  Simplified and abstract version of the SUT  Simple structures and data types  Messages modeled as integers  Pipes modeled as a set of integers  No complex structures, threads, pointers or semaphores
  • 16. 16© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Model Program (Sample)  Model  We capture requirement numbers in our model  Helps in detecting missing requirements  Will be used for establishing traceability links
  • 17. 17© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Our model
  • 18. 18© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Generated from our model program  Spec Explorer generates state machines from our model  In regular MBT models are either manually created and/or derived from test cases (Fraunhofers tool FAST) Create Pipe is telling child 0 to create a pipe with name 0 of depth 1.
  • 19. 19© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Generated test sequences - sample  Each chain is a test case  A Parent Application  Parent creates a child (id is 0 in InitTask)  Also get test code  Adapter converts the test code to SUT syntax  From C# to C
  • 20. 20© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Generated test sequences - sample  Two ChildTasks  Two ChildTasks and looser restrictions Each test case (i.e. a parent) creates two child task and send different commands such as Publish, subscribe, unsubscribe, ReadMsg, etc.
  • 21. 21© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Zoom-in
  • 22. 22© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Requirement tracability  Future work: Create visualization
  • 23. 23© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Cross running Parent Child Task Child Task Child Task Parent Child Task Child Task Parent Child Task Child Task Allows for testing of more complex concurrency situations
  • 24. 24© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Issues detected  These issues were unknown to the CFS team  Off-nominal behaviors  Trying to create an already existing pipe caused data corruption  Cross running multiple Parent Applications  Method called to delete ChildTasks does not clean up the task data properly  Caused memory issue  Requirement issues  Missing or/and unclear requirements  Off-nominal scenarios often not discussed  Duplicate requirements
  • 25. 25© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering A sample issue detected
  • 26. 26© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Another issue (sample)  Off-nominal pipe creation  Found early  Trying to create an already existing pipe caused data corruption  Not accounted for in the SUT‘s code  Caused failures in later steps Delete Pipe failed
  • 27. 27© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Conclusion and future work  MBT is promising  Detecting off-nominal issues is the core of MBT  MBT Helps in detecting  Missing requirements (we can improve requirements)  Functional errors in the SUT
  • 28. 28© 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Acknowledgements  NASA SARP  Martha Wetherholt  Kenneth D. Rehm  Steven Hard  Markland Benson  cFS team  JonathanWilmot Contact:  dganesan@fc-md.umd.edu  mlindvall@fc-md.umd.edu