The quality movement started in 1924 when Walter Shewhart gave his boss at Bell Labs a memo suggesting the use of statistics to improve quality in telephones. Later came Juran and Deming, and the movement was well on its way. Not surprisingly, the software industry eventually took up the challenge of systematically improving quality. Let's look at how that began.
In 1976, Michael Fagan published his first paper on Design and Code Inspections. He talked about how inspections could reduce errors in software. In the same year, Glenford Myers wrote Software Reliability Principles and Practices. In this book, Myers talks about testing philosophies-emphasizing the importance of designing good test cases. He goes on to describe test cases which test the code as if it's in a sealed, black box. In 1979, Myers wrote his fifth book, The Art of Software Testing, which soon became the bible of the Software Quality movement. In this book, he talks about the importance of Inspections, Black and White Box testing, and the benefits of regression testing.
Sounds like a solid beginning. So, what's my point?
My point is this. I don't think testing has advanced since Fagen and Myers wrote their first papers and books. We are still using the same methods to perform our work. We are still asking the same questions.
Now, I'm not suggesting that there haven't been any important books written in the time since the books Myers wrote. In fact, since then many fine books have been written on the subject of software testing.
In 1983, seven years after Myers' software reliability book, Boris Beizer wrote Software Testing Techniques, a very good book on the subject of software testing. Beizer gives the terms Black Box and White Box testing new names-Functional Testing and Structural Testing respectively. But for the most part he talks about testing methods similar to Myers.
In 1995, a full nineteen years after Myers' book, Edward Kit wrote Software Testing in The Real World, another good book on software testing. But still, Kit talks about Functional Testing (Black Box) as well as White Box Testing.
But if you have been in the business for any length of time, you get a distinct sense of déjà-vu. If you don't believe me, take a look at the next testing conference advertisement you get in the mail. Then think about that talk you attended years ago. The one where the speaker described a testing oracle that would create test cases for you. Have you ever seen such a tool that really worked on real code? I doubt it.
What about the CMM and ISO 9000? These processes were going to help us produce high-quality software. How many of you are still using them? Have they solved your quality issues?
Like most of you, I create functional test cases, update regression test suites, and attend
an occasional code review, all in the name of process improvement. But I haven't seen anything new or revolutionary impact my world.
Again, I'm not minimizing or trying to downplay software quality process. But, like most of you, I work in the real world of tight deadlines and poor requirements. Most of the time I don't even have real functional specifications. Software engineering documentation-what's that?
So thinking back to Myers' 1976 book and all the testing books and conferences since, have we advanced or are we stagnating?
Let's just say, I feel the algae growing.