The History of Software Testing

Hello all, Thamsil Ahmed here. So today I thought to take you all through the journey of software testing. So, I will be talking about the different eras of testing, how it was performed initially and how it has evolved over the years.

Before talking about the eras, let me share a very interesting story about “bugs”. Do you know why we call flaws in software “bugs”? This term “bug” was originally used by Thomas Alva Edison in the year 1878, while mentioning it in a letter sent to his partner about his machine, the quadruplex telegraph system, he described the flaws as “bugs”. But it became popular and used worldwide when in 1947, Grace Murray, a Harvard university scientist working on the Mark II computer, noticed a moth stuck in the relay of the computer, which prevented it from functioning properly. The moth was removed slowly and was pasted to the logbook and ever since the term “bug”. This is exactly the thing we do today, finding a bug and reporting it in the bug tracker. So basically, the term “bug” got into the world of computers because of an actual bug! And thus, the term “debugging” as well. Before the term “bug”, the concept of bugs i.e., the flaws in a system were referred to as “problem in cards” by Ada Lovelace, the first-ever programmer.

Now let’s talk about how testing has evolved. There are five eras when we talk about the evolution of testing.

Debugging era (1945-1956)

This era is in the early 1950s, and the developers focused more on fixing the flaws in the system. It was more of performing corrective measures(debugging) to make the program work as expected, rather than testing the whole system to find bugs. The concept of testing and testers was not established during this time.

Demonstration era (1957-1968)

In this period, testing was regarded as a crucial part of the software development life cycle or SDLC, and special emphasis was given to carrying out testing as a separate activity. The main focus was to make sure the final product met the requirements for which it was developed. It was during this era the difference between ‘debugging’ and ‘testing’ was identified.

Destruction era (1979-1982)

In short, during this era, testing was performed to show the unintended working of a program. The testers perform the test on a program to demonstrate that the program is imperfect, as it was assumed by this way, the probability of finding bugs was higher. To explain better, testers tried performing activities that can cause the program to fail, like entering a text value in a numerical field. This method was a failure as bugs were found persistently one after the other.

Evaluation era (1983-1987)

This era focused on assessing the quality of the software. It involved review, analysis, and testing throughout the lifecycle of the software. Testing was performed until bugs were reduced to an acceptable level.

Prevention era (1988-2000)

The code was divided into 2, testable code and non-testable code. The main focus was to show that the final product meets the specifications. Testing was performed to avoid requirements, design, and implementation flaws. This era also focused more on identifying new testing techniques.

Testing now has become a vital part of the software development life cycle. Many testing tools are now available to assist testers in performing a manual test. Automation testing using AI has come largely into play, which makes it easier to perform repetitive tasks quickly and with better accuracy, making the testing process more effective and efficient.

Thank you for reading!

Join our community today!

Become a tester