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

What's hot

Issre2014 test defectprediction
Issre2014 test defectpredictionIssre2014 test defectprediction
Issre2014 test defectprediction
Kim Herzig
 
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
Sung Kim
 
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
Feng Zhang
 
Personalized Defect Prediction
Personalized Defect PredictionPersonalized Defect Prediction
Personalized Defect Prediction
Sung Kim
 
Mutation Analysis vs. Code Coverage in Automated Assessment of Students’ Test...
Mutation Analysis vs. Code Coverage in Automated Assessment of Students’ Test...Mutation Analysis vs. Code Coverage in Automated Assessment of Students’ Test...
Mutation Analysis vs. Code Coverage in Automated Assessment of Students’ Test...
Petri Ihantola
 
Using Developer Information as a Prediction Factor
Using Developer Information as a Prediction FactorUsing Developer Information as a Prediction Factor
Using Developer Information as a Prediction Factor
Tim Menzies
 
A Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution TechniquesA Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution Techniques
Sung Kim
 
Ssbse12b.ppt
Ssbse12b.pptSsbse12b.ppt
Ssbse12b.ppt
Ptidej Team
 
Experimental design
Experimental designExperimental design
Experimental designDan Toma
 
Technology & innovation Management Course - Session 2
Technology & innovation Management Course - Session 2Technology & innovation Management Course - Session 2
Technology & innovation Management Course - Session 2
Dan Toma
 
Cross-project defect prediction
Cross-project defect predictionCross-project defect prediction
Cross-project defect prediction
Thomas Zimmermann
 
A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...
A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...
A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...
Kevin Moran
 
Transfer defect learning
Transfer defect learningTransfer defect learning
Transfer defect learning
Sung Kim
 
An Application-Oriented Approach for Computer Security Education
An Application-Oriented Approach for Computer Security EducationAn Application-Oriented Approach for Computer Security Education
An Application-Oriented Approach for Computer Security Education
Xiao Qin
 
QUICKAR-ASE2016-Singapore
QUICKAR-ASE2016-SingaporeQUICKAR-ASE2016-Singapore
QUICKAR-ASE2016-Singapore
Masud Rahman
 
Survey on Software Defect Prediction
Survey on Software Defect PredictionSurvey on Software Defect Prediction
Survey on Software Defect Prediction
Sung Kim
 
ICPE2015
ICPE2015ICPE2015
ICPE2015
swy351
 
Defect Prediction: Accomplishments and Future Challenges
Defect Prediction: Accomplishments and Future ChallengesDefect Prediction: Accomplishments and Future Challenges
Defect Prediction: Accomplishments and Future Challenges
Yasutaka Kamei
 
ICSME2014
ICSME2014ICSME2014
ICSME2014
swy351
 

What's hot (20)

Issre2014 test defectprediction
Issre2014 test defectpredictionIssre2014 test defectprediction
Issre2014 test defectprediction
 
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
CrashLocator: Locating Crashing Faults Based on Crash Stacks (ISSTA 2014)
 
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
 
Personalized Defect Prediction
Personalized Defect PredictionPersonalized Defect Prediction
Personalized Defect Prediction
 
Mutation Analysis vs. Code Coverage in Automated Assessment of Students’ Test...
Mutation Analysis vs. Code Coverage in Automated Assessment of Students’ Test...Mutation Analysis vs. Code Coverage in Automated Assessment of Students’ Test...
Mutation Analysis vs. Code Coverage in Automated Assessment of Students’ Test...
 
Debug me
Debug meDebug me
Debug me
 
Using Developer Information as a Prediction Factor
Using Developer Information as a Prediction FactorUsing Developer Information as a Prediction Factor
Using Developer Information as a Prediction Factor
 
A Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution TechniquesA Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution Techniques
 
Ssbse12b.ppt
Ssbse12b.pptSsbse12b.ppt
Ssbse12b.ppt
 
Experimental design
Experimental designExperimental design
Experimental design
 
Technology & innovation Management Course - Session 2
Technology & innovation Management Course - Session 2Technology & innovation Management Course - Session 2
Technology & innovation Management Course - Session 2
 
Cross-project defect prediction
Cross-project defect predictionCross-project defect prediction
Cross-project defect prediction
 
A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...
A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...
A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...
 
Transfer defect learning
Transfer defect learningTransfer defect learning
Transfer defect learning
 
An Application-Oriented Approach for Computer Security Education
An Application-Oriented Approach for Computer Security EducationAn Application-Oriented Approach for Computer Security Education
An Application-Oriented Approach for Computer Security Education
 
QUICKAR-ASE2016-Singapore
QUICKAR-ASE2016-SingaporeQUICKAR-ASE2016-Singapore
QUICKAR-ASE2016-Singapore
 
Survey on Software Defect Prediction
Survey on Software Defect PredictionSurvey on Software Defect Prediction
Survey on Software Defect Prediction
 
ICPE2015
ICPE2015ICPE2015
ICPE2015
 
Defect Prediction: Accomplishments and Future Challenges
Defect Prediction: Accomplishments and Future ChallengesDefect Prediction: Accomplishments and Future Challenges
Defect Prediction: Accomplishments and Future Challenges
 
ICSME2014
ICSME2014ICSME2014
ICSME2014
 

Similar to Requirements driven Model-based Testing

Model-based Testing of a Software Bus - Applied on Core Flight Executive
Model-based Testing of a Software Bus - Applied on Core Flight ExecutiveModel-based Testing of a Software Bus - Applied on Core Flight Executive
Model-based Testing of a Software Bus - Applied on Core Flight Executive
Dharmalingam Ganesan
 
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case StudyModel-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case StudyDharmalingam Ganesan
 
How to Actually DO High-volume Automated Testing
How to Actually DO High-volume Automated TestingHow to Actually DO High-volume Automated Testing
How to Actually DO High-volume Automated Testing
TechWell
 
Need To Automate Test And Integration Beyond Current Limits?
Need To Automate Test And Integration Beyond Current Limits?Need To Automate Test And Integration Beyond Current Limits?
Need To Automate Test And Integration Beyond Current Limits?
Ghodhbane Mohamed Amine
 
Automated Test Case Generation and Execution from Models
Automated Test Case Generation and Execution from ModelsAutomated Test Case Generation and Execution from Models
Automated Test Case Generation and Execution from Models
Dharmalingam Ganesan
 
MD Tareque Automation
MD Tareque AutomationMD Tareque Automation
MD Tareque AutomationMD Tareque
 
When do software issues get reported in large open source software - Rakesh Rana
When do software issues get reported in large open source software - Rakesh RanaWhen do software issues get reported in large open source software - Rakesh Rana
When do software issues get reported in large open source software - Rakesh Rana
IWSM Mensura
 
Automatic for the People
Automatic for the PeopleAutomatic for the People
Automatic for the People
Andy Zaidman
 
Assessing Model-Based Testing: An Empirical Study Conducted in Industry
Assessing Model-Based Testing: An Empirical Study Conducted in IndustryAssessing Model-Based Testing: An Empirical Study Conducted in Industry
Assessing Model-Based Testing: An Empirical Study Conducted in IndustryDharmalingam Ganesan
 
CV_SyedShoeb_2015
CV_SyedShoeb_2015CV_SyedShoeb_2015
CV_SyedShoeb_2015Syed Shoeb
 
Unit Testing Essay
Unit Testing EssayUnit Testing Essay
Unit Testing Essay
Dani Cox
 
Automated Testing of NASA Software
Automated Testing of NASA SoftwareAutomated Testing of NASA Software
Automated Testing of NASA SoftwareDharmalingam Ganesan
 
Spm unit v-software reliability-
Spm unit v-software reliability-Spm unit v-software reliability-
Spm unit v-software reliability-
Kanchana Devi
 
Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran Kinsbruner
QA or the Highway
 

Similar to Requirements driven Model-based Testing (20)

Model-based Testing of a Software Bus - Applied on Core Flight Executive
Model-based Testing of a Software Bus - Applied on Core Flight ExecutiveModel-based Testing of a Software Bus - Applied on Core Flight Executive
Model-based Testing of a Software Bus - Applied on Core Flight Executive
 
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case StudyModel-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
 
How to Actually DO High-volume Automated Testing
How to Actually DO High-volume Automated TestingHow to Actually DO High-volume Automated Testing
How to Actually DO High-volume Automated Testing
 
Need To Automate Test And Integration Beyond Current Limits?
Need To Automate Test And Integration Beyond Current Limits?Need To Automate Test And Integration Beyond Current Limits?
Need To Automate Test And Integration Beyond Current Limits?
 
Automated Test Case Generation and Execution from Models
Automated Test Case Generation and Execution from ModelsAutomated Test Case Generation and Execution from Models
Automated Test Case Generation and Execution from Models
 
MD Tareque Automation
MD Tareque AutomationMD Tareque Automation
MD Tareque Automation
 
Lloyd Mcallen
Lloyd McallenLloyd Mcallen
Lloyd Mcallen
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
When do software issues get reported in large open source software - Rakesh Rana
When do software issues get reported in large open source software - Rakesh RanaWhen do software issues get reported in large open source software - Rakesh Rana
When do software issues get reported in large open source software - Rakesh Rana
 
Automatic for the People
Automatic for the PeopleAutomatic for the People
Automatic for the People
 
Malinis_EngineerQA_Resume
Malinis_EngineerQA_ResumeMalinis_EngineerQA_Resume
Malinis_EngineerQA_Resume
 
Assessing Model-Based Testing: An Empirical Study Conducted in Industry
Assessing Model-Based Testing: An Empirical Study Conducted in IndustryAssessing Model-Based Testing: An Empirical Study Conducted in Industry
Assessing Model-Based Testing: An Empirical Study Conducted in Industry
 
CV_SyedShoeb_2015
CV_SyedShoeb_2015CV_SyedShoeb_2015
CV_SyedShoeb_2015
 
Unit Testing Essay
Unit Testing EssayUnit Testing Essay
Unit Testing Essay
 
Automated Testing of NASA Software
Automated Testing of NASA SoftwareAutomated Testing of NASA Software
Automated Testing of NASA Software
 
Spm unit v-software reliability-
Spm unit v-software reliability-Spm unit v-software reliability-
Spm unit v-software reliability-
 
Manualtestingppt
ManualtestingpptManualtestingppt
Manualtestingppt
 
Introduction & Manual Testing
Introduction & Manual TestingIntroduction & Manual Testing
Introduction & Manual Testing
 
Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran Kinsbruner
 

More from Dharmalingam Ganesan

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

More from Dharmalingam Ganesan (20)

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

Recently uploaded

How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
varshanayak241
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 

Recently uploaded (20)

How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 

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