Software Testing Conference (STC) Leveraging Requirement Based Test Practices For Non-Safety Critical Software Systems

Similar documents
DO-178B 김영승 이선아

VectorCAST Presentation AdaEurope 2017 Advanced safety strategies for DO178C certification Massimo Bombino, MSCE

The Verification Company. Software Development and Verification compliance to DO-178C/ED-12C

AIRBORNE SOFTWARE VERIFICATION FRAMEWORK AIMED AT AIRWORTHINESS

This document describes the overall software development process of microcontroller software during all phases of the Company Name product life cycle.

Software Quality Engineering Courses Offered by The Westfall Team

Software Quality Engineering Courses Offered by The Westfall Team

Test Workflow. Michael Fourman Cs2 Software Engineering

Work Plan and IV&V Methodology

1. Why is Testing Necessary? 2. What is Testing? 3. Seven Testing Principles

System Verification Helps Validate Complex Integrated Systems. American Bureau of Shipping (ABS) RELIABILITY SESSION.

Application of DO-254 Level A (Appendix B) Design Assurance Objectives of. Elemental Analysis. Mixed Signal (Analog/Digital) Discrete Circuitry

VHDL Introduction. EL 310 Erkay Savaş Sabancı University

BACKGROUND OF TESTING 4. The fundamental principles of the testing are as follows.

Dependable Technologies For Critical Systems. Software Verification. 22 nd May Technologies Ltd 2011 Critical Software

Software Safety and Certification

Testing. And Software Product Management. Autumn 2017 CSM14104 Software Product Management 1

Introduction to Software Engineering

feature Validating and Improving Test-Case Effectiveness

Agenda. Introduction. The Impact of Requirement Issues on Testing. Introduction. What are common requirements issues? What is the impact on testing?

Formal Methods in Aerospace: Constraints, Assets and Challenges. Virginie Wiels ONERA/DTIM

Automated System Validation By: Daniel P. Olivier & Curtis M. Egan

9. Verification, Validation, Testing

Chapter 26. Quality Management

SOFTWARE DEVELOPMENT STANDARD

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Testing. CxOne Standard

An Application of Causal Analysis to the Software Modification Process

Requirements Gathering using Object- Oriented Models

Medical Device Software under IEC George Romanski

Independent Verification and Validation (IV&V)

WORK PLAN AND IV&V METHODOLOGY Information Technology - Independent Verification and Validation RFP No IVV-B

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

ISO 9001:2000 Drives Process Changes at Siemens

Testing 2. Testing: Agenda. for Systems Validation. Testing for Systems Validation CONCEPT HEIDELBERG

CMMI-DEV V1.3 CMMI for Development Version 1.3 Quick Reference Guide

codebeamer ALM supports Aviation Development and Regulatory Compliance (DO-178B/C, DO-254, and more)

Software Development Life Cycle QA&Testing. January 2014 Alain Chacun all rights reserved 1

Spaceflight Software Architecture Analysis Techniques

Functional Architecture as the Core of Model-Based Systems Engineering

Best Practice Information Aids for CMMI SM -Compliant Process Engineering

Contractual Aspects of Testing Some Basic Guidelines CONTENTS

R.POONKODI, ASSISTANT PROFESSOR, COMPUTER SCIENCE AND ENGINEERING, SRI ESHWAR COLLEGE OF ENGINEERING, COIMBATORE.

ISTQB Sample Question Paper Dump #11

Software System Integration. Chapter 8 Software testing 1

Focus Area Level Report Including Knowledge and Skills, and Performance Indicators

Avoiding Top Mistakes in Safety Critical Software Development

Focus Area Level Report Including Knowledge and Skills, and Performance Indicators

Research on software systems dependability at the OECD Halden Reactor Project

Testing. Testing is the most important component of software development that must be performed throughout the life cycle

Test Management: Part II. Software Testing: INF3121 / INF4121

INTRODUCTION. It is the process used to identify the correctness, completeness and quality of developed computer software.

IBM Rational RequisitePro

ISTQB CTFL BH0-010 Exam Practice Question Paper

Certifiable Production Code Development

Software Engineering & Architecture

A Review Paper on Software Testing

GAMP Guideline & Validation Documentation

HP ALM: Less Test Cases, More Coverage September 17, 2014

Chapter 6: Software Evolution and Reengineering

Software Verification Using COTS Tools Issues and Solutions Surrounding GATM and DO-178B

Verification & Validation of an Autonomous Quadcopter System

SOLUTION BRIEF CA AGILE REQUIREMENTS DESIGNER FOR CA AGILE CENTRAL. CA Agile Requirements Designer for CA Agile Central

Large Federal Agency Leverages IV&V to Achieve Quality Delivery for Critical Modernization Initiative

CHAPTER 5 INFORMATION TECHNOLOGY SERVICES CONTROLS

STATEMENT OF WORK SMALL SPACECRAFT PROTOTYPING ENGINEERING DEVELOPMENT & INTEGRATION (SSPEDI) Space Solutions (SpS)

Capability Maturity Model the most extensively used model in the software establishments

Space Product Assurance

Chapter 6. Software Quality Management & Estimation

Towards Systematic Software Reuse in Certifiable Safety-Critical Systems

DEVELOPING SAFETY-CRITICAL SOFTWARE REQUIREMENTS FOR COMMERCIAL REUSABLE LAUNCH VEHICLES

ISTQB Certified Tester. Foundation Level. Sample Exam 1

SE420 Software Quality Assurance

Analyzing and Enhancing Code Coverage Based Test Case Selection and Prioritization Anshuman Malhotra 1 Harish Kumar 2

ON THE USE OF BASE CHOICE STRATEGY FOR TESTING INDUSTRIAL CONTROL SOFTWARE

IBM Rational Extensions for SAP Applications Application lifecycle management for consistent governance

T52-Software Engineering

Applying the Personal Software Process (PSP) sm with Ada

Developing Medical Device Software to be compliant with IEC Amendment 1:2015

ISO 14001:2015 Updates and Key Themes

Risk-Based Testing: Analysis and Strategy. Presented at Quality Assurance Institute QUEST Conference Chicago, Ill., 2009

Implement Effective Computer System Validation. Noelia Ortiz, MME, CSSGB, CQA

Software Development Life Cycle:

Software Reliability and Testing: Know When To Say When. SSTC June 2007 Dale Brenneman McCabe Software

CMMI-SVC V1.3 CMMI for Services Version 1.3 Quick Reference Guide

Software Engineering. Lecture # 22

Functional Safety: ISO26262

Introduction of RUP - The Rational Unified Process

A Guide to the Business Analysis Body of Knowledge (BABOK Guide), Version 2.0 Skillport

Introduction. Fundamental concepts in testing

Software Testing Life Cycle

Appendix C: MS Project Software Development Plan and Excel Budget.

ENCODING, PRINTING & VALIDATING RFID TAGS WITH PORTALTRACK

Quality Assurance Activities to Support Product Improvement

Software Architecture and Engineering Requirements Elicitation Peter Müller

<Name of Project> Test Plan. Project Management Framework

Requirements Engineering: Part I. Software Requirements & Project Management CITS3220

ISTQB-Level1 ASTQB. American Software Testing Qualifications Board Level 1

Transcription:

Software Testing Conference (STC) 2012 Leveraging Requirement Based Test Practices For Non-Safety Critical Software Systems Venkata Tulasiramu P 20-OCT-2012 1 1

Agenda Introduction Generic RBT Procedure RBT Process in Safety Critical System Software Requirement based Test case Selection Example- RBT test case Selection RBT Methodology- Safety Critical Systems Safety Critical Vs Non Safety Critical RBT for Non Safety Critical Systems Cost to Fix an Error Advantages- Proposed RBT Conclusion 2 2

Introduction A safety critical system is the system whose failure may result in death or serious injury to people or loss/ severe damage to equipment or environmental harm. The best examples of safety critical systems are defense, aerospace and medical systems. A non-safety critical system is the system whose failure may result in reduced efficiency of the system or loss of the asset. The best examples of non-safety critical systems are entertainment systems and any application which would not harm the people and environment. 3 3

What is RBT? RBT verifies the software against its requirements, which assures the customer that requirements are incorporated successfully in the software. RBT is mandated for safety critical systems. 4 4

Generic RBT Procedure Define Test Exit Criteria Design Test Cases Develop Test Procedures Execute Tests Review Test Results Review Requirement Traceability Matrix Track Defects Maintain Test Cases 5 5

RBT Process in Safety Critical System Software The first step is to develop functional and robustness tests to completely test and verify the implementation of the software requirements. The second step is to measure Requirements Coverage and Structural Coverage. RBT is deployed at different levels of testing 6 6

Typical levels of RBT 7 7

Hardware-Software Integration Testing The objective of requirements-based hardware/software integration testing is to ensure that the software in the target computer will satisfy the high-level requirements. Typical errors revealed by this testing method include: Incorrect interrupt handling. Failure to satisfy execution time requirements. Incorrect software response to hardware transients Data bus and other resource contention problems. For example, memory mapping. Inability of built-in test to detect failures. Errors in hardware/software interfaces. 8 8

Software-Software Integration Testing The objective of requirements-based software integration testing is to ensure that the software components interact correctly with each other and satisfy the software requirements and software architecture. Typical errors revealed by this testing method include: Incorrect initialization of variables and constants. Parameter passing errors. Data corruption, especially global data. Inadequate end-to-end numerical resolution. Incorrect sequencing of events and operations. 9 9

Unit Testing The objective of requirements-based low-level testing is to ensure that the software components satisfy their low-level requirements. Typical errors revealed by this testing method include: Failure of an algorithm to satisfy a software requirement. Incorrect loop operations. Incorrect logic decisions. Failure to process correctly legitimate combinations of input conditions. Incorrect responses to missing or corrupted Figure 2 input data. 10 10

Requirements Coverage Analysis The objective of this analysis is to determine how well the RBT verified the implementation of the software requirements. This analysis may reveal the need for additional RBT cases. RBT coverage analysis shows the following: Test cases exist for each software requirement. Test cases satisfy the criteria of normal and robustness testing. 11 11

Structural Coverage Analysis The objective of this analysis is to determine which code structure was not exercised by the requirements-based test procedures. The unexecuted code structure may be the result of: Shortcomings in RBT cases or procedures Inadequacies in software requirements Dead code Deactivated code 12 12

Requirement based Test case Selection RBT case selection includes: Normal range test cases and Robustness (abnormal range) test cases. The specific test cases should be developed from the software requirements and the error sources inherent in the software development processes. 13 13

Example- RBT test case Selection Requirement001: Software SHALL set FAULT1, if fault1_persistence_counter is greater than 5. Supported data for Requirement001: Assume as per Data Dictionary Data type for fault1_persistence_counter is UINT16. Range for fault1_persistence_counter is [0, 5] 14 14

..Contd Test data derivation: UINT16 data type range: [0, 0xFFFF] fault1_persistence_counter range: [0, 5] Normal range: [0, 5] Robust range: [6,0xFFFF] Normal test data: fault1_persistence_counter = 0 (Lower Boundary) fault1_persistence_counter = 5 (Upper Boundary) fault1_persistence_counter = 2 (Middle value any) As fault1_persistence_counter is compared with 5 15 15

..Contd fault1_persistence_counter should be exercised for following values to ensure the relational operator testing. fault1_persistence_counter = 4(5-1) fault1_persistence_counter = 5(5) fault1_persistence_counter = 6 (5+1) Robustness test data: fault1_persistence_counter = 6 (Lower Boundary) fault1_persistence_counter = 0xFFFF (Upper Boundary) Table 1 shows the test data for fault1_persistence_counter 16 16

..Contd Below Table shows the test data for fault1_persistence_counter Variable Nominal range Nominal test values Robustness range Robustness test values fault1_per sistence_ Counter [0, 5] 0,4,5 [6, 0xFFFF] 6, 0xFFFF 17 17

RBT Methodology- Safety Critical Systems 1. Understand the requirements 2. Review the requirements 3. Partition the requirements for testing 4. Generate one-line test cases 5. Review the one-line test cases 6. Design the test cases 7. Review the test cases 8. Design the test procedures 9. Review the test procedures 10. Test execution 11. Test results review 12. Generate traceability matrix 13. Review the traceability matrix 18 18

Safety Critical Vs Non Safety Critical The succinct difference between safety critical system software and non-system critical system 1 is as follows. Safety critical software involving the potential for loss of life due to software failure. Non-safety critical software involving the potential for aborting a mission due to software failure. Goal of safety critical software is containment, whereas a primary aim of non-safety critical software is efficiency and other quality attributes 19 19

RBT for Non Safety Critical Systems Developers of non-safety critical systems can also benefit from the proposed RBT methodology (13 step process), which is used for safety critical systems. Software development often proves far more expensive than expected; bugs discovered late in the development cycle costs more and risk the integrity and safety of a system, especially if the software has been deployed. Obviously, careful planning, organization and a team with the correct skills will help. 20 20

..Contd Evidence indicates that the earlier a defect is discovered in development the less impact it has on both the timescale and cost. It is a general perception in non-safety critical system development, that use of the above specified process may involve huge cost and time; hence we tend to escape this process. If cost is the only factor which prevents following the suggested approach it can be tailored for non-safety critical systems. A lightweight process can be tailored for non-safety critical systems by eliminating Step3 (partition the requirements for testing), Step4 (generate one-line test cases) and Step5 (review the one-line test cases). 21 21

Cost to Fix an Error Phase Cost ratio Requirements 1 Design 5 Coding 10 Unit/Integration Testing 20 System/Acceptance Testing 50 Production 100 22 22

Advantages- Proposed RBT Reduces the cost to deliver by early fault detection. Reduces the time to deliver by allowing parallel testing with the development activities. Improves the overall quality by early fault detection. Minimizes rework by early fault detection. Delivers maximum coverage with the optimized number of test cases. Provides quantitative test progress metrics. 23 23

Conclusion The best practices followed in safety critical systems would benefit the non-safety critical systems in terms of cost, time and quality, if they are to be applied. Introducing RBT best practices is usually more realistic for non-safety critical systems. The suggested best practices helps in driving quality requirements and early fault detection is likely to reduce the development cost. 24 24

References 1. P. G. Gutgarts and A. Termin, Security-Critical versus Safety-Critical Software, Proc. of the IEEE Homeland Security Technology Conference, Waltham, MA, pp. 507 511, November 2010 2. 'Software considerations in airborne systems and equipment certifcation'. Document RTCA/DO-178B, RTCA Inc.,December 1992. 3. Requirements Based Testing Process Overview 2009 Bender RBT Inc 4. Requirements-based testing: an overview Mogyorodi, G."Technology of Object-Oriented Languages and Systems, 2001. TOOLS 39. 39th International Conference and Exhibition on Digital Object Identifier: 10.1109/TOOLS.2001.941681" Publication Year: 2001, Page(s): 286-295 5. "Requirement-based test case generation and prioritization" Salem, Y.I.; Hassan, R. Computer Engineering Conference (ICENCO), 2010 International Digital Object Identifier: 10.1109/ICENCO.2010.5720443 Publication Year: 2010, Page(s): 152 157 25 25

Q&A 26 26

Thank You 27 27

28 28