5 Things That Will Impact the Future of Software Testing


In the past few decades, software testing has evolved in terms of both the tools used to perform different activities and the mindset of the people using those tools. There used to be only a handful of tools used in software testing, but now we have a plethora of tools to choose from, from proprietary to open source. Likewise, people have started thinking of testers as information brokers instead of gatekeepers, and there have been a lot of positive developments in the agile world that have contributed to significant changes in the processes that teams follow in their software development lifecycle. Advancements in technology are to thank for these evolutions.

From the way we look at software, evaluate risks, think about complexity, design our test approach and strategy, and help to release a stable product to the customer, technology has definitely had an influence on how we test software, and that influence will only continue as technology advances. On a high level, here are five key things we’re already seeing that are going to shape the future of software testing.

1. Artificial Intelligence

About five years ago, everyone was talking about “mobile first” and giving the user a mobile experience using mobile web, native, and hybrid applications. Now, the new buzzword is AI. It is in self-driving cars, home assistants (people sure do love their Alexa), computer vision, health care, finance, and now in software testing.

Currently, there are very few reliable tools in the market that use machine learning to help in the authoring and execution of functional testing, end-to-end testing, and regression testing. They are primarily concentrated in UI-based test automation—the more tests the user creates, the smarter the algorithm becomes, which makes the tests more stable.

Here are some of the benefits we could expect to start seeing in testing thanks to AI:

  • Easier authoring of tests
  • Lower maintenance work on test scripts
  • Fewer flaky tests
  • Having nontechnical people start doing automation
  • Easier CI/CD integration
  • More reusable tests

For example, I built an automation framework with Cucumber, Java, and Appium. Although I had a robust framework and a lot of flexibility in writing custom code to perform various actions, I often suffered with the common problem of maintenance. When a developer changed attributes of an element that were already covered by my automated tests, the tests started failing. As a result, I spent a lot of time just maintaining these tests instead of writing new automation code to cover new functionalities that were implemented.

This problem can now be solved by using dynamic locators the AI extracts from the Document Object Model (DOM). In real time, the AI analyzes all the object trees and properties from the DOM and can create a list of different attributes for a particular element. So, when an attribute of an element changes, the AI tries to go to the next attribute in the list to locate the element and keeps going through the list until the element is located. The tests are more stable, the authoring and execution of tests are much faster, and the tester has to spend less time on maintenance.

2. DevOps

DevOps has helped software development teams and operation teams to better collaborate, thereby ensuring there is constant automation and monitoring throughout the software development lifecycle (SDLC), which includes infrastructure management as well.

You may ask, how is this going to influence software testing? The answer: Everything we do as part of testing is going to change. The changes I foresee include:

  • A need to start automation right at the beginning of the SDLC and ensure nearly all test cases are automated
  • All the QA tasks would need to be aligned to ensure a smooth CI/CD cycle
  • A high level of collaboration would be needed to ensure there is continuous monitoring in the production environment
  • All the QA environments would need to be standardized
  • The testing mindset changes from “completed testing on this module” to “What are the business risks that have been mitigated in the release candidate?”

The key to all the above changes is automation. DevOps and automation go hand in hand—without one, the other won’t work. This is where smart people and tools can help in bringing shorter and more dependable release cycles.

I worked at a company where there was minimum collaboration between the development, testing, and operations teams. We were seeing a lot of gaps in the SDLC cycle in terms of more bugs getting into production, unstable CI/CD infrastructure, and less visibility into production monitoring and statistics. Noticing these gaps, the team decided to implement a DevOps practice, and everyone started collaborating and contributing in each phase of the SDLC. This started from requirements gathering and extended all the way to production release and monitoring.

This increased culture of collaboration started having positive effects in team morale, more automation coming into place, and the whole team starting working together as one unit.

3. QA as a Service

Just like how we have SaaS (software as a service), IaaS (infrastructure as a service) and PaaS (platform as a service), we now have QAaaS. Over the past few years, this has become a popular way for companies to meet their software testing needs.

Companies that have QAaaS solutions make different aspects of your software testing process easier by providing:

  • Test case management and maintenance solutions
  • Test automation tools with less need for coding
  • Robust test reporting features with logs, video recording, and screenshots
  • Easy integration with CI systems

Resources such as mobile phones, virtual machines, secure networks, and human testersIn the past seven years of doing automation, one big problem I have always run into is having to maintain my own server machines to run my automated tests. The server machines have different problems, like running out of storage space, a flaky internet connection, slow processing speed for the number of tests that are being run continuously throughout the week, and the need to be frequently updated with the latest OS, build tools, security patches, IDEs, and so on. These kinds of problems could be solved with QaaS providers, as they can do all these activities for you, so team members can concentrate on more critical tasks.

In the future, QaaS providers are going to think about more ways to improve their offerings to stay ahead of their competitors, which will benefit software testers, too. 

4. The Internet of Things

With the advent of wearables, smart homes, connected cars, and other cloud-based technologies, the internet of things (IoT) has become a big topic of discussion. The amazing thing about these devices is that there are so many communications and integrations taking place every second.

Let’s analyze, on a high level, the different communications taking place with a wearable fitness tracker. First, the mobile app and fitness tracker need to communicate with each other. The data captured by your mobile app should seamlessly integrate with the desktop, mobile web, and tablet versions of the app, and all these communications across devices should happen in real time. All the data travels to and from the cloud, the devices, and the apps. People also can form groups and compete with each other via the app, so these calculations and communications need to happen in real time, too. Based on different events triggered, the proper notifications need to be sent to the right user at the right time. All these communications happen over the internet.

Imagine you are a tester testing this fitness tracker. Where do you start? How would you design your test strategy and approach?

The IoT introduces its own level of complexity into software testing. It is going to affect the way we think about testing, particularly because more concentration needs to be given tointegration testing than the old approach of testing each component separately.

For example, when I was working for a travel booking company, we came up with a new app for the Apple Watch built using WatchOS (when it was first introduced by Apple). The application had limited but useful functionalities, like the ability to view notifications and rewards information, reservations, and locations of hotels, flights, and car rentals. While testing this application, I noticed that when the Apple Watch app was connected to the same app on my phone, there were weird issues: When I minimized the app on the phone, the Apple Watch went blank, showing only a black screen; but when I opened the app on the phone again, the black screen disappeared, and the Apple Watch app behaved normally.

This is a perfect example of why it is important to do integration testing. With more and more devices coming into the market, this is going to be critical for organizations and users.

5. Robots

There are now robots that do testing. Some people may think this is scary in terms of job security, but I still believe that the human mind can never be replaced. There would still need to be humans to monitor the robots to ensure they are doing what is expected of them and to actually program them to do things. How far is this scalable? Only time will tell.

In summary, advancements in technology have already started influencing the way we are doing software testing. It has also caused companies to rethink their organizational structure: The QA team is moving toward being embedded within the development team, and the whole team will own quality. It also will become important for the research and development group to be in frequent interaction with the development group in order to make products smarter and more useful for their customers.

There will also be a need to have procedures in place to handle large amounts of data, as well as appropriate computing power to comb through this data to get useful information and feedback. Finally, to make all this a reality, companies need to adopt lean processes and be much more transparent to prevent being an obstacle for innovation. Lean transformation will be vital for effective growth.

It’s important to change our mindsets about how we view systems and to test them accordingly. We can choose to either ignore it or embrace it. What will you do?

User Comments

Vinay Pandey's picture

Raj Subramanian: Thanks for writing a this blog, it is very useful. It is requested to add some example tools. Such as for Robot testing we can use UIPath.

It will be very helpful.

Looking forward for more articles.

October 5, 2018 - 8:21am
Raj Subrameyer's picture

Thanks Vinay for the feedback. Really appreciate it. It is a great idea to add some example of tools as well. Will definitely keep that in mind.

October 15, 2018 - 12:32pm
rajee sudh's picture

HI Raj..Really like your aticle, looking forward to learn more about AI integrating with testing. Please share any open source tool. Thanks Rajee

October 14, 2018 - 8:22am
Raj Subrameyer's picture

Hi, I am gald that you asked about AI and Software Testing. Since this article got published I have got 4 more publications just focused on AI and testing. You can find the links to those articles here - http://www.rajsubra.com/publications/. Let me know if that helps. Thanks

October 15, 2018 - 12:35pm
Raj Subrameyer's picture

Hi Rajee,

Since you mentioned an open source tool on AI, check out this took - Sketch2code. This is a open source tool that generated HTML code based on any image sketch your feed it. It is super cool.


December 26, 2018 - 3:32pm
pankaj kale's picture

Hi Raj, Really enjoyed and learned from this article. 

Would it be possible for you to write something about how can a tester learn the necessary AI skills which would be useful in testing ? Especially for the manual testers.

October 31, 2018 - 6:02am
Raj Subrameyer's picture

Hi Pankaj, Thanks a lot for your feedback. I recently moderated and participated in an AI discussion panel where we discussed these points. I posted all the conversations and resources here - https://blog.testim.io/era-of-ai/. Also, I recently wrote an article on how testers can get involved in AI testing here - https://abstracta.us/blog/test-automation/embracing-ai-based-testing/.

These 2 resources should help to give you a good idea. Also, I will be working on more articles on this topic, so wil let you know once I get them published.

November 5, 2018 - 5:43pm
Raj Subrameyer's picture

Thank you so much Sarika for taking the time to read this article. I really appreciate it.

December 26, 2018 - 3:34pm
Ard Kramer's picture

You end with the statement  “it’s important to change our mindsets about how we view systems and to test them accordingly” but you don’t clarify in the article what this means. what must change in the mindset of a tester in what he/she didn’t do before?

December 28, 2018 - 10:24am


About the author

StickyMinds is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.