Download presentation
Presentation is loading. Please wait.
1
Software Testing for Safety- Critical Applications Presented by: Ciro Espinosa & Daniel Llauger
2
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
3
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.
4
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.
5
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.
6
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.
7
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
8
Unit Testing Integration Testing: Top-Down Integration
9
Bottom-Up Testing:
10
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
11
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.
13
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
14
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
15
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
16
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.
17
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
18
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.
19
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.
20
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.
21
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.
22
For complex software, high maintainability becomes more necessary, as it is hard to identify the faulty lines of code without well-written documentation.
23
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
24
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
25
Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.