1 © 2015 Fraunhofer USA, Inc. Center for Experimental Software Engineering Requirement-driven Model-based Testing of the cFS’ Software Bus Service Dharma.

Slides:



Advertisements
Similar presentations
Model-Based Testing with Smartesting Jean-Pierre Schoch Sogetis Second Testing Academy 29 April 2009.
Advertisements

© SMARTESTING 2011 – This document is the property of Smartesting. It may not be reproduced in whole or in part Cliquez pour modifier le style du titre.
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Lecture 1: Overview of Computers & Programming
TTCN-3 Test Case Generation from arbitrary traces Capture & Replay Bogdan Stanca-Kaposta & Theofanis Vassiliou-Gioles (Testing Technologies)
ARCH-01: Introduction to the OpenEdge™ Reference Architecture Don Sorcinelli Applied Technology Group.
MotoHawk Training Model-Based Design of Embedded Systems.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
T-FLEX DOCs PLM, Document and Workflow Management.
Object-Oriented Analysis and Design
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
8 September Announcements  GIT Class: Friday 3-5 SN 115 (Peter Parente)  Information for Project Links PageProject Links Page  Hot Topics Teams.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
CODING Research Data Management. Research Data Management Coding When writing software or analytical code it is important that others and your future.
September 2011 At A Glance The API provides a common interface to the GMSEC software information bus. Benefits Isolates both complexity of applications.
Exemplar CFS Architecture
Yaxiong Lin TestOptimalTestOptimal, LLC TestOptimal Model-based Testing Effective Test Case Design And Test Automation Twin Cities Quality Assurance Association.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
PROCESS MODELING Chapter 8 - Process Modeling
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour.
Copyright © Siemens AG All rights reserved. Essential Criteria on MBT to Ensure Quality of Software in Industry PVR Murthy Andreas Ulrich Siemens.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
Developing Use Cases in a Group Carolyn L. Cukierman Face-to-Face Technology Conference March 27, 2000.
Static and Dynamic Analysis at JPL Klaus Havelund.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Protecting the Public, Astronauts and Pilots, the NASA Workforce, and High-Value Equipment and Property Mission Success Starts With Safety Believe it or.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
1 Lunar Reconnaissance Orbiter (LRO) CRaTER Technical Interchange Meeting C&DH Flight Software April 14, 2005.
1 © 2014 Fraunhofer USA, Inc. Center for Experimental Software Engineering Model-based Testing of a Software Bus applied on Core Flight Executive Dharmalingam.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
SAS_08_ Architecture_Analysis_of_Evolving_Complex_Systems_of_Systems_Lindvall Architecture Analysis of Evolving Complex Systems of Systems Technical Presentation.
(Business) Process Centric Exchanges
Oracle Data Integrator Procedures, Advanced Workflows.
ONE Concept. ONE Work area & lab setup ONE Goals Provide single network interface regardless of physical link Provide reliable, isochronous message transport.
Grey Box testing Tor Stålhane. What is Grey Box testing Grey Box testing is testing done with limited knowledge of the internal of the system. Grey Box.
1 UP MBT Extending the Unified Process with Model-Based Testing Fabrice Bouquet, Stéphane Debricon, Bruno Legeard and Jean-Daniel Nicolet MoDeV 2 a 2006.
A State Perspective Mentoring Conference New Orleans, LA 2/28/2005 RCRAInfo Network Exchange.
Overview of SOIS Electronic Data Sheets (EDS) & Dictionary of Terms (DoT) SOIS APP WG Fall 2012.
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall Object-Oriented Systems Analysis and Design Using UML Systems Analysis and Design,
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
SAS_08_ Architecture_Analysis_of_Evolving_Complex_Systems_of_Systems_Lindvall Architecture Analysis of Evolving Complex Systems of Systems Executive Status.
Cross Language Clone Analysis Team 2 February 3, 2011.
1. 2 Purpose of This Presentation ◆ To explain how spacecraft can be virtualized by using a standard modeling method; ◆ To introduce the basic concept.
From the customer’s perspective the SRS is: How smart people are going to solve the problem that was stated in the System Spec. A “contract”, more or less.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
SwCDR (Peer) Review 1 UCB MAVEN Particles and Fields Flight Software Critical Design Review Peter R. Harvey.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
INTRODUCTION TO COMPUTER PROGRAMMING(IT-303) Basics.
© 2009 Artisan Software Tools. All rights reserved. Testing Solutions with UML/SysML Andrew Stuart, Matthew Hause.
Douglas HoffmanCopyright © , SQM, LLC.1 Test Automation Architectures: Planning for Test Automation Florida Tech Testing 2 January 27, 2014 Douglas.
Redmond Protocols Plugfest 2016 Jinghui Zhang Office Interoperability Test Tools (Test Suites and Open Source Projects) Software Engineer Microsoft Corporation.
Critical Systems Testing Experts EXB Solutions - Contact us at cFS Workshop – Automated Test for NASA cFS David C. McComas 1, Susanne.
What is BizTalk ?
Building Enterprise Applications Using Visual Studio®
Code Generation from SEDS
Exemplar CFS Architecture
Key Ideas from day 1 slides
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Integrating CCSDS Electronic Data Sheets into Flight Software
Chapter 1 Introduction(1.1)
GSFC cFS Product Status
Test Cases, Test Suites and Test Case management systems
Presentation transcript:

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 Under Test (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-based Testing (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

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 pipe Result

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 to Visual 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 Child Tasks  Two Child Tasks 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 Parent Child Task Parent 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 Child Tasks 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  Jonathan Wilmot Contact:  