Modern Industrial Automation Software Design

Chapter 7 - Software Testing

7

Software Testing

Software quality indicates how well the software product complies with the user requirements. Safety-critical applications in industrial automation such as industrial measurement and instrument software pose unique concerns for software quality due to its demanding requirements on system performance. Effective software testing can ensure the software quality, as well as help the developer garner customer kudos for high software quality. In this chapter, various issues on industrial measurement and instrument software testing are discussed. (Code inspections and audits are complementary activities to software testing and very effective. This section addresses only testing; it will not address code inspections and review.)

The software testing comprises both functional and performance testing. The former includes conventional black-box and white-box testing, while the latter is made up of testing for software availability, reliability, survivability, flexibility, durability, security, reusability, and maintainability.

7.1 SOFTWARE AND INDUSTRIAL AUTOMATION

Modern safety-critical software-intensive industrial automation systems comprise computers and communication networks, and are becoming more and more complicated with the rapid development of technology [3]. In such systems, system reliability depends on many factors including system configuration, controller structure, and communication links. Therefore, the possibility for malfunction of complicated industrial automation software becomes much greater than the traditional one in the "island of automation." A minor defective component can have major adverse impact if the software is not thoroughly tested prior to its implementation. Embedded measurement and control systems intended for use in life-critical systems pose unique concerns for system safety and reliability. Therefore, systematic and effective software testing and maintenance are essential to ensure the quality of the software.

Large-scale software development normally experiences three major phases: requirements analysis, software design, and coding. In the recent decades, software researchers have proposed a variety of methods, which can be used to guide developers to improve the software quality and avoid making mistakes during these three phases [12-17]. Unfortunately, complete avoidance of human mistakes during software development is not realistic. The probability of error for a well-trained and experienced programmer in software code is about 1 percent; i.e., there is an error in every 100 statements written. For a novice or unqualified programmer, there are definitely many more errors in the code, particularly for modern large-scale software. On the other hand, any error in the software system is fatal to the real-world applications of industrial automation software, because even a seemingly trivial error may bring disasters to factory property or even loss of life.

Software testing is an indispensable phase in the modern software life cycle. It is the process of revealing software defects and evaluating software quality by executing the software [2, 4, 7-11]. A well-designed test case may reveal previously undetected software defects. Software testing, defects repair, and software reliability are closely related to one another. Thorough software testing can ensure the software quality by reexamining the requirements analysis, design, and coding after the software has been created.

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: Motion Control Software
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.