Meet the Team: Automated Testing Team
When you see the name Automated Testing Team (ATT) you might have an idea what the scope of this team is. But what is “automated testing” exactly? And what solutions are they using? In this interview we come and meet the team team members and how this team works.
What is the team’s main goal?
The main goal of the Automated Testing Team is to improve the code quality of Joomla and ensure its stability. To achieve that we work on automated tests, so tests which are run each time a code change is approved/merged or even just proposed by creating a pull request.
This means checking the code style and conformance to our system requirements (You don’t want to have code that doesn’t run on all supported platforms for example), but also running automated tests on the actual code. This can be split up into unit/integration tests, where single functions and methods in the code are tested with for example phpUnit, and system or end2end tests, where an automated browser acts like an actual human and executes certain steps for example in the backend to check if everything works as expected.
To run all this, we also maintain a continuous integration/continuous deployment system with Drone. Last but not least, we try to provide best practices and good tools for third party developers to improve their quality as well.
What is your place in Joomla’s ecosphere?
The Automated Testing Team is part of the Production Department and tries to support the actual development of Joomla. The goal is to automate what we can to make life easier for the actual developers. If our tools can automatically show you errors right away, developers don’t have to wait for feedback from the maintainers and maintainers don’t have to run through several loops of back and forth to ensure the quality of our code for each proposed change.
What roles do you have within the team?
The team doesn’t have strict roles, but our work areas can be roughly split in three parts:
- Writing tests for the actual testing
- Analyzing and implementing additional code quality tools like code quality checks and static code analysers
- Managing and supporting our continuous integration system
Team members: introduce yourself please :)
Hannes: My name is Hannes Papenberg and I’ve been the team leader since 2019. I’ve been working on Joomla in several areas over the last 17 years and in the team I try to do a bit of everything.
Harald: My name is Harald Leithner, since I started being part of the community I already was part of many teams in production and operations. I was a board member as Production Department Coordinator and I’m now a board member as Operations Department Coordinator. I joined the ATT several years ago and helped where I could. I’m administrating the drone infrastructure and maintaining our docker images. I’m also part of the TUF team where I write the infrastructure for signing Joomla updates for the future auto update process.
Robert: I am Robert Deutz. I was team leader before Hannes took over, I try to help where I can. Not being on this team only means I don’t have so much time I would like to have. At the moment the move to cypress is at the top of my list.
Llewellyn: My name is Llewellyn van der Merwe, and I am honored to be a part of the automated testing team, though I may not be as active as others and consider myself as one of the more junior members. Two years ago, I had the opportunity to write scripts to automatically deploy Joomla on 300 servers for a pizza bugs and fun event, which was an exciting and enjoyable experience. This is also what led me to join the team. Currently, I am maintaining our official Docker images and have developed a script called OctoJoom to simplify the deployment of Joomla in a Multi Docker environment for 3rd party extension developers. Additionally, I keep an eye on the automated aspect of the language distribution infrastructure and assist in a number of other areas of the Joomla ecosystem.
Niels: My name is Niels Braczek. I have a lot to do with software quality and automation in my everyday life. So my affinity for automated testing is only natural. My role in this team is to support Llewellyn with my Docker expertise.
How often do you have meetings, and how do they take place?
While we should have regular meetings, the reality is that right now we rarely meet. Most coordination and activity is handled directly in pull requests or via chat on Mattermost.
What tools do you use to work together?
Our main tool is Github with discussions in pull requests. Besides that, we might pitch ideas between each other in Mattermost.
If you had three words to describe the atmosphere within the team, what would those words be?
Considerate, precise, relaxed.
How did the team develop over the last year(s)?
The team has achieved quite a bit in the last few years by standardizing further towards industry standards like PSR-12 for the code style, adopting cypress for system-/end2end-testing, consolidating the tools we use towards just one set and providing more coverage for our repositories.
Unfortunately the work in the team often is rather advanced and thus the number of new people interested to join is rather low. Together with people reorienting themselves in their lives, our team has been shrinking quite a bit.
What difficulties do you face, and how do you (plan to) overcome them?
The main difficulties we have are too few people and too few actual tests in phpUnit and cypress. We want to interest more people for the team this year to overcome the issue of team size and with these new people, we hope to be able to fix the lack of tests as well.
Do you need extra volunteers, and if so, in what capacities?
We can definitely need more volunteers. If you know your way around phpUnit or cypress and want to improve our current testsuite, you are very welcome. If you want to look deeper into static code analysis or continuous deployment, we would have tasks for you, too. We are also looking into creating a documentation page where all our form elements in Joomla are properly documented and tested in real time.