Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Software Testing Strategies
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.
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
System/Software Testing Error detection and removal determine level of reliability well-planned procedure - Test Cases done by independent quality assurance.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 11: Integration- and System Testing.
Software Architecture Prof.Dr.ir. F. Gielen
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Software Testing.
Chapter 9 Testing the System, part 2. Testing  Unit testing White (glass) box Code walkthroughs and inspections  Integration testing Bottom-up Top-down.
Illinois Institute of Technology
Software Testing for Safety- Critical Applications Presented by: Ciro Espinosa & Daniel Llauger.
Testing an individual module
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The need for comprehensive software quality requirements Classification.
Outline Types of errors Component Testing Testing Strategy
Software Testing Name: Madam Currie Course: Swen5431 Semester: Summer 2K.
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
Software Testing & Strategies
Software Testing Introduction. Agenda Software Testing Definition Software Testing Objectives Software Testing Strategies Software Test Classifications.
Software System Integration
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Introduction to Computer Technology
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
System/Software Testing
CCSB223/SAD/CHAPTER141 Chapter 14 Implementing and Maintaining the System.
ECE 355: Software Engineering
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
Software Testing.
Based on D. Galin, and R. Patton.  According to D. Galin  Software quality assurance is:  A systematic, planned set of actions necessary to provide.
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Testing, Testing & Testing - By M.D.ACHARYA QA doesn't make software but makes it better.
Software Engineering Saeed Akhtar The University of Lahore.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
Integration testing Integrate two or more module.i.e. communicate between the modules. Follow a white box testing (Testing the code)
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
SOFTWARE TESTING. SOFTWARE Software is not the collection of programs but also all associated documentation and configuration data which is need to make.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
ANOOP GANGWAR 5 TH SEM SOFTWARE TESTING MASTER OF COMPUTER APPLICATION-V Sem.
Software Testing Strategies for building test group
Software Testing.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Group mambers: Maira Naseer (BCS ).
Integration Testing.
Software Testing.
Rekayasa Perangkat Lunak Part-13
Levels Of Testing and Special Tests
Chapter 13 & 14 Software Testing Strategies and Techniques
CHAPTER 2 Testing Throughout the Software Life Cycle
Lecture 09:Software Testing
Verification and Validation Unit Testing
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Chapter 10 – Software Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software Testing “If you can’t test it, you can’t design it”
Software Testing.
Chapter 11: Integration- and System Testing
Chapter 11: Integration and System Testing
Software Testing Strategies
Presentation transcript:

Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt

Increasing complexity Reliability depends on many factors Systematic and effect testing are highly necessary Full avoidance of human mistakes is not realistic Thorough testing can ensure software quality Introduction

Testing as an inverse to design Present expected results Separate development and testing teams Regression testing at every development modification Concentrate on error-prone program segments Introduction(cont.)

Big bang testing Incremental testing Black Box testing White Box testing Functional Software Testing Strategies

Functional testing of the program Anticipated functionality and desired performance Not complete software testing Representative test cases Boundary value conditions Error guessing Black Box Testing

Inner structure Cases are specified for exercising specific internal structure Examine as many logic paths as possible Logic conditions should be tested at least once Should be combined with black box testing White Box Testing

Unit Testing Integration Testing Validation Testing System Testing Software Testing Processes and Steps

White Box test cases Inspecting outputs Examine basic software unit Test each module after it is programmed Module Interface Crucial execution paths Exception handling Local data structure Boundary value testing Unit Testing

Testing of the subsystem Black box testing One module at a time Top-Down and Bottom-Up approaches Integration Testing

Starts with Root module Subordinate modules are substituted by stubs Subsystems are creating by replacing stubs Regression testing Verify all modules have been included in the subsystem Top-Down Integration Testing

Lower level modules first tested Parallel testing Driver module uses stub Driver module is replaced to form subsystem Finished when root node is reached Bottom-Up Integration Testing

Occurs after integration testing Validate that the software fulfills user requirements Uses black box testing Software defects report Standards defined in the SRS Validation Testing

Occurs after validation testing Works as a component of the overall system Objective is to find discrepancies between actual performance and expected performance Based on requirements analysis description "On-site" testing System Testing

Complex software systems The process of validation and verification requires a larger amount of testing cases. Embedded Real Time Applications Non-Functional Software Performance Testing

Meeting the time constraints. Missing the deadline for responding to an operation is deemed as a failure as it may incur system malfunction. Availability Testing

Low reliability system may cause damage. It is highly concerned with hardware and other support software Reliability Testing

Fault tolerant capability Quick recovery capability Specific fault tolerant control algorithms required Survivability Testing

Multiple requirements and OS 3rd party drivers and components Self reconfiguration Flexibility Testing

Stress testing is to test the software by pushing the system to its limits. Stress Testing

System security during all the phases of software life cycle. Virus and safety-critical automation software systems Security Testing

Comfortability with the user's experience GUI design Increase efficiency Reduce possiblity of invalid operations Usability Testing

The released software needs to be revised and upgraded during its life cycle, therefore, it is highly desirable that the software can be easily maintained. Maintainability Testing

Software Maintenance software maintenance in the entire software life cycle

After the software is installed on the user sites, it is possible that during system operations, the latent software defects are exposed, and therefore corresponding software revision is needed to ensure the proper running of the software Corrective Maintenance

Its intent is to ascertain that the released software can adapt to new requirements, which are however not in the previous design specification Adaptive Maintenance

New technologies need to be incorporated into the existing software in order to improve its performance Perfective Maintenance

The final type of software maintenance is preventive maintenance. It involves making changes to the software that makes future maintenance activities easier to carry out. Check for Software Update frequently Ability to automatically insall latest patches Preventive Maintenance

Ensuring the software’s compliance with the user requirements Software testing is indispensable in safety critical systems All functional and non functional testings needs to be implemented thoroughly Conclusion