In recent years, the very usefulness of testers has been called into question with the emergence of automation and the advent of agility. The arrival of DevOps, coupled with software craftsmanship, the recent emergence of agility-at-scale and built-in-quality (building quality into the product rather than checking it after the fact) have also raised a lot of questions concerning the position and role of the tester.
If developers are handling the testing and quality aspects, what’s the point in having testers?
With this article, we will be presenting our vision of the changing nature of the tester’s role faced with these developments and the need to adapt to this new environment so that “humans remain at the very heart of software testing practices”.
how are the various technical and methodological changes forcing us to reinvent ourselves in order to be the standard bearers of quality in the development of software solutions?
Historically, the role of a tester was to manage testing activities on a development project. For this, he chose and implemented methods and solutions for describing or monitoring tests and automating the performance of testing, which could reduce his role in the search for anomalies and exhaustiveness in the tests. The tester therefore had to demonstrate his added value in the implementation and ongoing improvement of testing strategies and associated processes based on ISTQB principles.
With agility, development and production cycles are becoming ever shorter. Clearly, optimum use of automation is the way forward. Some feel that having complete mastery over it all will be the path to take. However, beyond the technical aspects, the role of the tester is essential to ask the right questions, as opposed to a strategy of automating everything and anything: what are the critical paths of the application? Are there any critical components? Will the scripts be easily maintainable and scalable? Because let’s not forget that automation is not a test, but rather a means to get there.
Additionally, we are not in a race to find all the micro-anomalies because in any case it’s impossible to be exhaustive (second principle of the tester) but we must demonstrate that the developed software works as expected. The role of the tester becomes that of a communicator, who refines the understanding of the need, defines the risks, manages the priorities concerning the components and functions to be tested, raises awareness among developers regarding quality so that they can fully play their part in achieving it, all this while also favouring collaboration, in particular via the “3 amigos” workshops.
The arrival of agility-at-scale has introduced a further change in the tester’s role. In the SAFe framework, there is no mention of an organization or a role solely dedicated to test management, whether for strategy, tools, or expertise. “Quality” is everyone’s responsibility and the roles of the test manager or test leader are not clearly identified in this system. One reality of the SAFe Framework is that testing, an essential process for evaluating the quality of an application product, is only present in a fragmented way as a team objective; which can be very disruptive for a “legacy” organization with dedicated test teams and a well-established organization, as well as strong roles, hierarchical responsibilities and managerial positioning. For project teams, finding themselves in a large and interdependent environment raises questions about the types of tests to be carried out, the implementation schedule and the stakeholders involved. Do they need to run a huge end-to-end testing campaign? Who manages the overall testing strategy, the detailed testing strategy? Should the testing tools be standardised?
Faced with the deployment of these practices, the role of the tester and in particular of the test manager is evolving towards a role of coach to immerse and train the project teams in good testing practices at scale. He is therefore a facilitator for some, and a mentor or expert for others. In doing so, he must develop his skills with agility-at-scale frameworks and boost his interpersonal skills, such as communication and the ability to convince. He must also offer new ways of understanding complex test strategies in a short period of time, which can be the case with the mastery of BPMN type visual management to easily and collaboratively identify the critical paths of an application and quickly grasp a business context.
At scale, automation testers must also understand the interactions and complexity of the application ecosystem in order to study the possibilities of end-to-end automatic testing.
The DevOps approach and Software Craftsmanship see development as an activity for craftsmen, where the quality of the code, excellence and pride in the finished product are essential. It’s not enough for the software to be simply functional, it must be well designed, maintainable, scalable and free of anomalies in order to deliver the value expected by the customer. The “Crafts” objective means guaranteeing the reliability of applications by incorporating quality from the start of the needs-definition process and throughout the life cycle of the product. Testing is a central aspect of the method with shift left and iterative approaches around TDD / BDD in order to guarantee more scalable code. But what then becomes of the tester? Does he still add value? Are his activities compatible, complementary or competing with the craftsman? Or will the Craftsman replace the tester and find himself playing a central role regarding software testing practices?
In reality, in this context, the emergence of DevOps and Software craftsmanship can only be a benefit with the implementation of TDD / BDD. The craftsman becomes an ideal and constructive partner during the “3 amigos” workshops, where technical excellence allows for greater mastery of agility and makes it possible to ask the right questions and therefore to promote dev / test / business-client collaboration. During these workshops, usage and acceptance scenarios reinforce an understanding of both the needs and the acceptance criteria. The testers, through their experience with the system, support this role-play, and they are the ones who run these acceptance test scenarios.
This approach makes it possible to put quality centre stage during the product development process: this sharing of the vision and of the test strategy allows for effective and constructive collaboration. The craftsman and the development team use the test as a core factor for testing during the development phase, and the tester tests to verify and validate requirements and usage cases in a functional way. The role of the tester can therefore evolve in line with improvements in quality by favouring interactions. He can refine his testing programmes (manual and automated) and incorporate exploratory testing while bringing his vision of the test to it.
This quest for excellence therefore obliges us to further improve our skills in agility and DevOps as well as our skills in listening and collaborative communication with a positive critical mind.
To summarise, our role is evolving in line with two main trends and in two ways:
- Towards a more technical role, focused on automation with in-depth technical skills regarding architecture and test resources, on DevOps tools (pipeline, Docker, etc.) but also with good compression concerning agility.
- Towards a more methodological role, with a knowledge of complex projects, the mastery of good testing practices as well as the concepts of agility, DevOps and agility-at-scale (ATTDD, TDD, BPMN, 3 amigos, example mapping, etc.).
In addition to technical skills in this ever-changing world, the development of interpersonal skills is essential. We should mention for example:
- Positive critical thinking
- Methodological and technical curiosity
- Continuous learning
We have found that any software development must strive for methodological and technical excellence, and even more so in an agile context. This context of change, which seems to be shaking up or even eliminating the role of the tester, can be a source of fulfilment and a new opportunity, allowing him to become a “real agile tester”.
This is why the common values of quality, sharing and collaboration mean that quality and therefore testing can assume their full potential.