
With the popularity of Automation, many blogs and talks claim that “Software testing is dead!”. Test Automation isn’t a new practice however. Most software teams are trying to automate testing in some way or other. If you’re a QA or someone works with QA you’ve probably wondered what this means for the QA job. Where do QA fit? Is the Software Testing dead?
Today, the testing efforts of a typical enterprise are as follows:
- 20-30% tests are automated
- 80-90% UI tests are automated
- 10-20% API tests are automated
These numbers are set to favor automation more once DevOps is introduced into the organizations. All the companies we deal with want to increase their test automation rates. Before we dive in to the topic, let’s first try to understand how QA as we know came to be. This is important to understand before we make huge claims like Testing is dead.
The Origin
Before software testing became mainstream, developers used to test their own code and find defects. This was known as debugging. They used to delegate work among themselves but this wasn’t very efficient. It was because of the “I am right syndrome”. After all developers have the mentality to develop not find defects. This changed in 1979, with the pioneer in the field Glenford J. Myers initiating software testing as an activity focussed on finding defects. The result are the umbrella of terms like Quality Assurance, Quality Control and Software Testing that Testers operate under. We’ll be using the term software testing henceforth.
Assess Quality | Primary Goal
The quality of code must always be assessed with respect to certain standards and ascertain its ability to meet the expectations of the customer. Software Testers are quality gate-keepers. They assess the code and either accept or reject it. This brings us to the next goal.
Find Bugs | Secondary Goal
The concept of Testing was defined as “an activity to focused on finding defects”. Everything revolves around bugs. Be it discovery, prevention, control, delivery or success. To make it right, you’ve to first find what’s wrong.
Find Success | Final Goal
Requirements are the starting point for any software development & testing project. Apart from the bugs, Testers often need to make sure that the requirements are met by the code developed. This could be functional, performance, scalability, security, usability, etc. Testing serves the dual purpose of building the product as per requirements and finding shortcomings in parallel.
When you look back in the field of Testing, Automation entered the scene very gradually and can be divided into three distinct periods.
First Period
This began with the influx of good old fashioned tools like WinRunner, Silktest, and QTP. These solutions started it all and set the stage for tools like Selenium to innovate the field of Automation Testing.
Second Period
Selenium was the first of next generation of Automation Testing tools. It focused more on developers and following best practices for automated testing. It however had its share of problems. The maintenance is a huge burden for these tools and the end results, the tests are often flaky. This leads us to the future, where we are seeing an uprise in Testing Automation with the help of AI/ML.
Third Period
The main feature of these tools seem to be the leveraging of AI/ML technology in the field of Testing. Applitools was one of the first tools of this period and showed us that a new way of testing is possible. You’re first thought when you hear about visual validation testing, which uses a sophisticated algorithm to point out bugs without calling out the elements especially would be nonsense. However, after spending some time with the tool, I believe that its possible and the future is here. Saucelabs were one of the first players in the cloud based automation tools. They run over a million and half tests everyday. This is a treasure trove of data which could lead to valuable insights being mined using AI/ML.
What is the Future of Automated Testing?
While gathering insights on the future of Automated Testing, three main themes came into play:
- Artificial Intelligence / Machine Learning
- Automation
- CI / CD / DevOps
AI / ML
- Leveraging AI to automate the automation: Instead of Testers writing scripts to automate testing, AI promises to do the job faster, cheaper and most importantly better.
- AI / ML will lead to more personalized, relevant and engaging CX.
- Numbers in the future are huge: You could be running 400,000 tests in 30 minutes compared to 500 for six hours right now.
- Visual Validation Services: Codeless Automated Testing that is accessible and maintainable is sure to come.
Automation
- Automatic Test Avoidance: Tests would run in parallel: In future, the static and dynamic analysis would be so good that you wouldn’t have to run any tests.
- Self Healing Code: For automation to really work, we have to up the game and turn neural networks into self healing code.
- We could see things like dynamically updating validation criteria from change requests, tests expanding themselves to test new/closed entry points, etc.
CI / CD / DevOps
- More enterprises will employ CI / CD which is complete automation: Opportunities mainly lie in strengthening Agile testing practices like TDD / BDD / ATDD.
- Testing Process must be LetShift driven: LeftShift can help in making the transition to a streamlined continuous delivery model, ensuring that business value is realized on-budget in the shortest time frames. And this can be achieved by having the right automated testing strategy in place.
Is Software Testing Dead?
The testers will now have new defined roles which compliment with the changes in the field. The biggest value of the tester in the future would be the moving from a bug detection role to bug prevention role. They would do this with concentrating more on automation helping developers constantly test their changes in real time.
They also will be working more with developers than as a separate individual entity. This is already in practice with SCRUM teams, but isn’t singular to SCRUM. Coming times will see more testers moving from separate teams to increase communication and interaction bringing us to the last point.
Technology and development styles change over time. The agile manifesto was signed in 2001. Companies are still undergoing agile “transformations”. There are also companies that think they have transformed, but have completely missed the point. Testers must adjust their approaches, tools, and skill sets to keep pace.
The question for testers today is not if the role will exist; it’s if testers are willing to make the investment in remaining relevant. For example, the ability to spot problems in production, risks in requirements, or a combination of changes that could destabilize the system are all critical. So buckle up and enjoy the ride.