MageTestFest in Florenz. Netresearch war dabei
Die Entwicklung von Software und Quellcode ist generell ein komplexer Prozess. Es ist schlichtweg unrealistisch dabei keinerlei Fehler zu machen. Dies ist grundlegend auch nicht dramatisch, solange man Fehler früh- und rechtzeitig entdeckt und diese korrigieren kann. Daher sind Tests und Testautomation bei Netresearch stets integraler Bestandteile von Projekten, insbesondere auch in der Extension-Entwicklung für Magento und Magento2.
Nichtzuletzt legen wir besonderen Wert darauf, weil Netresearch für seine Auftraggeber auch die Betreuung, Pflege und Weiterentwicklung der entwickelten Lösungen im laufenden Betrieb übernimmt. Entscheident ist auf diesem Weg schlußendlich auch nicht "Alles" zu testen oder nur "Irgendetwas" zu testen, sondern den Fokus auf relevante und Business kritische Test zu legen. Mit diesem Ziel gestalten wir stets den Mix unserer Unit-, Akzeptanz- und Integrationstest in Software-Projekten und steuern diesen permanent nach.
Das MageTestFest ist ein Event der sich spezifisch auf das Thema "Testen mit Magento" bezieht. Derartige Events sind immer eine gute Gelegenheit sich mit den großartigen Akteuren der Magento Community auszutauschen. Die Diskussionen über anderen Standpunkte & Blickwinkel, das neue Testing Framework von Magento2, sinnvolle Maßnahmen & Tools, Best Practice Erfahrungen aber auch gemeinsamen identifizierte Schwierigkeiten & Stolpersteine im Prozess sind immer wertvolle persönlichen Erfahrungen. Diese bringen jeden einzelnen Mitarbeiter und somit schlußendlich auch das gesamte Team bei Netresearch wieder ein Stück voran.
Grund genug, auch in 2019 wieder zum MageTestFest nach Florenz (Italien) zu reisen und das Event mit einem kleinem Support Sponsorship zu unterstützen.
MageTestFest in Florence - A personal recap
From 5th to 8th of March the second edition of the MageTestFest was taking place, featuring two days of workshops, a conference and a hackathon in the wonderful city of Florence. It was organized by Jisse Reitsma and his team from Yireo. So many thanks to these guys first to be amazing & creative hosts.
My Netresearch colleague Benni and I as technical leads for testing with Magento took this ride to meet the Magento testing community to exchange and share our thoughts, ideas and best practices with all of them. Originally we even applied for a speaker slot but did not make it into the final selection. Anyway, we'll retry next time. Also, this trip was a good opportunity to connect with some of our friends and partners in personnel to deepen the common ExtDN engagement.
Arrival (Wednesday, March 6th)
We arrived on Wednesday after a short flight via Munich. Florence greeted us with early spring temperatures around 18°C. After reaching the hotel right in the middle of the city (and also basically a stone throw away from the conference location) and a short rest, we set out to do some sightseeing and also get some lunch. Since it was Wednesday and I could not go to DaVito (our weekly ritual for lunch every Wednesday), it had to be pizza!
Afterwards, we took a tour around the city by foot, visited some of the iconic places of Florence and enjoyed the good weather.
Conference and Aftershow (Thursday, March 7th)
During the conference, we already noticed something magical around us. The conference took place in the Odeon theatre, an actual medieval theatre, now in use as both theatre and cinema. Accordingly the venue was dotted with Magento inside jokes as fitting decoration:
Besides the special venue we saw that always 13 seats were in a row, probably a sign by Cthulu. The sound and the equipment was something else, even if we had black screens here and there. There were about 100 or 120+ attendees (sorry, hard to say) and most of them were backend developers.
Before the actual presentations started, we were brought into the mood with some trailers, you can watch them here (plus some interviews with iconic members of the community). The presentations themselves were interesting and gave us deeper insights into the possibilities of testing an application. We learned about useful tools, technical implementations and the future plans of Magento itself.
Vinai presented property-based testing, a testing method where you only specify the range of all valid inputs that your feature/function/API can consume and have to find statements about the state of the application that are always true (the name giving properties).
The tests get generated variadically from the range of possible inputs you specified via generators (that you probably will need to write yourself too).
While the initial investment is pretty high for those tests, the possible gains (in bugs uncovered) can outweigh any other testing method (said Vinai subjectively).
Anton showed us, how Magento wants to shift their architecture to achieve Service Isolation and can therefore be (in the long term) be developed and deployed separately or even exchanged with any SaaS solution that fulfills the component API. But he stressed that it's not the same as creating microservices. Magento will still be a monolithic application and can be deployed as such if need be. New modules could already be built with the new structure and can use the MSI (multi-source inventory) module as a template how to do it.
Also the talk from Stephan Hochdörfer gave us many good ideas through which hoops we could let our code hop before letting it out to the public.
The venue for the Aftershow was a small student club where we have member cards now :). It had an interesting interior, but enough space for all of us. During the Aftershow we had the chance to meet people around the globe and exchange experiences and technologies used. We got to know Lars from TechDivision. He told us about his work with Magento and the creation of the MSI module.
Hackathon / Contribution day (Friday, March 8th)
The venue of the Hackathon was in The Student Hotel and this place lived by its name. It has table tennis tables, restrooms and a very modern appearance. Along with the developers, we had Magento Core Members and Maintainers belonging to all kinds of departments. That's why the room was split into four sections. One area processed Magento issues related to the testing. The second area could test the performance testing framework by Blackfire.io. The third was Magento Marketplace related and the fourth was about converting tests from the old Magento Testing Framework to the new MFTF. However, you were encouraged to do whatever you like as long as it’s testing related, like working on test writing skills or in getting to know the tools presented on the previous day.
Benni had a few discussions with Leno Orobei from the Magento Marketplace team and tested PHPStan in conjunction with Magento and Paul wrote most of his first MFTF test for Ingenico with the support of Tom Erskine. As to be expected during a hackathon everybody was happy to share his knowledge and help anyone who got stuck.
After hearing how and what can be tested, we immediately created tickets in which we can test the new possibilities and ideally introduce them into our workflow for productive use.
Also a little list of infos and tools we also took away from the conference:
- Magento Marketplace will support MFTF tests for uploaded extensions and promote extensions that come with such tests
- Marketplace team wants to release docker image with all tools marketplace is using for extension review to reproduce the process locally
- MFTF is there to stay, having 7 dedicated developers for that project, version 3.0 will come end of this year
- PHPStorm can be run headless for CI context, therefore utilising local configurations in the CI
- Deptrac for defining architectural layers within a project and ensuring proper separation and dependency management
- Symfony Security Checker and the corresponding composer plugin
- phive, a composer for phar files
- infection for mutation testing (vaccine for your unit tests), talk von Bernard van der Esch
- Eris, a Quickcheck (haskell testing tool) port for PHP to allow property based testing
Further links around #MageTestFest
- #MageTestFest on twitter
- MageTestFest agenda at magetestfest.com
- 9 Common Misconceptions about TDD slides by Fabian Schmengler (integer_net)
- Mutation testing vaccine for your code slides by Bernard van der Esch
- Tools to improve the quality of your Magento project slides by Stephan Hochdörfer (bitExpert)
- Dealing With Testing Fatigue slides by Fabian Schmengler (integer_net)
- Code Katas for Magento 2 slides by Vinai Kopp
- Testing in Magento 2 slides by Vinai Kopp
- Unit testing in MSI by Igor Miniailo (Magento)
- MageTestFest 2019 - Ein kurzer Rückblick by Lars Röttig (Techdevision)