Establishing an Environment for Continuous Integration and Test of Flight Software



Similar documents
Use of CCSDS File Delivery Protocol (CFDP) in NASA/GSFC s Flight Software Architecture: core Flight Executive (cfe) and Core Flight System (CFS)

Continuous Integration (CI)

NuSTAR Ground Systems and Operations Approach Lessons Learned

Characterizing Performance of Enterprise Pipeline SCADA Systems

Overview of NASA s Laser Communications Relay Demonstration

The PACS Software System. (A high level overview) Prepared by : E. Wieprecht, J.Schreiber, U.Klaas November, Issue 1.

A Simple Virtual FAT File System for Wear-Leveling Onboard NAND Flash Memory

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

Model-Based Testing of Spacecraft Flight Software

Enhanced System Integration Test Automation Tool (E-SITAT) Author: Akshat Sharma

Ball Aerospace s COSMOS Open Source Test System

Overview of the Canadian Electric Field Instrument (CEFI) for Swarm

Kevin Lee Technical Consultant As part of a normal software build and release process

INTELLECT TM Software Package

Naval Research Laboratory Automated Ground Operations

Test Driven Development of Embedded Systems Using Existing Software Test Infrastructure

Massively! Continuous Integration! A case study for Jenkins at cloud-scale

Agile automated software testing into automotive V-Model process:

Software Construction

Using High Availability Technologies Lesson 12

TMT SOFTWARE REQUIREMENTS FOR LOW-LEVEL SUBSYSTEMS

Automated Testing and Buildbot

TPAf KTl Pen source. System Monitoring. Zenoss Core 3.x Network and

Juno Instrument Data Pipeline Monitoring a.k.a. Where s My Data?"

Implementing Continuous Integration Testing Prepared by:

Installing & Using KVM with Virtual Machine Manager COSC 495

Test Driven Development Part III: Continuous Integration Venkat Subramaniam

MEDIAROOM. Products Hosting Infrastructure Documentation. Introduction. Hosting Facility Overview

Christie Price Subcontract Administrator Lockheed Martin Corporation South Wadsworth Blvd. Littleton, CO 80125

SAN Conceptual and Design Basics

TELEMETRY AND COMMAND FRAME ROUTING IN A MULTI-MISSION ENVIRONMENT

Systems Engineering. Designing, implementing, deploying and operating systems which include hardware, software and people

Nokia for Business. Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation

Intelligent Power Protector User manual extension for Microsoft Virtual architectures: Hyper-V 6.0 Manager Hyper-V Server (R1&R2)

Unit Testing webmethods Integrations using JUnit Practicing TDD for EAI projects

JWST Requirement Flowdown Tree October 6, 2006

Fujitsu s DFX Application

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

JOB READY ASSESSMENT BLUEPRINT COMPUTER NETWORKING FUNDAMENTALS - PILOT. Test Code: 4514 Version: 01

Injazat s Managed Services Portfolio

Sawmill Log Analyzer Best Practices!! Page 1 of 6. Sawmill Log Analyzer Best Practices

REDUCING THE COST OF GROUND SYSTEM DEVELOPMENT AND MISSION OPERATIONS USING AUTOMATED XML TECHNOLOGIES. Jesse Wright Jet Propulsion Laboratory,

Oracle Fusion Middleware. 1 Oracle Team Productivity Center Server System Requirements. 2 Installing the Oracle Team Productivity Center Server

Architectures for Fleet Management. B. L. Kizzort. Harris Corporation, Melbourne, Florida, USA.

nanohub.org An Overview of Virtualization Techniques

Updating the International Standard Classification of Occupations (ISCO) Draft ISCO-08 Group Definitions: Occupations in ICT

The Automatic HTTP Requests Logging and Replaying Subsystem for CMS Plone

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

Applying 50 years of Aerospace Systems Engineering Lessons Learned to the Oil Field Technical Challenges of Today

NASA s Intelligent Synthesis Environment Program Revolutionizing the Agency s Engineering and Science Practice

Chapter 11, Testing, Part 2: Integration and System Testing

TREK GETTING STARTED GUIDE

Implementing Network Attached Storage. Ken Fallon Bill Bullers Impactdata

Virtualization s Evolution

A Service-based Architecture for Automated Guidance, Navigation, & Control Flight Software

SOFTWARE CONFIGURATION MANAGEMENT GUIDEBOOK

Software Defined Radio Architecture for NASA s Space Communications

DevOps Course Content

Configuring connection settings

ESATA PCI CARD. User s Manual

Automating. Administration. Microsoft SharePoint with Windows. PowerShell 2.0. Gary Lapointe Shannon Bray. Wiley Publishing, Inc.

U.S. Navy Automated Software Testing

Chapter 3 SYSTEM SCANNING HARDWARE OVERVIEW

OVERVIEW OF THE PROJECT...

DB2 9 for LUW Advanced Database Recovery CL492; 4 days, Instructor-led

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

GSAW 2015 Session 11B: Frameworks in Action A Foundation for Service Based Architectures

White Paper: Librestream Security Overview

Patriot Hardware and Systems Software Requirements

Autonomy for SOHO Ground Operations

ODBC Driver User s Guide. Objectivity/SQL++ ODBC Driver User s Guide. Release 10.2

System i and System p. Customer service, support, and troubleshooting

EXHIBIT L. Application Development Processes

Config software for D2 systems USER S MANUAL

Deploying Print and Fax Services Lesson 4

SOFTWARE ENGINEERING AT MOTOROLA SOLUTIONS. Jeff Yakey

IPSEC for Windows Packet Filtering

Purpose Computer Hardware Configurations... 6 Single Computer Configuration... 6 Multiple Server Configurations Data Encryption...

Reference Architecture. EMC Global Solutions. 42 South Street Hopkinton MA

Using PowerBroker Identity Services to Comply with the PCI DSS Security Standard

Datasheet iscsi Protocol

Managing Windows Environments with Group Policy

GOALS. Server Management Program Review / Training. To Review SMP structure, requirements, logistics. To increase quality and benefit of documentation

Dell UPS Local Node Manager USER'S GUIDE EXTENSION FOR MICROSOFT VIRTUAL ARCHITECTURES Dellups.com

HP Server Management Packs for Microsoft System Center Essentials User Guide

A Fractionated Space Weather Base at L 5 using CubeSats & Solar Sails

Software Verification for Space Applications Part 2. Autonomous Systems. G. Brat USRA/RIACS

Administering the Web Server (IIS) Role of Windows Server

Transcription:

Establishing an Environment for Continuous Integration and Test of Flight Software Robert Klar, Christopher Mangels, and Randal Harmon Southwest Research Institute

Integration and Test Integration and Test is an important part of the development process and represents a significant investment in terms of cost and time In recent organizational estimates, our software integration and testing activities have accounted for more the 40% of the total planned effort Testing tends to be done late in the project lifecycle, limiting its effectiveness Setting up a test environment for a flight subsystem can be challenging Ground Support Equipment (GSE) often is more complex than the flight subsystem itself Latent errors in flight software can be extremely costly

Improving Integration and Test Why put emphasis on improving integration and test? Since integration and testing activities represents a large part of the overall planned activities, improving Return On Investment here has a big effect. W. Edwards Deming put forth the notion that You cannot test quality into a system. This is true. However, by analyzing and understanding our testing processes, we are able to collect information that can be used to t improve our design and implementation processes. This can improve quality. Planning for integration and test should be an important part of the software development plan. Espouse the principle of Design for Test Hardware/Software resource planning is important (to avoid Marching Army costs)

Continuous Integration and Test Continuous Integration Idea that emerged in Extreme Programming community [1] With multiple developers, components for a particular software item are being developed or modified in parallel. Over time, this may result in a very difficult integration ( Integration( Hell [3]). To avoid this problem, integration is done more frequently. A plethora of tools exist today for automating continuous integration. Bitten, BuildBot, CruiseControl, TinderBox,, etc. Because there are so many choices, it is important to find one that works well for you. Continuous Test Including testing with each integration is a good practice Test early and often

Establishing an Environment Desirable Characteristics for a CI&T Environment Simple. The system needs to be simple to deploy and use. If not, it will not provide any advantage to improving the I&T process. Reusable. We have many small independent software development efforts. We do not want to reinvent the wheel with each one. Cost effective. Since we are involved in many small programs, expensive tools are difficult to procure. Open source tools and low-cost commercial tools are attractive for this reason. Tools with recurring license costs can be problematic. Maintainability. Since space programs need support for many years, we need to make choices to guard against obsolescence. Flexible. Science Instruments and Spacecraft Bus Subsystems have different needs. We need to accommodate both.

Establishing an Environment Plan for testing do not let it evolve! Resources required for testing are available at different points in the schedule. This is true of most programs. It is desirable to maintain consistency at each level of integration tion to avoid rework Testing progress needs to be measurable Number of test cases total Number of test cases completed successfully Need to be able to quickly adapt when problems are found Consider backup options for test environments Setup a regular schedule for integration and test. Nightly and On-demand were good choices for us.

CI&T Case 1: Instrument (Juno-UVS) UVS is an Ultraviolet Spectrometer for the Juno Mission (JPL). The spinning Juno spacecraft will perform science observations for about one year around 2017 from thirty highly elliptical 11-day polar orbits around Jupiter. UVS main observations will be performed +/- 3 hours of perijove each orbit. Detector Electronics Ta Radiation Shield Detector Assembly Detector Door OAP Mirror Slit Pump-out Tube Grating Scan Mirror & Assembly Aperture Door Fail-Safe Door Entrance Baffle

CI&T Case 1: Instrument (Juno-UVS) Telemetry and Command System with Python Interpreter (GSEOS) Telemetry and Command System with Python Interpreter (GSEOS) TCP Socket Serial I/F Sim Host Workstation TCP Socket Host Workstation UVS Flight Software Sim Input Keil51 Environment Terminal Server (ser2net) Serial RS485 to RS422 Converter Serial UVS Flight Software Sim Input UVS Engineering C&DH Board Plan for integration in stages. Using the same Host environment, allows for progression and regression Telemetry and Command System with Python Interpreter (GSEOS) Host Workstation TCP Socket Spacecraft Emulator (SCE) Serial UVS Flight Software UVS Engineering or Flight Model High-speed Serial UVS Detector Electronics Analog Signal Generator

CI&T Case 1: Instrument (Juno-UVS) Build environment is simple C language and make Our CI&T environment should also be simple Evaluated CI tools such as CruiseControl and Ant Not a good fit Instead chose to base CI on Python and cron,, and CVS Integration and test by Nightly Script Rebuilds software and starts execution of Test Scripts Runs until stopped Runs Test Scripts in sequence and out of nominal sequence

CI&T Case 1: Instrument (Juno-UVS) Log files from Nightly Script are analyzed in the morning 2009/11/03 03:59:26:TM-HK: 669760: Command accepted: Control Pixel Stimulator 2009/11/03 03:59:26:TM-HK: 669760: Command executed 2009/11/03 03:59:26:TM-HK: 669760: Detector STIM activated 2009/11/03 03:59:26:TSTOK: : 010: all commands executed 2009/11/03 03:59:26:TC : : Control Pixel Stimulator(Stim Off): 0xb3000000 2009/11/03 03:59:34:TM-HK: 669768: Command accepted: Control Pixel Stimulator 2009/11/03 03:59:34:TM-HK: 669768: Command executed 2009/11/03 03:59:34:TM-HK: 669768: Detector STIM deactivated 2009/11/03 03:59:34:TSTOK: : 020: all commands executed 2009/11/03 03:59:34:TFAIL: 669768: 030: No STIM counts available cannot test event count rates. 2009/11/03 03:59:39:TSEQ : : >>>:======================================================================== 2009/11/03 03:59:39:TSEQ : : >>>: Test Series Summary: nightly_tests has been executing for 92 minutes 2009/11/03 03:59:39:TSEQ : : >>>: Summary results: 2009/11/03 03:59:39:TSEQ : : >>>: 56 Failures and 12 Warnings in 33 Tests 2009/11/03 03:59:39:TSEQ : : >>>: 82.50% tests complete (33 of 40) 2009/11/03 03:59:40:TSEQ : : >>>:======================================================================== 2009/11/03 03:59:40:TSEQ : : >>>:======================================================================== 2009/11/03 03:59:40:REMRK: : Attempting to start test sequence: s 0160_checkmem 2009/11/03 03:59:40:REMRK: : Test sequence started: 0160_checkmem 0_checkmem

CI&T Case 2: Central Instrument Data Processor (MMS-CIDP) Magnetospheric MultiScale (MMS) Mission Constellation of 4 identically spacecraft in variably spaced tetrahedron (1 km to several R E ) Ground contacts must be multiplexed in time in order to retrieve data from all 4 spacecraft each day Overall Objectives: To discover the detailed physics of the reconnection process including its controlling factors, its spatial distribution, and its temporal behavior. http://stp.gsfc.nasa.gov/missions/mms/mms.htm

CI&T Case 2: MMS-CIDP Layered Software Architecture benefits testing Architecture can be verified in layer Nightly Script development is in-progress also based on Python

CI&T Case 2: MMS-CIDP Telemetry and Command System with Python Interpreter (GSEOS) TCP Socket SpW I/F Sim Host Workstation (Linux) CIDP FSW Sim Input SpaceBel SPARC Sim. Plan for integration in stages. Using the same Host environment, allows for progression and regression Telemetry and Command System with Python Interpreter (GSEOS) Host Workstation (Linux) TCP Socket CIDP FSW Input Sim / C2I I/F CIDP to Inst. I/f Card (PCI) C2I Worksation (Linux) Loopback Need to configuration manage test environment software as well as the Flight Software! We use CVS Telemetry and Command System with Python Interpreter (GSEOS) FSW-09, Host Workstation November 2009 (Linux) TCP Socket (IGSE Prot.) TCP Socket S/C Simulator Instrument Simulator SpW Serial Serial Serial CIDP FSW Engineering or Flight CIDP

Challenges Ahead Automated Continuous Testing generates large volumes of test data Data analysis tools are necessary to make use of the test results in a timely manner Currently test development significantly lags code development How can I test it if I have not built it yet? Looking for applications of Test-Driven Development [2] Test Code is developed before a feature is implemented Test is run to verify a FAIL Feature is implemented and test run again Currently good quality simulation environments are expensive Adaptations of public domain emulators (Bochs( Bochs,, QEMU, etc.) provide promise to reducing costs here making complete virtual software environments more affordable Want to better integrate with Observatory I&T

Questions?

References 1. Martin Fowler. http://www.martinfowler.com/articles/continuousintegration.html ttp://www.martinfowler.com/articles/continuousintegration.html. 2. Kent Beck. Test-Driven Development: By Example.. Addison- Wesley. 2002. 3. Ward Cunningham. http://c2.com/cgi/wiki?integrationhell.