Marcin: Hello, my name is Marcin Dąbrowski, Chief Innovation Officer at ITMAGINATION. I've been working at ITMAGINATION for ten years and today I invite you to a meeting in the series Conversations With ITMAGINATION Specialists about the most important topics in IT. Today I'm joined by Grzesiek (Greg) Tomczyk and we will talk about the topic of Quality Assurance (QA) in the era of conducting project methodology. Greg, I will ask you to introduce yourself and to say a few words about yourself.
Greg: Hi, I'm Grzegorz (Greg) Tomczyk. I've been working at ITMAGINATION for over 5 years, or even six already. From the beginning, I've been part of our longest-running project in which we are creating and maintaining a fully customized ERP system for one of the biggest construction companies in Europe. I started as a Manual Tester in one of our internal scrum teams and now I'm a Team Leader of the testing team. I take care of the infrastructure development of our framework used for test automation. Additionally, for the past few months, I have also been acting as a QA Competence Leader, supporting the company in the recruitment and delivery processes. In my free time, I also like to indulge in my hobbies such as D&D, board games, figure painting, photography, and playing the guitar.
Marcin: Let's talk about quality assurance. In Scrum, there is a very strong emphasis on quality as a continuous process and included in the Definition of Done of each individual task. What's more, each sprint is to end with a package that is potentially destined for production. What does this mean for the software testing process as compared to the Cascade or Iterative approach?
Greg: In the past, the testing process was a bit different, the testers were usually a separate group that received the product or part of it for testing, and their task was to catch as many bugs as possible and then fix them. The process was effective but slow. Often conflicts arose between the tester and the developer, among others due to the fact that the tester team and development team were two separate entities with different goals. Currently, in the Agile methodology, we want to catch these bugs / errors as soon as possible, which means that we are able to fix them quickly and at a low cost. Thanks to this approach, we are able to release completed packages more often and faster. Of course, the testing process itself had to change in order to maintain quality. Now, more emphasis is placed on test automation, thanks to which we are able to catch errors very quickly and we do not need an army of manual testers to be able to keep up with the tests and provide the customer with the highest quality product.
Marcin: Often on this occasion, a picture of a pyramid of tests that stood on its head is brought up. Please tell me about it.
Greg: As I mentioned a moment earlier, the test process used to be based mainly on 'catching' bugs. With the agile approach, we try to prevent bugs from even occurring. We make sure to have the highest possible unit test coverage and to automate end-to-end testing of the most important elements of the system / product. As a sprint's Definition of Done (DoD), we have defined code coverage, which makes testing / quality as important as other artifacts produced in the sprint / project. Currently, the developers themselves, having such tools as unit tests or UI tests, are able to run them on their local branch / environment, check whether its changes have caused any regression, and then quickly correct any problems. In addition, we can integrate the launch of such tests into the CI / CD mechanisms, which means that we are able to quickly see the impact of changes on the stability of the entire application. Thanks to this approach, manual exploratory tests are the icing on the cake :).
Marcin: End-to-End test automation has seen a huge revolution in recent years. Cypress, Selenium, Protractor ... Is the tester today also just a programmer?
Greg: Definitely not, I personally think that to become a good automation tester you have to start with manual tests, it teaches you a specific way of thinking and combining. Of course, there are certainly exceptions, but unfortunately, I very often see people who start with automation, then something is missing. They think a bit more technically / programmatically and when testing, they lack the 'test' way of combining in defining scenarios, which is very important in this profession. But I agree with the fact that test automation has become very popular in recent years. As I said before with the test pyramid reversal, automation is key to ensuring continued quality assurance. In our project, we still maintain about 3,000 end-to-end test scenarios, and their execution within the CI / CD pipelines takes an average of 220h each time. That's 9 consecutive days of clicking for one person. Fortunately, with the resources being paralleled, we manage to activate all pipelines within 5 hours. Imagine what army of manual testers would have to be involved in the project to perform such a regression after each implementation into test environments, based on manual test scenarios.
Marcin: One last question to wrap up our conversation. If a manual tester wanted to know one tool that would allow them to advance their career towards an automatic tester, which direction would you direct them to today?
Greg: At the moment, thanks to various possibilities, low entry threshold, and constantly growing popularity, it would most likely be Cypress. Cypress is an end-to-end test automation tool that allows you to run and debug tests from the browser level, making it more pleasant to work with. It does not require much configuration and intuitive commands make it possible to sit down and write tests almost immediately after installation. In addition, it has well-written documentation that allows a quick start, and if someone prefers video tutorials, many courses are available, for example, on Youtube or on Udemy.
Marcin: Thank you for the interview, Greg. Finally, I just want to add that we are currently recruiting for the position of QA Engineer, Software Tester, and Big Data Test Engineer. For details, please visit the Careers tab on our website, itmagination.com. I also invite you to contact me or Greg via LinkedIn, both on our personal accounts and on ITMAGINATION's company account.