I feel as though a lot of the tools that we are taught to use in school are introduced to us, but never really given the explanation that they really deserve. This month I was looking into testing automation, and especially in terms of the Gradle build automation tool. I have used it a bit so far in my college career, but I don’t think I ever understood the power of Gradle as a tool until I read more into it.
When we initialize it within a project we get a lot of options, but those are just setting up Gradle so that it knows what base settings we want it to use (like what programming language, etc.). It can run with these base settings, and so far that’s all that we’ve really done with it, and with the .yml files and GitLab’s pipelining it is a great look at basic testing automation, to get comfortable with it. But beyond this, there are so many configuration setting that can be tweaked within Gradle (especially in larger projects) that can radically change how testing is done. It is highly modular, and is built in 3 steps, each of which can be modified independently. It also has the functionality to not only report errors during the building and testing processes but also to tell you what issues it found and help you try to fix them.
On modularity, it allows you to customize testing tasks, add new properties, build a different model for testing. Basically any way that you would want to have a test done, you can have Gradle do it for you, automatically. And this can then be uploaded to a repository, where the whole team could use the same building and testing procedure each time. It saves time and effort on everyone’s part and ensures that every build is stable within the same environment, which makes testing more accurate.
Gradle Inc. is pushing this idea called “Developer Productivity Engineering” that is all about focusing on automation tools to increase the productivity of design teams. I think that this personally is a great idea, because unlike Agile, it doesn’t push as much for heavy management to create a more productive workplace, but it pushes for more automation in the development process so devs can spend time actually working on what they want to work on and not wasting time with time consuming tasks that could be automated.
I think it is Gradle and these kinds of automation tools that will make create a more productive and less stressful work environment for developers. It allows for easier CI/CD, but without having to do everything manually.