Integration


Applications are designed as integral functional subsets of a system, but they always run in the context of an integrated business system. Thus, they must be tested at a system level to ensure that even though they may run to specification, they do not also cause unintended problems or side effects in other software applications in the same system. Software application testing is generally done in several steps:

  • Unit testing of individual components or modules to specification

  • Subsystem or application testing to the application's overall functional specification

  • System testing to ensure compatibility of the new or improved application with the whole business system

  • Regression testing to ensure that while the new or improved software does what it is supposed to, it doesn't fail to do properly the things it has always done correctly before

The basic problem with system-level software integration is how to assemble hundreds of components that are not necessarily working properly yet into a complete system that must now be validated to do so. Even if you could be sure that, as Sir Henry said, "Each part is working perfectly," this would not necessarily guarantee that the whole system will do so. From the earlier unit-testing phases, you can assume that 50 to 70% of the bugs have been found and corrected. From the later low-level integration testing, you can assume that most of the interface bugs have been found, and perhaps another 10% of the intrinsic unit-level problems.

Sidebar 19.1: The Supermarine Spitfire

Rolls-Royce was founded by an aviation enthusiast early in the 20th century. It was then, and is still today, primarily a manufacturer of aircraft engines. In 1938 the firm designed a radical new V-12 double overhead-cam aircraft engine named the Merlin to go in a pylon racing floatplane called the Supermarine Spitfire. The chief engineer, Henry Royce, was criticized for designing so complex an engine with so many moving parts. His famous response was, "It doesn't matter how many parts a machine has as long as each one is made perfectly." The airplane won the race, and this remarkable engine went on to power the famous Spitfire fighters that won the Battle of Britain in World War II. Later in the war the North American P-51 Mustang was designed as a long-range fighter to escort Boeing B-17 bombers over Germany. It used the Merlin engine design made under license by Allison in the United States, but the Americanmade engines were not made to RR standards of perfection and did not hold up as well. Over time, the Britain-based Mustang planes' engines were replaced by the RR version. Sir Henry is both right and wrong. He is right if "each part is made perfectly," but the ability to make each part perfectly at an acceptable price is rarely possible. The cost of "making each part perfectly" is also part of the RR motorcar legend. In any era, a Rolls-Royce automobile costs as much as or more than the average American home. When his automotive customers complained about his high prices, Royce was known to comment, "If you purchase a Rolls-Royce, you only cry once." Sir Henry seems to have had a powerful command of the ontological "if."





Design for Trustworthy Software. Tools, Techniques, and Methodology of Developing Robust Software
Design for Trustworthy Software: Tools, Techniques, and Methodology of Developing Robust Software
ISBN: 0131872508
EAN: 2147483647
Year: 2006
Pages: 394

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net