It all started many decades ago but escalated on the 30th of November 2022. OpenAI introduced the first more sophisticated AI chatbot that changed a lot of things in the AI world as we knew it and changed a lot of things in the IT industry in general. With the creation of ChatGPT, many people in IT started asking many questions, but the most frequent and most common for all positions was: Does this mean that our replacement is being actively created by… Us? Well, from my perspective, and I’m now talking about QA: The answer is both Yes and No.  

In more recent events, this situation was also seen with the introduction of automation testing, when manual software testers were also scared of what automation would mean for their professional future. This article should partly answer this question but also help you by giving you an idea of how to harvest AI-powered tools to do your job more efficiently whether you are a manual or automation QA Engineer, Analyst, Specialist, or any other software testing role. 

We, humans… We are somehow hardwired to fear the unknown. That is okay because the unknown leads to uncertainty, and not knowing your future can be scary. That said, history has taught us that advancing technology can affect people’s jobs, but someone is always needed there in the end. I can think of one good example unrelated to the IT industry: the Industrial Revolution. 

Before it happened, as you may know, almost everything was done by hand. After it happened, everything that machines could do was done by them. Which also led to mass production at some point. But were handmade products extinct? No. They were greatly reduced and transformed, but not extinct. They exist even today, a few centuries later.  

As a matter of fact, as people were more on the side of buying mass-produced goods, the value of handmade products was increasing. Were those handmade products created entirely by hand? No, some machines were also used, but quality over quantity was more important. Therefore, someone who bought the handmade product could be more certain that the product purchased is of better quality, has longevity, is created by the exact customer needs, and is unique compared to other mass-produced products.  

What does this mean for people in IT? This means that we should embrace all changes and use them to improve ourselves, because if we are not investing in ourselves day-by-day and using any available resource to be a better version of ourselves – we are doomed to be replaced by someone, not necessarily an AI, but a human as well, the one that is constantly investing in themselves. 

While AI can automate repetitive tasks and/or enhance efficiency, it cannot fully replace human intuition, senses, creativity, and domain expertise – at least not in this stage. 

So, how can we improve ourselves by using AI or AI-powered tools in software testing? 

Manual Testing and Test Documentation (Mostly Focused on Functional Testing)

AI algorithms can automatically generate test cases by analyzing code, requirements (user stories, acceptance criteria, or any other user-defined prompt), and historical data. AI can also assist in generating realistic test data by analyzing input-output examples or patterns in the data or simply by user-defined prompts. Using AI this way eliminates the manual effort required for test cases and test data creation, and using AI in creating test cases ensures comprehensive coverage of various scenarios, which sometimes can even include edge cases.  

AI test generation significantly accelerates the testing process, allowing testers to focus more on tasks such as test validation and analysis, leaving the necessary time to do more exploratory testing or even focus on edge cases or possible gaps in software/feature design. 

AI-driven test case prioritization algorithms can analyze factors such as historical failure data and business priorities to intelligently prioritize test cases. They highly prioritize test cases related to the part of the software that, according to historical failure data, had many issues in the past. By focusing on high-risk areas of the software, testers can maximize the effectiveness of their testing efforts and identify critical defects early in the development lifecycle. 

AI can also inspire during brainstorming sessions about testing scenarios for some parts of the software or explain potential issues that can be introduced with certain implementations. This can be helpful if the team you are working with is small or busy, or you are the only software tester in the team, so this way you can have someone who can give you a quick idea or quick explanation about something you would otherwise have to invest more time and energy in doing your own research. 

Example tools: Taskade, ChatGPT, Microsoft Copilot, Jira AI Test cases generator. 

Automation Testing 

AI plays an even greater role in automation testing by enhancing test case design, improving test coverage, and enabling predictive analysis. AI-driven testing platforms leverage machine learning, natural language processing, computer vision, and other AI techniques to intelligently automate various aspects of the testing process, from test case generation to result analysis. With the use of machine learning from various AI automation tools, test maintenance is also greatly reduced with a self-healing function that automatically identifies and fixes errors in tests that are affected by code changes.  

Another great feature of AI that would help many, especially those who are at the beginning of their automation testing career, is pair programming, but this time, one of the two is human, and the other is AI. This AI feature answers your coding questions and writes or debugs code for you. It also explains what some piece of code does or simply helps you with finishing your code so you don’t have to – like a type of auto-suggestion/completion.  

This type of AI help has proven to have a great impact on work efficiency and accelerated the pace of creating stable automation test cases, leaving more space for testing the code and thinking of possible gaps or bugs in the code. Even the most famous forum, most visited by all IT professionals, Stack Overflow, has announced that they made a groundbreaking collaboration with OpenAI (ChatGPT) by combining the use of both product’s APIs to “create” OverflowAI, which will help users who are visiting Stack Overflow to find a solution to their problem quickly.

By simply asking a direct question about a problem you have, AI would give a direct answer to how that problem can be solved, as well as with sources where you can also check for additional information. If it’s not clear already, AI will use hundreds of thousands or millions of Stack Overflow articles asked and answered by millions of human users to get knowledge to answer your questions. 

On the other hand, if you don’t have much coding skills, and you would like to try out automation testing (UI), there are various AI tools that can help you create automation tests on different platforms and devices with simple natural language – human language. You don’t even have to worry about HTML element locators, AI does everything for you. 

When it comes to API automation testing, there are a lot of tools that can be used, but one of the most often used is Postman. They just released Postbot, an AI-powered assistant that uses natural language as input to help you understand and create tests from large quantities of data. Postbot can also create API documentation in a single click, so you don’t have to. The least you can do is to double-check if everything is correct. Another great feature of Postbot is that it’s capable of displaying JSON responses in a different visual representation, so you can quickly check for the information you need in a table, chart, bar graph, or any other way you want. 

Another example of successful AI use is using visual bots in so called visual testing. There are AI tools that can check web and mobile applications, PDF and other document files, or separate components on different browsers, resolutions, devices, and platforms and check if visual changes were introduced with code changes. This way QA team can have a more efficient regression. Also, if you are familiar with this field, you can add this tool (Applitools Eyes) to work with your existing automation frameworks such as Cypress, Playwright, Selenium, etc. 

Example tools: GitHub Copilot, Testim, Functionize, askUI, Postbot, Applitools. 

Performance Testing

AI can be used in performance testing to enhance various aspects of the testing process, including workload modeling, test script generation, and anomaly detection. 

Workload modeling means that AI algorithms can analyze historical usage patterns and performance metrics to predict future workload scenarios by identifying peak usage periods, traffic patterns, and resource utilization trends, AI-driven workload modeling enables testers to simulate realistic load conditions and ensure that applications can handle expected levels of traffic and usage. 

Test script generation means AI-powered tools can automatically generate test scripts based on application usage data and performance requirements. These tools analyze application interactions, user workflows, and API calls to create realistic test scenarios, reducing the manual effort required for test script creation and accelerating the test design process. 

Anomaly detection means that AI-powered tools can monitor performance testing metrics in real-time to identify deviations from expected behavior by analyzing patterns and trends in performance data. AI-driven anomaly detection tools detect anomalies such as sudden spikes in response times, memory leaks, or resource contention issues, enabling testers to proactively identify and address performance issues before they impact users. 

Example tools: NeoLoad, LoadNinja, DynaTrace.

Security Testing

As technology evolves, intrusion detection and fixing security issues become critical. AI has become a go-to solution to stimulate realistic attacks and evaluate a system’s defenses more efficiently and effectively. With a high demand for experienced security experts and a low supply, many companies are trying to find a solution to this problem. One idea was to train AI to become security experts with the training of human security experts, lowering the demand for high-quality security experts. 

Why would you use AI in security software testing? Well, hackers are always a step ahead, continually attempting to breach your systems. Understanding a real attacker’s behavior can be challenging. With AI, you can train models to identify and exploit software vulnerabilities, helping security testers comprehend attacker behavior in real-time. This enables your team to anticipate and address vulnerabilities effectively. Furthermore, automated security testing often falls short in detecting new vulnerabilities. However, AI can help discover previously unknown vulnerabilities. AI can uncover these new weaknesses by simulating human interactions, enhancing overall testing efficiency. 

AI can analyze large data sets, such as logs and reports, to identify potential vulnerabilities and threats ahead. Algorithms driven by artificial intelligence possess the capability to examine through extensive security data and user interactions, learning from patterns to accurately prioritize genuine security vulnerabilities. With discovered deviations from typical system behavior, AI can flag potentially problematic patterns. Whether through supervised or unsupervised machine learning, solutions powered by AI can detect patterns indicative of various threats within extremely large datasets. 

Furthermore, AI can analyze your application’s unique features, and user interactions. AI-driven tools offer more precise and personalized security testing, addressing gaps often overlooked by traditional methodologies. AI can be effortlessly incorporated into Agile and DevOps frameworks, enabling continuous and quick feedback in testing. This, in return, allows early detection and resolution of vulnerabilities. 

Example tools: Functionize, Testim, BurpGPT (framework for Burp Suite).

Accessibility Testing

AI can assist in accessibility testing through various means. Initially, it can automate numerous tasks important to accessibility testing. For example, AI has the capability to inspect websites and applications, pinpointing potential accessibility issues like absent alternative text for images or inaccurately labeled form fields. 

Furthermore, AI can play a role in guaranteeing the accessibility of websites and applications for individuals with diverse disabilities. For example, AI can replicate the usage experience of a website or application with a screen reader or similar tool by checking if images have an adequate description. When reading aloud is done, it can help users with health difficulties to have the best user experience using the web application. Furthermore, AI can also check if everything on the webpage is accessible only by keyboard, if font type, font size, or word spacing is adequate, if contrast or saturation is adequate, and so on. Again, improving the user experience for users with health difficulties. This helps detect potential barriers that could make it harder or impossible for individuals with disabilities to use the software. 

AI can also help the QA team check that accessibility testing is comprehensive and consistent. Compared to humans, AI can analyze large amounts of data more quickly and accurately, ensuring that all potential accessibility issues are identified and addressed. 

Example tools: Axe by Deque Systems, UserWay, AccessiBe. 

Bonus Material: Using AI to Make Professional Presentations 

AI can help you prepare quickly and effectively for important client or company demonstrations, sessions, or lectures by creating a nice-looking presentation. You can seamlessly create photos, videos, or animations with exactly matching subjects or upscale some images you already have to a better resolution and quality. You can even change something from that photo to your liking. Need a song for your presentation or video? You can create it with your original lyrics or generate them with an AI chatbot. You can also use it to scan your document and then chat with AI about it if you need quick, last-minute updates about some subject. 

Example tools: Decktopus.AI, PopAI, Dall-e, Microsoft AI Designer, Krea.AI, Invideo.AI, Canva, Suno, Riffusion 

Conclusion

Throughout this article, you had an opportunity to read about the pros of using AI, but you may have yet to notice that not all is that simple. AI also has cons. I won’t go into details for this one because it is constantly changing and evolving, but the general issue with AI is that it’s not human (duh, obviously). Let me elaborate on this statement. Imagine AI as a very intelligent and smart baby without any life knowledge, social skills, or any other experience we humans go through. You must be very, and I mean very much aware, that what is obvious to you and probably to almost all around you may not be that obvious to AI. The best example for this is the most famous AI-generated image produced by the prompt “Mother Teresa Fighting Against Poverty”:

I’m sure that any human being with a knowledge of who Mother Teresa was and knowing her backstory would not think about this scene when thinking of her fighting against poverty. The contextual meaning of “fighting against poverty” is that we humans would connect differently in the same sentence as Mother Teresa. On the other hand, AI understands that sentence in its own way, often letter by letter, most literally. When using AI in any way, you should be precise and give as many details as possible to have a good chance of getting what you want. Even then, you should always double-check to see if everything is as you want. Otherwise, you may end up with undesirable results, wrong information or code, false positive or even worse, false negative results, etc. All of this proves that AI is just a tool, at least at this stage, that can help us to be more effective and efficient in our job, but in the end, humans are still very much needed in software testing for the quality to be achieved and maintained. 

Author

Milan Stanojevic

Quality Assurance Engineer