As one year ends, we see predictions for what will be hot in technology in the coming year. Futurism -- with all the talk of flying cars and magical, AI-driven bug-finding -- sure is fun, but I want to talk about what is hot right now. Here are some software testing trends on an upswing.
Learning about the most sought-after testing technologies can make you more valuable throughout the year, without any speculation or wishful thinking.
The growing trend of DevOps
Test and development were commonly independent in the early 2010s. Developers wrote the code, while operations people managed the build system (usually Jenkins), the test servers and the tagging of code to make new builds. DevOps blends this work in terms of who does what and the technologies used to create builds and deploy to new environments. One of the best examples of DevOps is the host mechanism of containers, such as Docker, to build highly configurable environments quickly. That means that a few minutes to make a new environment is too long.
A couple of years ago, DevOps was one of the software testing trends seen only on the U.S. coasts -- Silicon Valley, New York and Boston -- and needed some time to creep into mainstream use. Heading into 2018, DevOps practices and associated technology stacks are more common. Entire development flows are now based around DevOps and containers. Developers can make a small change, create a new environment based on a code branch, run their automated tests, perform exploratory testing and be ready to ship. Testers that can use these concepts and technologies will hold a niche in the market.
Understanding machine learning and AI
Machine learning and AI bring a huge amount of interest in conference talks and tech articles, but as far as I can tell, these interesting technologies are rarely used. I was at a conference in 2017 where a speaker claimed that a tool using AI would be able to detect software problems and fix them on the fly. That belongs in the world of flying cars. A more practical application of machine learning is Amazon's ability to recognize that, if you add hot dogs to your cart, you probably want hot dog buns.
However, some companies are doing interesting things using both of these software testing trends. Netflix, Facebook and Twitter are well-known companies that deploy a combination of machine learning and AI to figure out, for example, what movies to suggest and how to order your queue, what your feed should look like and what advertising should be directed to you. And there are certainly companies offering AI-powered testing services, such as Appdiff.
All those recommendation engines will need to be tested, and knowing a little bit about how they work, compared to someone who does not, will make for a very powerful tester.
Outside of working for a company that deals in massive amounts of data -- actual big data -- your best bet for understanding machine learning or AI is to take a class, such as one offered by Coursera. This won't make you an expert, but it will make you one of a handful of testers that understand the subject beyond a basic definition.
Work with APIs and microservices
The vortex of terrible for a software tester happens when they work on a Scrum team that delivers every two weeks and they get a feature dump on the third day of week two. The first part of the sprint is spent waiting -- or planning, as it is sometimes called -- and the remainder scrambling to get as much test coverage as they can before the imminent release. The availability of an API enables testers to approach and test a product before it is complete, and well before there is a UI. For testers, APIs allow them to actually shift left.
Testers can accomplish most of the work they would normally do in a UI -- data testing, workflows, access based on authentication and failure modes -- faster and earlier through an API. For the most part, this type of testing is easy to learn. Take the same principles you use to test a UI, and use a tool such as Airborne or Postman to enter data and evaluate results.
Software testing trends in 2018
API testing and DevOps will be hitting critical mass in the future. Learn to cement yourself as a capable technical tester. Machine learning and AI are the future for some companies handling massive sets of data. Learn these software testing trends to invest in your long-term career. No matter what path you take, the key is to keep learning.