By Jamie Solt, Senior Product Engineer, Yaskawa America, Inc.
One of the first items considered when developing a product should be product testing.
Product testing is one of the last steps performed before a product is released. The testing phase can be monotonous, expensive and time consuming. Development team members may view it as providing little benefit to the creation of the product, but if a product is released without adequate testing, product quality may suffer.
After many years of experience at Yaskawa America, I’ve learned that product testing should be one of the first items considered when developing a product. Yaskawa has shown me— through its concentrated attention to quality, constant striving for customer satisfaction, and strict conformance to ISO 9001:2008—that product testing should be considered early on in the development process.
Conducting the testing process during the early phases of product development fits with many of the new development methods being taught today, such as the agile development process for creating new software products. It also helps create a high-quality product, leading to strong continuing relationships with customers.
At the very beginning of a new product’s life, we develop a strategy of what its features will be and how best to test those features. Initially, the outcome of these strategy sessions was to produce plans and documents that relied heavily on manual testing, as we didn’t have the luxury of automated test. The tools and technology of the time led us to use written scripts that were printed out and executed by test engineers or, more likely, product or development engineers.
This method produced test results that were inconsistent, error prone and highly dependent on who was doing the testing. Using test personnel to manually execute a written testing script allows for all kinds of variance as many personal factors come into play, including experience, pressure to pass or fail a test from others, and personal issues.
Over the life of a product, each test will need to be conducted several times. These tests do not take place in the prototype phase of development, but rather in the production phase and the continuous improvement phase. The continuous improvement phase in particular requires extensive and repeated testing, as this is where new features are added that often impact the design. Even the most dedicated, conscientious employee will not be able to execute a given script in the exact same manner every time.
The benefits of prototype testing
The prototype-testing phase consists of choosing components based on proven results and incorporating these components into the design. The design is then stress-tested for environmental, electrical, and performance factors in the kinds of applications where the product will be deployed.
For example, Yaskawa builds motion control devices that must operate in industrial environments where they are subject to electrical noise, temperature extremes, and vibration. Prototype testing ensures that the product will survive the environment while performing all its intended functions.
The production testing phase ensures that each piece of hardware will perform satisfactorily over the life cycle of the product; that each piece of software or firmware will complete its task as required, no matter how many new features are added; and that any new feature will act as designed and not interfere with any existing element. In most cases, additional features are added through software or firmware updates.
Thus, each production test will need to be executed hundreds or thousands of times without deviation over several years. Applying this concept manually is time consuming, expensive and mundane. Because testers perform the same steps numerous times and execute the tests on many different platforms or varying hardware, boredom sets in.
Thus, testers will execute manual tests in a slightly different manner each time, providing conflicting outcomes. Automated testing provides timely, cost effective, and consistent results.
With automated testing, the test cases are maintained in a database and run by a computer. The test suite can usually be started overnight and run without supervision. Results can be viewed the next morning. There is almost no overhead associated with running the test suite. This allows testing to be run more often without consuming precious team resources.
Developers are informed of any defects as soon as the tests conclude, allowing them to correct problems quickly. This constant cycle of code development followed by testing allows the entire development team to be more productive, and improves morale among team members.
As long as the main script is not altered, the test can be performed in many iterations without any change to how the basic test is conducted. This eliminates mundane repetitive tasks that are prone to human error. The test will be run exactly the same way every time, so it will be easy to catch any deviation in performance, or any corruption of existing features that a new version may introduce. Vigorous testing is the only way to create the high quality product demanded by the end users, systems integrators and OEMs that develop factory automation systems. Without automation—testing can be monotonous, time consuming, costly and error prone.
Automated testing fits in well with the concept of continuous improvement, an idea ingrained in our corporate culture. It allows us to expand the coverage of tests, and ensures that each time we test, we are reconfirming that all the previous features still work with the new elements, and that new features work properly. The test suite is constantly expanding during the product’s development cycle, but automated test easily accommodates these expansions in a consistent and repeatable manner.
When to increase testing
Two factors that lead to increased testing are adding new features or discovering a defect in the field. When a new feature is added, the test cases are written before any code is developed. We examine all the requirements associated with the new feature, and develop tests to verify that the new feature complies with those requirements. With this method, the feature can be implemented, and the developer can then test this implementation against the requirements by running the test case.
When a defect is discovered in the field, a test case is created to exhibit this defect, and this test case is sent to the developer. The developer uses the test case to confirm the undesirable operation, makes the necessary changes to correct the defect, and reruns the test case to confirm the correction has eliminated the defect.
By automating as much of the production testing as possible, defects can be corrected quickly, features can be developed with less effort, and the morale of the development team can be improved. This allows a faster time-to-market of the product, and allows addition of features with fewer defects at a lower overall cost. This frees up precious development resources to create that “next big thing” that can catapult the company beyond its competition.
Yaskawa America, Inc.