End To End Principle

"An early cycle - possibly even the first cycle - must build a version of the system that combines and exercises all pieces of the technology jigsaw, to ensure they fit and work together."

JohnDaniels at Object World, London, 1996 (and probably a lot of other places if I know John)

End to End Testing is an application of this principle. It is tempting, especially in large systems, to define formal interfaces and then test to the interface specifications without doing end to end testing until the last minute as a "big bang integration." This is almost always a disaster. Even when it seems plausible, it breaks. I had a significant signal processing project collapse on me because the contractor had not performed end-to-end testing but instead had done only simulation testing because the end product was really the same thing NOT. We ended up with small errors in the hardware interface code which were nearly impossible to find because two versions of the interface code had been written -- the "test code" and the "delivered code" which had never been tested and had some subtle mistakes in it. Not only end-to-end but absolute fidelity is necessary. Otherwise, your project too can end up in the trashbin of history. --RaySchneider


The HubbleTelescope didn't need to be tested end-to-end; the components had been proven correct. ;->

It appears that of the three types of UnitTests that were applied to the main mirror, one showed OK, but the two others indicated a spherical aberration. The passing test was trusted, and the failing tests ignored. See HubbleTelescopeSphericalAberration.

But it does appear that an end-to-end test would have revealed the error:

"The military units were optically tested after assembly. The HST was not tested in this way, a "saving" that permitted Perkin-Elmer to submit the low bid for the mirror contract. Such a test would have unambiguously revealed a spherical aberration of the magnitude present in the HST." from "Mega-Projects & -Problems; The Hubble in Trouble" at http://www.npl.washington.edu/AV/altvw44.html


There is also an end-to-end principle for optimization. See "Framework Design for End to End Optimization" at http://choices.cs.uiuc.edu/sane/endtoend.pdf --AamodSane


... and in the design of distributed systems, described in the classic paper:

J. Saltzer, D. Reed, and D. Clark. End-to-End Arguments in System Design. ACM Transactions on Computer Science, 2(4):277-288, November 1984.

-- NatPryce


See FullyStimulatedEndToEndPrototype


CategoryQuote


EditText of this page (last edited February 14, 2005) or FindPage with title or text search