Software Testing Evolution & Methodologies

Software programming has evolved over the decades and consequently, testing, which is an integral part of software development, has also gone through a series of changes.

It’s all started with programming and debugging phase, when finding errors during debugging was considered testing. In 1957, testing got an individual identity and was treated as a separate activity from the debugging process.

Till the late ’70s, testing was seen as an exercise to ensure that the software works as per the specified requirements. It was then extended to find the errors, besides ensuring the proper functioning of the software. In the ’80s, the testing activity was also considered as a measurement of quality. With this, it gained more importance and was treated as a clearly defined and managed process of the software development life cycle.

By the mid-’90s, the testing process had its own life cycle.

In this article, we have segregated the phases of software testing evolution in terms of different eras for a better understanding.

The Era of Programmers and Testers Development and testing were treated as mutually independent activities during this era. Once the software was ready, it was passed on to the testing team for verification. Testers were not very actively involved during the requirement analysis phase and had limited interactions with business stakeholders.

They were heavily dependent on the knowledge passed on to them via documentation done during design and development or gathering knowledge from developers who wrote the code.

Lack of insight into the requirements and expectations of the customers led to limited testing strategies used by the testing team. The testers would develop a test plan based on their understanding of documentation and test the software in an ad-hoc manner. This obviously had certain limitations and the testing was not comprehensive.

The Era of Exploration and Manual Testing The late ’90s saw the advent of various methodologies like agile testing, exploratory testing, etc. Testing was done manually using detailed test cases and test plans.

Exploratory testing gave freedom to test and break software in indigenous ways by exploring the software within the gamut of testing charters.

Expansive and intensive growth of the software development process needed more comprehensive ways of testing. The incremental and iterative approach employed by agile testing helped in achieving this goal. Iterative way of testing paved way for automating the tests that were repetitive in nature. Read for more : Read for more click this link > Software Testing Evolution