Carbon & Finch Blog: The Evolution of Software Testing

The Evolution of Software Testing

When we travel back in time, millions of years ago, we might see a small, hand-sized creature poking its head out of the mud – a turtle.

Turtles got their shells through the process of evolution, they evolved over a very long period of time. The tortoise’s hard upper outer shell protects them against predation. The shell evolved to get bigger over time for better protection.

On the other side – humans evolved with their bigger and better brain; larger brains with a complex structure enabled humans to think, interact with each other and with their surroundings in new and different ways and find means of protection and evolution. This made a huge difference.

Similarly, Software Testing has evolved over the years and Software Testing, has now become an integral part of software development and this has made a huge difference to the software life cycle..

Software Testing has also gone through multiple changes and evolved over a period of time.

So how has software testing evolved over time?

Evolution Cycle

  • Testing first ensured that the software works correctly as per the specified end-user requirements (Business Requirement or Functional Requirement).
  • Then Testing was used to find the issues(or what we commonly call it as bugs) and eventually getting the issues fixed and also ensuring the proper functioning of the software at the same time to meet the end user requirements.
  • Software Testing then was included in the software development life cycle as it was considered as a main step in the SDLC to measure the quality.
  • The testing process then had its own Software Testing life cycle (STLC) where there were defined steps and activities to be carried out in every phase of STLC.
  • Various Software Testing Models emerged in-line as mentioned below –
    • Waterfall Model.
    • V Model.
    • Agile Model.
    • Spiral Model.
    • Iterative Model

These different models or approaches can be used in the process where each model has its own advantages and disadvantages. So, a user must choose a particular model depending on the individual project deliverables and complexity of the project.

  • Agile – Agile testing came in picture along with the Agile development model, by following an incremental and iterative approach. The features were developed as the requirements came in and also testing happened in-line with development, functionalities were tested as and when they were developed.
  • Automation – Automation Testing brought testing to a higher level. Automated testing is a methodology in software testing that uses various automation tools to test the functionality of the application or what we call it as execution of tests in automation terms, so more time could be saved on repeated and time-consuming testing like regression testing and this time can be spent on different tasks or tests. Although a little time need to be spent on maintaining test scripts overall, you will increase your test coverage and scalability.
  • Continuous Testing – Continuous Testing is included in the Continuous Integration and Continuous Deployment (CI/CD) process and is becoming extremely popular. To meet the continuous integration and continuous delivery needs, we have adopted continuous testing along with automation which involves end to end continuous testing and also continuous reviewing. As next is the time of digital transformation, we need Digital Testing to meet the end-user requirements of future which is driven by AI.

About Carbon and Finch

Carbon and Finch which provides software development for Microsoft Dynamics, C# and .Net. The company’s founder, Jimmi Jakobsen, needed to improve the quality and quantity of sales leads in order to increase revenues but also to reduce the team’s time on repetitive and often unproductive tasks.