Automating Software Module Testing for FAA Certification Usha Santhanam The Boeing Company.

Slides:



Advertisements
Similar presentations
Software Testing. Quality is Hard to Pin Down Concise, clear definition is elusive Not easily quantifiable Many things to many people You'll know it when.
Advertisements

Testing Workflow Purpose
Test Yaodong Bi.
FAA-Qualifiable Ada Subset Compiler V. Santhanam Boeing.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Lecture 11 Instructor Paulo Alencar.
AN INTRODUCTION TO PL/SQL Mehdi Azarmi 1. Introduction PL/SQL is Oracle's procedural language extension to SQL, the non-procedural relational database.
David Woo (dxw07u).  What is “White Box Testing”  Data Processing and Calculation Correctness Tests  Correctness Tests:  Path Coverage  Line Coverage.
Integration testing Satish Mishra
Informatics 43 – April 30, What is a test case? An input to a system, and the correct output. An “input” may be complex. Example: – What is an input.
Lusine Sarkisian Automated Software Module Testing for FAA Certification.
Program Design and Development
Logical Operators Java provides two binary logical operators (&& and ||) that are used to combine boolean expressions. Java also provides one unary (!)
CS 425/625 Software Engineering Software Testing
Testing an individual module
Guide To UNIX Using Linux Third Edition
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Software Testing & Strategies
Chapter 13 & 14 Software Testing Strategies and Techniques
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Benefits of PL/SQL. 2 home back first prev next last What Will I Learn? In this lesson, you will learn to: –List and explain the benefits of PL/SQL –List.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Designing a Discrete Event Simulation Tool Peter L. Jackson School of Operations Research and Industrial Engineering March 15, 2003 Cornell University.
© Andrew IrelandSoftware Design F28SD2 Software Design (F28SD2): Life-Cycle Perspective - Part 2 Andrew Ireland School of Mathematical & Computer Sciences.
Chapter 6 : Software Metrics
Lecture Set 5 Control Structures Part D - Repetition with Loops.
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
Testing Workflow In the Unified Process and Agile/Scrum processes.
This chapter is extracted from Sommerville’s slides. Text book chapter
Chapter 1 Introduction to Structured Design. Introduction  System  A combination of people, equipment, and procedures that work together to perform.
Cohesion and Coupling CS 4311
Unit Testing 101 Black Box v. White Box. Definition of V&V Verification - is the product correct Validation - is it the correct product.
Copyright © 2010 Certification Partners, LLC -- All Rights Reserved Perl Specialist.
Sylnovie Merchant, Ph.D. MIS 161 Spring 2005 MIS 161 Systems Development Life Cycle II Lecture 5: Testing User Documentation.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Programming in C++ Dale/Weems/Headington Chapter 1 Overview of Programming and Problem Solving.
Black Box Testing : The technique of testing without having any knowledge of the interior workings of the application is Black Box testing. The tester.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
Dynamic Testing.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
CODING VOCABULARY.  Binary  A number system based on 2  Hexadecimal  A number system based on 16  Domain  An internet location registered with the.
Text TCS INTERNAL Oracle PL/SQL – Introduction. TCS INTERNAL PL SQL Introduction PLSQL means Procedural Language extension of SQL. PLSQL is a database.
1 Testing Fortran Applications with Cleanscape Grayboxx Monty Swaiss Chief Technical Officer Cleanscape Software International
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
1 Structured Programming Arab Academy for Science and Technology CC112 Dr. Sherif Mohamed Tawfik The Course.
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Structured Programming The Basics
C++ Plus Data Structures
Software Testing Techniques
Coupling and Cohesion 1.
Chapter 13 & 14 Software Testing Strategies and Techniques
Scripts & Functions Scripts and functions are contained in .m-files
Types of Testing Visit to more Learning Resources.
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Chapter 1 Software Engineering.
Fundamental Test Process
Chapter 13 Quality Management
Chapter 1 Introduction(1.1)
Chapter 10 – Software Testing
Integration Testing CS 4311
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Lecture 14: Testing Testing used to verify object behavior through designed test suites Can test Classes – “unit” testing Object interactions – “integration”
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Software Testing.
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Automating Software Module Testing for FAA Certification Usha Santhanam The Boeing Company

Automating Software Module Testing for FAA Certification Challenges in code based software testing FAA certification testing Test Set Editor (TSE) tool set and process Regression testing Benefits of TSE Limitations of TSE Summary

Challenges in Code Based Software Testing Software complexity and accelerated development schedules make avoiding defects difficult Untested code in user environment Difficulty of accurately capturing and analyzing the sequence of events that occur during program execution

FAA Certification Testing Structural coverage is often not achieved through requirements based testing alone Testing each module in isolation provides the desired coverage The three levels of structural coverage to deal with are statement coverage, decision coverage, and modified condition and decision coverage (MCDC)

Structural Coverage Statement coverage: execute each source level statement at least once Decision coverage: take each execution branch at least once MCDC: designed to demonstrate the independence of individual conditions that constitute a complex decision

TSE Tool Set and Process TSE is designed to achieve shorter turnaround time and cut cost during regression testing TSE is domain-independent and removes the language-dependent test driver chores TSE requires the test engineer to construct the test cases, but the rest of the testing process is automated

TSE Tool Set and Process (cont.) Tasks of testing a module for structural coverage are –Identifying inputs and outputs of a module (or collection of modules) –Selecting test cases and tagging them with the requirements they address –Constructing a test driver and stubs for subprograms called by the module under test

TSE Tool Set and Process (cont.) –Compiling and running the tests –Analyzing coverage TSE assists the tester with all these tasks except the selection of the test cases.

Example: Procedure Get_End in Package Io package Io is Debugging : Boolean := False; procedure Get_End; end Io; with Text_Io; package body Io is K : constant := 1024; Max_Line_Length : constant := 16*K; Line : String (1.. Max_Line_Length); procedure Error (Msg : String) is begin null; end Error; procedure Get_Line is begin null; end Get_Line; procedure Get_End is begin if Line (1.. 4) = ".end" then Get_Line; else Error ("Missing.END, assume here."); end if; end Get_End; end Io;

TSE_Tools.tcl

Regression Testing All test cases are self-checking A batch file is used to run the test files through the TSE testing process A batch log file is used to check for failures Failed tests are examined and justified or updated

Benefits of TSE Tests can be developed by engineers who are not necessarily expert programmers in Ada TSE includes a tool to analyze the source code and identify inputs and outputs of a given module Provides coverage information

Benefits of TSE (cont.) TSE tests are easy to maintain due to uniformity of test definition files TSE tests are repeatable with no manual interaction necessary TSE tests can be executed on host or target platform using different support packages

Productivity Improvements Based on our experience we have seen a range of 1:5 to 1:10 productivity advantage. – Depends on the complexity of the module

Estimate of TSE Based Testing We have developed a tool that estimates the number of hours needed to test a module with TSE Based on Statement count, number of Ifs, Cases, Loops, Exits, Logical operators, short circuit control forms, and stub calls The Get_End procedure estimated testing time is 7 hours

Estimate of Manual Testing Estimated size of the get_end test driver is 90 SLOC –Including main driver and stubs Programmer productivity for the test code development is 2 SLOC per hour (Hihm) This yields the productivity improvement of 1:6.5 for get_end procedure

Limitations of TSE It is not possible to construct one generic module test to verify all instantiations –Handled on an instantiation by instantiation basis Tasking is difficult to test because tasks run in independent parallel threads –Each subprogram can be tested independently regardless of the number of tasks sharing it

Limitations of TSE (cont.) For modules using private type parameters or returning private type, construction of external test driver is awkward –Embed the test driver in the body of the package that defines the limited private type Nested subprogram testing not available –Requires the test driver to be nested –Must be tested in the context of enclosing subprogram

Summary of TSE Benefits Minimizes the need for programming knowledge Cuts testing effort several fold over manual approach Minimizes cost of retesting Allows us to meet FAA/DO-178B requirements in cost effective manner