Last week, a new Boeing 777 crash landed at Heathrow, England when the pilot tried to increase the throttle on the engines when landing. All power was lost, and on first reports, we owe an incredible debt to the pilot for managing to avoid catastrophe by gliding in to land. Sometimes there is human error involved. But this doesn’t appear to be the case here.
Perhaps I am barking mad (again). I would respectfully suggest that this illustrates an issue I have had over many years with the testing of engineering systems. Testing and testing again and again of every permutation of operating an engineering system is something that is not sufficiently emphasized under every circumstance possible. Certainly we always do testing of our systems that we design and build; but do we do enough? Far more attention needs to be given to this process. I believe often it is the client’s fault in not highlighting and budgeting more for the testing phase. The development of many systems comprising a complex combination of software/firmware and delicate electronics and mechanical hardware are often over budget and time when completed. We are so delighted to have the product completed that we just don’t have the time or money to test it as thoroughly we would like. For example, once you have written your wonderful Programmable Logic program how much time and resources are spent on actually testing the complete working system? Not nearly enough, I would suggest based on commissioned industrial automation systems I have observed over the years.
As Wikipedia sagely observes: A problem with software testing is that testing all combinations of inputs and preconditions is not feasible when testing anything other than a simple product. This means that the number of defects in a software product can be very large and defects that occur infrequently are difficult to find in testing. But this doesn’t mean we can release it onto the marketplace without redoubling our efforts in testing it even more extensively than ever before.
Some well known controversies with testing (especially software) include:
• What constitutes responsible software testing? Many believe there are no best practices for testing. Everything should be designed around the specific product being developed.
• Manual versus automated testing. Some believe that testing in an automated way is so expensive that it should be used sparingly. Others believe there is no other way to test these days.
• Who watches the testers?
We must re-educate our clients and the overall industry in that it is critical to emphasise testing of the final system. At present, I believe this is a neglected part of the specification. How do we really know the system is going to work under all circumstances as planned? Systems today are vastly more complicated than in the past.
Without a shadow of doubt, there are numerous standards written for testing and verifying the performance of systems. However, I don’t believe we stress the application of testing sufficiently.
Food for thought, perhaps, when designing your next Boeing 777 or simple PLC control system.
Yours in engineering learning,