Throughout its history, testing has repeatedly proven to be a necessity and a constant. Adaptability and flexibility within a few decades of change have also been key traits of this area and it goes without saying that keeping the right mindset has been and continues to be essential for testers to fit into the large testing process perspective. In this article I will go through the key moments in the evolution of testing, make a concise analysis on its current status and also try to shift focus onto the realms of the future by pinpointing the ways in which the ever-changing technologies could reshape testing.
Testing the history. Or the history of testing
The 50s were known as the Start Era, during which testing meant debugging. The most remarkable fact that marked this decade was the development of the Turing Test in 1950. Turing test verifies a machine’s ability to exhibit intelligent behavior. This test has become an important concept in the philosophy of artificial intelligence.
Start Era was followed by Functional Era, where testing’s main purpose was to prove that software worked. Functional testing was born during this time and became the basis of the testing process. Also, these were the years when the first test team was created for the first human spaceflight program of USA (Project Mercury) and NATO mentions for the first time the term of Software Quality Assurance in 1968.
In the 70’s testing shifted from the Functional Era to the Schedule Era. If, during the Functional Era, testing’s purpose was to demonstrate that software worked, during the Schedule Era testing’s purpose became to destruct, to demonstrate that software doesn’t work. G. Myers states in “The art of Software Testing” in 1979 that “testing is the process of executing a program with the intent of finding errors”.
In just one decade the entire mindset changed, and testers began looking for as many bugs as possible. Unfortunately, this mindset still thrives today. Sometimes this mindset goes beyond functional, and some testers see developers as their enemies and not as their team-mates. It is important to bear in mind that the focus of the team should be the development of a functional product, and not the hunt for bugs or edge cases.
Moving on to the ‘80s, the Cost Era, applications were released very late into production, so the cost of testing exploded. It was the time to reduce the testing time and make sure the quality of the deliverables remained in an acceptable range. In the Guideline for Lifecycle Validation, Verification and Testing of Computer Software, published in 1983 testers are informed that: “a carefully chosen set of techniques can help ensure the development and maintenance of the quality software, meaning that testing will reduce the risk of not working to an acceptable value”.
The last testing era, the Quality Era is the one we are still in and it’s marked by prevention, as testing became a mental discipline that results in low-risk software. The quality of the end products is a collaborative process between all project’s stakeholders.
Tester’s profile now
Currently we have two major tester profiles: technical and business. Of course, every tester is a mix of these profiles, but there is a dominant one due to the person’s abilities, competences and experience.
A technical tester should be someone who understands the architecture of the application, who can look beyond the user interface and can make logical gates through all the systems that are interconnected. He can develop and work with scripts and tools to ease his work, he can automate both front-end and back-end. Also, he should be able to investigate issues from logs or other system feeds, and finally he should have security and performance knowledge.
On the other hand, the business tester should be able to identify the client’s needs and go even further to support the alignment of the business operational processes. He reviews and analyzes the project requirements, and based on them develops test strategies, plans and designs. He should be able to provide risk assessment and solutions for the situations that might occur.
What’s behind the corner?
While tackling the near future of testing, I identified four great pillars that will influence us as testers maybe sooner than we think:
We will have more automation because of the speed pressure. Everybody needs to get faster in production. In a CI/CD pipeline, news is that several daily deploys might occur. Testers will blend with DevOps to make this process faster without affecting the quality of the product. Everything that is repetitive will be automated. Regression testing will be fully automated using even codeless test automation tools. Manual testing will be executed only by business testers, who will check the business flows and will run the user acceptance tests.
In order to keep up with the development teams, automation will not be enough, so Machine Learning will help optimize test suites, get predictive analytics, log analytics and defect analysis.
Big Data will help us with real-time scalability challenges, consumer partitioning, social indexing, data mutation, instant data collection and deployment in a growing environment of huge data amount.
Internet of things
Today everything goes toward connecting things using your phone, having intelligent homes, appliances and so on. The challenges which we will need to handle are related to access management, compliance requirements, integration management, data security and 3rd party data sharing. All of these to use the things we need every time, and instantly.
Should we be afraid of the far future?
There are several paths and topics that are discussed by researchers and analysts regarding the way in which testing will shift, but I would like to debate one of them: Artificial Intelligence.
Currently a buzzword, Artificial Intelligence is the new big thing that is already here. Its potential is huge, and it can help not only testers and testing process, but also the entire humanity.
AI classifies as follows:
It’s used to turn big data into usable information by detecting patterns and making predictions.
Examples include Facebook’s news feed, Amazon’s suggested purchases and Apple’s Siri. Email spam filters are another example of Weak AI where a computer uses an algorithm to learn which messages are likely to be spam, then redirects them from the inbox to the spam folder. Narrow or Weak AI systems do not have general intelligence; they have specific intelligence.
Strong AI or General AI will be reached when the AI intelligence will meet our intelligence. For example, AI will be able to decode 3D images or make simple everyday tasks. Strong AI will be able to learn and update itself on its own without any instructions. It will go through a trial and error process. This whole process is known as recursive self-improvement.
Super AI is said to come exponentially faster than Strong AI. Super AI means that AI’s intelligence will become greater and vaster than human intelligence. They will even be able to predict human behavior better than us. How much will we trust them in doing so? How can we determine which improvement is ok and which is not?
Bill Gates, Elon Musk and Stephen Hawking say that the super AI era will mean the end of humanity. Others, including Mark Zuckerberg, say that Super AI will make the world better and we as humanity will enter a new era described as “abundancy”. Every price will drop, humans won’t need to worry about jobs or processes because everything will be cheap and affordable. But how can we develop and test them?
- How can we test them to be 100% sure they can relate to our core values?
- How can we make the AI understand the context and make decisions based on lots of data, history etc.?
- How can we give them the perception of good and bad, especially since we, as humans, still have struggles about the two quintessential notions?
- When should we start thinking and developing this kind of human core value?
I know, lots of questions without any answers. Which makes me talk a bit about the last AI part, Artificial Emotional Intelligence, which can come any time after the weak AI. It can come before Strong AI, or even after Super AI.
Artificial Emotional intelligence
It’s about recognizing, interpreting, processing and simulating human experience of feeling or emotion. This AI will have empathy. I think this AI component will be very important in the future of our human species because only by combining this affective computing together with the AI, we can remain optimistic that robots won’t take over. We need to start thinking and developing the Emotional AI. The sooner the better.
- But then again, how do we test it?
- How do we test emotions or feelings?
- How do we test that a robot feels something?
- How do we measure if a robot is empathic?
- How do we say if a robot is sad or angry?
It’s hard for us to identify these feelings in the humans near us. Just think about a person who is angry, but it’s smiling even if on the inside it’s just like a volcano. Will the robots be able to decode this anger? How? Again, a lot of questions with no answers. Do you see this happening in the far future?
The testing process we know nowadays is based mainly on its core developed during the 50’s and the 70's. Due to our current socio-economic context, testing process will have to be faster and will have to ensure a higher quality. At first sight this could mean that testers will become extinct. While this might be an option, bear in mind that even if testing will be done by machines or AI, we will still need persons to check and make sure the business flows are according to the human’s needs.
It might be possible that we will be called, data analysts, or business testers, or beta testers, or whatever, we might lose our name as testers, but our mindset and our values will persist.
I dare to say that the future of testing will be like pit stops in formula 1. The ones who will execute the fastest testing and will first reach the market will have the biggest revenue. So, how are YOU preparing for the future of testing?