As a developer, I love building new features for an application. What I don’t like doing is testing. I know it’s a big part of my job. But when you build something that works you’re naturally proud of it. Testing is about making sure that things you built work across a lot of different scenarios. Of course, the only thing more frustrating is delivering an application to the business and having it break. Testing, therefore, is a necessary evil.
I’ve been a Mendix developer since 2017. It’s hard to think about all the different scenarios users might encounter. I know figuring out all those potential scenarios is important! I want to be certain I am delivering quality software to the team and the business. To do my job right, my code needs to be tested thoroughly.
If I build a new piece of code in an existing application, I have to make sure the existing features in the application still work correctly—a process known as regression testing.
“Regression testing is a type of software testing that ensures that previously developed and tested software still performs the same way after it is changed or interfaced with other software. Changes may include software enhancements, patches, configuration changes, etc.” (Myers, 2004)
Regression testing consumes a lot of time. Fortunately, there’s Mendix Application Test Suite (ATS), a suite of tools for automating testing created by CLEVR.
During my last project I was asked by my customer to use ATS in the development process. I hadn’t worked with ATS before, but I could immediately see the value. After viewing a quick video tutorial of how to install the ATS tools, I was all set and ready to go! Implementing ATS took about 10 minutes.
After recording test cases that were easy to create, I was able to check how my application was running. It was so simple, so I recorded more test cases and even added steps manually. Next, I started creating custom actions. I then started to think about creating a more formal testing structure and added a folder structure in my repository where all my test cases are organized—that makes it easier to find the test case you need when you write a lot of test cases.
Of course, it takes time to write all the test cases on an existing application. But when you have all those test cases organized, it is much easier to maintain the test environment. Regression testing now takes much less time. After adding new functionality to an application, you only need to build some new test cases. Each time you do a new commit, just run all the tests again to find out right away if your application still works. The sign-off on new code is a whole lot faster!
ATS allows me to be not only more productive, but also a lot more confident in the quality of code I’m delivering to the customer.
Myers, Glenford (2004). The Art of Software Testing. Wiley. ISBN 978-0-471-46912-4