You’ve likely heard of ChatGPT, the most recent step forward in Natural Language Processing. It has gained over a million people in just five days and is trying to take over the web. Even though the free AI robot has only been around for a few weeks, it is becoming increasingly famous quickly.
This is because it can give clear responses and clarifications and do complicated things like writing an article or telling a joke. ChatGPT helps web and mobile workers automate tests since it can write test cases in different platforms and languages. Let’s think about what could happen.
What exactly is ChatGPT?
ChatGPT was made by OpenAI. It is a big language model. It was fine-tuned with guided or reinforcement learning on large datasets. ChatGPT looks at the data and uses algorithms to find trends that show how words are used in real language and context. It’s a conversation model, so it’s meant to be used as a back-and-forth discussion.
You can tell ChatGPT to say anything you want, as long as it isn’t rude. ChatGPT can give original and on-topic answers, and it usually tells you why it gave a certain answer. It can also remember what it said before and carry on logical discussions. People have asked ChatGPT to do everything, from writing folk songs regarding beer to answering questions about the science of dirt.
ChatGPT and Automated Testing
A fascinating feature of ChatGPT for people who work with software is that it can show suggested code based on a simple request in natural language. It can write code in many different languages while employing a wide range of built-in tools in those languages.
So the obvious inquiry is whether ChatGPT may be used to make code for automatic testing. ChatGPT can write better automation code than I can. Nikolay Advolodkin of Sauce Labs demonstrated that ChatGPT could compose Selenium code in multiple languages.
But it’s not enough to be able to write code that works. In a perfect world, you would be able to tell ChatGPT which tests to run, and it would know everything about the version of the website you are testing and give you perfect, usable code that doesn’t need any changes.
ChatGPT is unable to do that right now. Still, all that it can do are pretty cool. Let’s explain how ChatGPT could be utilized as a new low-coding technique, not a tester replacement.
What exactly is Low-Code Testing?
Low-code development lets people write code even if they haven’t done it before or haven’t done it much. They can do this in regular English or on systems with drag-and-drop tools. Low-code testing options make it easier for development teams to grow by making writing test code easier.
Organizations can start writing automated test code faster with low code because people without technical skills can write tests. This decreases test debt. ChatGPT is a strong tool that can be utilized to make test cases that don’t need much or any code.
ChatGPT utilizes natural language, meaning people can write how they want and still be heard. On the other hand, template-based models usually depend on certain grammar patterns or keywords. As we’ll show, ChatGPT makes excellent scripts, classes, and methods for test automation.
Low-Code Languages: Cucumber
ChatGPT can make many languages and tools, but making Cucumber code is the best thing it can do. Behavior-driven programming is used by the testing tool Cucumber. Scenarios in a feature film are written in plain English, with words like Given, When, and Then as keywords. Then, such common language words are related to the code in step definitions.
Cucumber makes it simple to keep track of tests because its scenarios combine the common language description of a test with the automated code that runs it. This makes it easier for testers who don’t know as much about test code to understand how the test purpose links to the test code, which is written in a common language. This shows ChatGPT’s power: it can start to make code that sounds like normal language.
ChatGPT and Cucumber’s test cases
The next case shows how good ChatGPT is at writing code. Cucumber can make both cases and step outlines simultaneously with a simple request. You don’t have to tell it what Cucumber needs to do to move independently.
Even though the request doesn’t say what to test on the website, ChatGPT makes a script to test the search feature, which is the most important part of the Google website. In this case, the “q” in the Google search form is correct.
A basic script that is easy to use
ChatGPT can usually write code, but not every website is as famous as Google. Even though it was right about “q,” that doesn’t mean it will always be right. And we know from checking ChatGPT that it will make one up if it can’t find an element.
Finding and changing all the element locators in the created code is a lot of work, but the issue can be eased much easier by splitting the code for the About page from the code over the test cases. When we use a page object model, we can change the code if the app’s layout or component locators change between tests.
This makes it easy to update the test script. In the next example, we make a general test for a website’s login page using Cucumber and Python, and we tell ChatGPT to utilize a page object model and class variables to find elements.
The LoginPage object was made with the right name by ChatGPT. The object handles common login page tasks like adding a username, and the element locators are shown as class variables.
At the end of the example, the step descriptions show how to connect with the website using the ways on the login page. A user can use ChatGPT to do it automatically or create cases by hand to test the website and get a working test code!
Changing and fixing code using ChatGPT
When you closely examine the step code, you can see that all test input values, like the URL, login, and password, are hard coded. It’s unlikely that the website you’re looking at will be “http://www.example.com/login” and that “username” and “password” are going to function as your login information.
And these numbers don’t have to be hard-coded; Cucumber can obtain variables from the feature picture and use them in the cases. But what if you don’t recognize how to style it or don’t want to change the code everywhere? You can fix it with help from ChatGPT. We can fix the problem by instructing ChatGPT to keep changing its written code.
Instead of hard-coding results that are probably wrong, the new step methods read in the numbers we asked for. One of the best things regarding ChatGPT is that you can tell the system exactly what you want to change in the code because the model is a chat. It does a great job of listening to and doing what you ask.
Conclusion
ChatGPT is a very strong natural language model with a lot of promise. It has many promises and will probably be the best low-code testing option for many problems. It might help with testing, but to use ChatGPT, you need to know a lot about the language and the app you are testing. But we shouldn’t have too many questions. ChatGPT is a great way to turn normal words into code, which was previously impossible with other models.