“Testing is becoming more and more a first-class citizen,” says Diego Lo Giudice, vice president and principal analyst for Forrester’s software development and delivery area covering DevOps and Agile. As enterprises try to deliver software faster by testing and deploying faster, software testing is being recognized as a critical part of the development process.
“That means that organizations are trying to learn that testing doesn’t slow the delivery of software,” Lo Giudice says.
The tools are getting better – and so are the processes
“Some teams are still working as they did in the 90s,” says Lisa Crispin, co-author of Agile Testing Condensed and several other books on software testing, but that’s changing. “Now DevOps is being used in continuous integration,” she says.
But progress in testing won’t come without a cost. “You have to put real effort into test design,” Crispin says. “You have to have more robust test tools. Our systems are so complex that we need those workflow tests to work with continuous development.”
One change in testing is adoption of tool-assisted testing and production. “This is very new,” Crispin says. It’s more common to test live production code so that it won’t affect customers. This requires a team-based testing environment where testers are an integral part of the development team.
But perhaps the most significant change in software testing, in both the short and long term, is the use of AI and ML.
Artificial intelligence is changing what’s automated
Obviously, AI and ML are an important part of QA testing already, but where will it be by the end of 2020? According to Lisa Crispin, co-author of Agile Testing Condensed and several other books on software testing, there’s a strong move to more AI and ML, and away from manual processes.
Lo Giudice agrees. Teams need to increase their use of automation, he says. And to do that, they must increase the use of artificial intelligence and machine learning.
“They [testers] are using AI not just to increase the level of automation, but to do it smartly,” Lo Giudice says. Smart teams know that not everything involving testing needs to be automated. The whole development team should be involved. Teams need to know when it makes more sense to perform testing using a manual process versus when automated testing makes the most sense, he adds.
“You make the testers smarter,” Lo Giudice says, not by replacing them with automated testing but using automation to help them do a better job. He adds that this should include putting testing into the hands of developers in a test-driven environment, using tools such as Cucumber and Gherkin. Cucumber helps in automated testing, and supports collaboration in a team environment; Gherkin is its editor for creating natural language instructions.
Look for tools to take advantage of AI to streamline testing and help testers keep up with developers. “The rate at which software development proceeds means people can’t keep up with testing,” says Jon Seaton, director of the Functionize data science team. “We’re leveraging machine learning to close that gap.”
AI assists in continuous testing, says Seaton, which allows companies to push out their products and deploy them while still testing. For example, his teams use AI in user interface testing to make sure advertising is in place, testing localization, and performing ecommerce testing.
“You have manual testers, but we’re moving more to automation, then adding intelligence,” Seaton says.
Case in point: Automating robotic processes
Another trend to look to in 2020 is Robotic Process Automation (RPA), which uses software robots to develop code for businesses processes. We aren’t talking about Robbie the Robot here; RPA is a type of business process automation that captures data and triggers automatic responses. Software robots can be trained to perform tasks currently performed by humans, but which humans find mind-numbing. Automation allows the human teams to do more challenging work.
“Some clients are using the testing automation capabilities of their tools for doing robotics automation,” Lo Giudice says.
“There’s a growing sensibility to start thinking about building robotic process automation without testing,” says Lo Giudice. But that’s not a good idea, he adds. Allowing RPA to move forward without testing produces a variety of risks, notably misuse of RPA, which can result in implementation failures and may lead to security exposures. RPA models existing tasks, which is good; but if the task is being done wrong, then it models a task that’s being done wrong.
Because those failures can be costly or worse, QA testing of software robot processes is just as important as any other type of QA, if not more. Considering that RPA is considered by some to be the fastest growing type of automation expected in 2020, says Lo Giudice, the need for testing becomes even more important.
But RPA can also serve as a useful test tool. “You can use RPA for functional testing, then automate the other tools in the delivery chain for tools that can be easily integrated.” Lo Giudice says.
Expect more testing in the cloud
The logical place for this kind of testing is in the cloud, where the robots are readily available, and where a growing amount of development effort takes place.
“Cloud adoption is growing fast,” Lo Giudice says. “Testing using cloud environments is another important trend. There’s too much time in spinning up the test environment. Now it’s self-service and cloud enabled.”
“Adoption of cloud-based technologies is raising interesting questions about data security,” Seaton says. “We’re currently working on new hybrid deployment options that help to address some of those challenges while still providing the same advantages that come with cloud based scale.”
So which of these components of QA testing are part of the future? To some extent, all of them. AI and ML are crucial to testing the complex processes on the horizon, and to a great extent the testing tools will be cloud based and will use RPA. But not everything will work that way because not all processes are appropriate for robotics, not all testing makes sense for automation, and AI depends heavily on highly accurate data where humans can perform tasks in less exacting situations.
Software testers will still be around, and they’ll have some powerful tools to work with.