
You’ve probably heard these phrases before: “Testing will soon be dead!” “Testing is automated” or “Who really needs testers?”. Similar phrases are still common in the tech industry, and I hear them sometimes. The future of testing is bright, provided there’s software on the planet. What does the future look like for testing? This article is my opinion on the future testing.
Since 2008, I have been in the software testing business. The last 14 years have seen many improvements to the industry. The market is changing rapidly, with mobile apps moving from desktop to web applications to mobile applications. IoT and smart phones are also entering the market.
My first job in testing was on a desktop program that managed server storage. I didn’t know what professional testing would look and feel like back then. It was a natural choice to get into software testing. However, I love what I’ve seen. Being able to dive deep into a system and understand both the tech and the business side of things. After my first year of testing, I moved quickly to the web and mobile apps.
Software testing is not new to desktop, web and mobile apps. There are many tools available that can support testing automation in each of these categories. There are also many blogs, courses, and other resources that cover every aspect of each topic.
But where is the future of testing? This is a question I’ve been asking for a while. To get a better idea of our future, I did some research and spoke to members of the testing community. Let’s take an in-depth look.
Big Data and Machine Learning
My research has led me to machine learning and big data as one of many topics. Both topics are not new and will continue to be popular in the future. These topics are relevant to many companies that handle large amounts of user data.
However, if you look at this topic from the perspective of testing, there are some things that will impact the way we test in the future when using big data and machine-learning algorithms.
Both are technical topics and require programming skills as well as technical knowledge of complex architectures. It will also require the ability to handle large amounts of data in databases. Finally, knowledge about algorithms is required.
My perspective is that big data is more manageable than machine learning and won’t affect our testing skills like the other topics. Although data handling is a part of daily life, it is not a new skill. The only difference is the increase in data and the way that data is stored across systems.
Machine learning is an entirely different topic. Machine learning is all about understanding algorithms. The algorithm is implemented and the machine learning system that corresponds has intelligence. The machine should be able to learn from all inputs and then decide what output it will produce. To test machine learning software, you need to know everything about the technology stack and the underlying algorithm.
Software testers will find another aspect of machine learning fascinating. Software that uses machine learning, or machine learning software, can be used to help us test software more effectively. Machine learning capabilities are available from companies that offer software testing. There are tools that can adapt the test execution to the system being tested. It can lead to slower internet connections that may make it more difficult to run flaky tests. There are also tools that can generate test cases based upon user behavior. Other tools can scan the entire application and offer XPath options for identifying objects for automation. There are also tools that allow for data generation based upon user inputs.
You can see that big data and machine-learning have two sides. This is the case when you are testing an application that makes use of big data, or implements a machine-learning algorithm. The other is when you use machine learning to aid in your testing activities.
Blockchains
You might have heard the phrase “to the moon” when used with bitcoin or other crypto currencies based on blockchain technology. Blockchains can be used for more than crypto currencies. One of many products that can be based on blockchains is crypto currencies.
Blockchain technology’s main concept is that it’s decentralized and distributed. A blockchain is a series of blocks that are linked together. Each block has a hash and hash of each previous block, as well as the data. If the hash is incorrect, the blockchain will not be valid anymore.
Blockchains provide great security features like proof of work and consensus, as well as smart contracts. You can read more about blockchains and their technology in the paper by Satoshi Nakamoto. This article is too complex to cover blockchain in detail.
Blockchain technology, as mentioned previously, offers many new products that can impact our lives and the industries in which we work as software testers.
Blockchains can be viewed from a testing perspective. Blockchains can also be tested using the same software testing methods as other applications. However, the priorities and focus of testing activities will shift.
It is more important to fully understand the blockchain technology than just automating the process. Non-functional testing activities like load, performance and security testing play a greater role in testing blockchains. It is still vital to test APIs and their integration with other parts of a system, as well as functional tests.
You should be ready to work in a technical field that is very technical if you want to become a software tester for the blockchain.
Security
Security testing is the third topic I want to discuss with you. Because it is so important, it is an evergreen topic. However, if you look at the media, almost every week there is a report of a data breach in which millions of sensitive user data have been stolen or systems hacked.
Security testing can be difficult. It is complex, technical, and difficult. Modern systems can be interconnected via APIs or networks. These systems can be built using many programming languages and tools. Every part of the system could be problematic, opening up for hackers.
We all use online banking and cloud storages to save photos or share our private information. No one wants their data to be hacked. Companies must ensure security from the beginning of any new project. If they don’t do it, and are hacked it can lead to the company losing not only its reputation, but also a lot of money.
When I am working on projects, I check for basic security items like XSS (Cross Site Scripting), for web applications, or checking OWASP foundation page to see the top breaches I should be looking out for. This is not enough. Although I’m not a security testing expert, I always ask my product manager about security audits and other security measures when I’m working on projects. This helps me shift the focus to these subjects. You should do the exact same thing!
Security testing is the most important topic I consider when looking at the future of an interconnected world. It might be worthwhile to research the topic and attend workshops to find out more.
IoT & Smart Devices
IoT (Internet of Things), and smart devices are the fourth topic I believe is becoming increasingly important for software testers. Everyday, more devices connect to the Internet. From fridges to ebikes to sensors embedded in cornfields, there are many options.
Smart devices include smart speakers, glasses and watches, IoT devices, as well as smart speakers, fitness bands, watches and smart cars. However, they are still in use by millions of people, offering new “smart” features. Every device is constantly collecting data from you or about the environment and sending it to a backend system for further processing.
These devices are difficult to test from a software testing perspective. They come in many sizes and some offer different user interfaces. Some can be carried in a pocket while others are larger than a car.
They are all powered by software systems that connect to many APIs and use different technologies. This already presents enough challenges. Two other factors are important when testing IoT devices and smart devices. The first is the device’s hardware. Software testers need to learn new skills when working with hardware devices. We must, for example, be able flash a hardware device using a new version of software. To capture log files, and other things, we need to connect.
Location is the second important factor. It is no longer possible to test in an office. This is not a new concept if you’ve ever tested mobile apps before. However, IoT and smart phones require that you test the hard-and software combination in the wild. The product being used.
Imagine that you are testing an IoT sensor that gathers weather data in a field. Your testing will be greatly affected by the location. Keep in mind that there are many temperatures. The sensor can be exposed to rain, sun, wind, or wild animals. You can plan for many scenarios upfront.
I received push notifications from my IoT weather station while I was writing this article. It made me smile because I love this type of information. I believe we are only at the beginning of connected IoT devices and smart devices. There’s more to come, and more to test.
Shifting to the Left More Than Ever
I hope you aren’t too scared when I talk about the future of software testing, and the mentioned technologies. The mentioned technologies are my view and could have a significant impact on software testing. One thing struck me when I was looking at these four sections. Software testers must shift to the left more than ever.
These systems are complex already and will become more so in the future. Software testers should be involved in every phase of product discovery for new systems and products to provide feedback. You should also share your ideas and discuss risks. Here’s your task. Talk to your product manager about the possibility of being involved in the discovery phases. This will allow you to add value testing in this phase. It is possible that you are wondering who should be testing the software during those early phases. The answer is easy: the team. Everyone in the team must have a quality mindset. They should also be able test the system independently with your assistance. Do not put yourself in a position to become the “bottleneck”. This will not benefit anyone.
Software testers are in a bright future
We are glad you reached the end of this article. The last 2000 words can be summarized in one sentence. Do not be afraid of the future of testing. As long as software is running on a system, our testing future looks bright.