Software Testing for Safety- Critical Applications Presented by: Ciro Espinosa & Daniel Llauger.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Making the System Operational
Test process essentials Riitta Viitamäki,
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
1 Software Testing and Quality Assurance Lecture 33 – Software Quality Assurance.
Chapter 9 Testing the System, part 2. Testing  Unit testing White (glass) box Code walkthroughs and inspections  Integration testing Bottom-up Top-down.
1 Software Testing and Quality Assurance Lecture 31 – Testing Systems.
Chapter 13 Embedded Systems
1 Testing. 2 About Testing  The reason the program is in testing is that it probably doesn’t work!  We test to find bugs before our users and hope that.
1 Chapter 13 Embedded Systems Embedded Systems Characteristics of Embedded Operating Systems.
Outline Types of errors Component Testing Testing Strategy
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
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.
Introduction to Software Testing
Software Testing & Strategies
Software Testing Introduction. Agenda Software Testing Definition Software Testing Objectives Software Testing Strategies Software Test Classifications.
©Ian Sommerville 2006Critical Systems Slide 1 Critical Systems Engineering l Processes and techniques for developing critical systems.
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Unit 3a Industrial Control Systems
Software Dependability CIS 376 Bruce R. Maxim UM-Dearborn.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's.
System Testing There are several steps in testing the system: –Function testing –Performance testing –Acceptance testing –Installation testing.
System Implementation. System Implementation and Seven major activities Coding Testing Installation Documentation Training Support Purpose To convert.
CCSB223/SAD/CHAPTER141 Chapter 14 Implementing and Maintaining the System.
ECE 355: Software Engineering
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
Software Testing. Introduction Testing is often left to the end of the project which is generally not a good idea. Testing should be conducted throughout.
Chapter 1: Introduction to Software Testing Software Testing
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Planning and Tracking Software Quality.  What Is Software Quality?  Causes of Software Defects  What is Quality Assurance?  Improving the Software.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
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 and Quality Assurance Lecture 33 – Software Quality Assurance.
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.
Ch6: Software Verification. 1 Decision table based testing  Applicability:  Spec. is described by a decision table.  Tables describe:  How combinations.
Software Testing Testing types Testing strategy Testing principles.
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.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Software Testing and Quality Assurance Software Quality Assurance 1.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
Agenda for today: The Unified Software Development Process: Test (Note) Test The purpose of testing Artifacts Test in the sw Life Cycle Workers Test procedure.
Test Plan: Introduction o Primary focus: developer testing –Implementation phase –Release testing –Maintenance and enhancement o Secondary focus: formal.
 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.
Software Engineering Lecture 8: Quality Assurance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Topic: Reliability and Integrity. Reliability refers to the operation of hardware, the design of software, the accuracy of data or the correspondence.
Embedded System Design and Development Introduction to Embedded System.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
ANOOP GANGWAR 5 TH SEM SOFTWARE TESTING MASTER OF COMPUTER APPLICATION-V Sem.
ISQB Software Testing Section Meeting 10 Dec 2012.
Software Testing Strategies for building test group
Integration Testing.
Software Requirements
Chapter 10 Systems Implementation and Operation
Software Testing Strategies
Presentation transcript:

Software Testing for Safety- Critical Applications Presented by: Ciro Espinosa & Daniel Llauger

Agenda  Introduction  Software and Industrial Automation  Software Testing Strategies Black-Box Testing White-Box Testing  Software Testing Processes and Steps Unit Testing Integration Testing  Top-Down Integration Testing  Bottom-Up Integration Testing  System Testing  Software Performance Testing Availability, Survivability, Flexibility, Stress, Security, Usability and Maintainability Testing  Software Maintenance  Conclusion

Introduction  Safety-critical applications in industrial automation have unique concerns for software quality (demanding requirements on system performance).  Software testing consists in functional and performance testing.

Software and Industrial Automation  The possibility for malfunction of complicated industrial automation software becomes much greater than the traditional one.  Embedded measurement and control systems in life-critical systems have unique concerns for system safety and reliability.

 Any error in the software system is fatal to the real- world applications of industrial automation software  Basic testing principles: Present expected testing results when designing test cases. Separate sw testing team from sw development team. Design invalid test cases. Perform regression testing each time sw under-test is revised. Tester should concentrate on error-prone program segments.

Software Testing Strategies  Black-Box Testing  White-Box Testing  In practical applications, the tester often combines black-box testing and white-box testing to conduct a more thorough test of the software.

Software Testing Processes and Steps  Testing real-time & embedded software is difficult  50 % of overall work in life cycle dedicated to testing and optimizing  Complexity – large number of potential paths  Real-time constraints exacerbate testing

 Unit Testing  Integration Testing: Top-Down Integration

 Bottom-Up Testing:

System testing  Find discrepancies between actual SW performance to its expected performance by comparing it w/ requirements  Test cases created based on requirement analysis description  On-site testing after SW installed with other equipment

Software Performance Testing  Real-time monitoring & control system  Sensor measures monitored values  Manner in which error between actual & target measurement to be corrected determined by microprocessor-based controller  Actuator executes command to drive control variable close to target values.

Availability testing  Applies to time-critical, on-time, & real-time applications  Real-time SW needs to be designed to meet time constraints  Must meet deadline in responding to an operation  Control correctness and real-time restrictions can be considered simultaneously in design process

Availability testing (cont.)  Example: Chemical plant  Alarm MGMT SW responsible for triggering a siren (alarm) when abnormal process occurs  If it cannot perform alarm operation quickly, then disaster or production incident occurs

Reliability testing  Measures the likelihood for failure-free SW operations  Tests ability to operate w/o failure in environment designed for  Capture any abnormal status  Why is this testing needed? Low reliability SW can destroy industrial equipment or have a loss of life To guarantee quality in manufactured products

Survivability Testing  Distributed and embedded real-time software system should be able to recover from the degraded performance.  Fault-tolerant control algorithms should be incorporated into the software design to maintain software performance in the presence of component failures.

Flexibility Testing  In the industrial automation area, the sw needs to work with heterogeneous hardware drivers and software components provided by different manufactures and vendors.  Today, open architecture-based software is gradually replacing traditional, proprietary software architecture

Stress Testing  Stress testing tests the software by pushing the system to its limits.  Stress testing may find both hardware and software defects.  Stress testing can be used to examine what types of system failures will occur when the system is heavily overloaded.

Security Testing  Security is an increasingly important issue in industrial automation software systems, especially with the proliferation of Internet-based industrial applications.  System security needs to be considered during all phases of the software life cycle.

Usability Testing  Usability tests how well the user operates the software system and likes doing so.  It is crucial to design the software with high usability  GUI design is an important component in system usability.

Maintainability Testing  High maintainability enables the released software to be revised in the presence of errors during system operations and makes the software expansion and change easy for new applications.  Maintainability should be considered from the very start of the life cycle.

 For complex software, high maintainability becomes more necessary, as it is hard to identify the faulty lines of code without well-written documentation.

Software Maintenance  Establish safe & well controlled mechanism for update and modification  ID unexposed defects after installation  Adapt to changing user requests & to different operating conditions  Corrective maintenance  Adaptive maintenance  Perfective maintenance  Preventative maintenance

Conclusion  In the testing of industrial automation software systems, performance, flexibility, reliability, survivability, and usability should also be tested thoroughly.  Testing, code inspections and reviews are needed to prevent loss of life or industrial accidents

Questions?