Fortune Telling Collection - Comprehensive fortune-telling - The History and Development of Software Testing

The History and Development of Software Testing

This article is a translation of an article entitled "The Development of Software Testing" published by Dave Gelperin and William C. Hetzel.

This article is not boring. After reading it, you may feel the same way with me: it turns out that software testing can also be traced back to the source (not the result of programmers' painstaking efforts), and it also has its inevitability and rationality.

So far, the development of software testing has gone through five important periods:

Before 1957-debugging oriented.

1957–1978–demo-oriented

1979- 1982- oriented failure

1983- 1987- evaluation-oriented

1988- Up to now-prevention first

Debugging-oriented

In the 1950s, computers were just born, and only scientists could program them. The requirements and programs themselves were far less complicated and changeable, which was equivalent to the developers undertaking all the work such as requirements analysis, design, development and testing. Of course, no one will distinguish between debugging and testing. However, rigorous scientists have begun to think, "How do you know that the program meets the requirements?" This kind of problem.

Proof-oriented

In 1957, charles baker distinguished between debugging and testing in one of his books:

Debugging: Make sure the program does what the programmer wants it to do.

Testing: Make sure that the program solves the problem it should solve.

This is an important milestone in the history of software testing, which indicates that testing is finally famous.

At that time, the number, cost and complexity of computer applications increased greatly, and the economic risks that followed also increased greatly, so testing was needed. The main purpose of testing in this period is to confirm that the software meets the requirements, which is what we often say, "doing what we should do."

Face destruction

1979, the first edition of The Art of Software Testing came out, which is a classic in the field of testing. The classic definition of software testing is given in the book:

The process of executing a program in order to find errors.

Testing is the process of executing programs to find errors.

This view is a great progress compared with the previous evidence-based thinking. It is necessary to prove that the software has done what it should do, but also to ensure that it has not done what it should not do, so that the test will be more comprehensive and it will be easier to find problems.

Evaluation oriented

1983, the National Bureau of Standards issued the Guide to Computer Software Lifecycle Verification, Verification and Testing, which is what we often call VV &;; T .VV & ampt put forward two famous terms in the field of testing: verification and confirmation.

Verification: Is the product we built correct?

Validation: Are We Building the Right Product?

People put forward the theory of using analysis, review and testing to evaluate products in the software life cycle. Software testing engineering developed rapidly in this period:

There are titles such as test manager and test analyst.

Conduct formal international testing meetings and activities.

Publish a large number of test publications

Issue relevant international standards

All these indicate that software testing is developing towards an independent, professional and influential project.

prevention first

Prevention is one of the mainstream ideas of software testing. STEP (System Testing and Evaluation Process) is the earliest life cycle model focusing on prevention. Step believes that testing and development are parallel, and the whole life cycle of testing is also composed of planning, analysis, design, development, execution and maintenance. In other words, testing does not begin to intervene after coding is completed, but runs through the whole software life cycle. As we all know, without 100% perfect software, zero defects are impossible, so what we need to do is to get involved as soon as possible and find these obvious or hidden bugs as soon as possible. The earlier it is discovered, the lower the repair cost and the smaller the risk.

Although the understanding of software testing has its limitations in each development stage, the predecessors have been thinking and summing up their experiences and creatively putting forward new theories and directions. This spirit is very worthy of respect and learning. The so-called bronze mirror can be dressed; Only by taking history as a mirror can we know the gains and losses. Knowing where it comes from, we can better understand where to go.

(transferred from the network)