Having functional testers with no IT development skills perform automated tests is at the heart of the system set up by Agilitest. This point does not necessarily have consensus in our profession, so why is it important for us, here is our point of view.
Software test automation
This article will not deal with the question of automating unit tests and integration tests, on which there is a general consensus: the implementation of software test automation generally begins with this relatively controlled phase, this activity is carried out by the developers, they are autonomous, use their development tools, and have a good understanding of the developments they have made.
The next question is: what about functional tests? what are the problems encountered by teams in automating them? and why is it important to make test teams autonomous in this area?
Functional tests are generally performed by teams of professional testers who know the business and its rules, which are implemented in the software. Their field of intervention goes from the testing of the main functions of the software (functional testing) to business scenarios, the use of a set of complementary functions of a software to perform a complex operation (business testing). The latter can be carried out by following pre-defined scenarios, which are generally real customer cases that we must absolutely ensure work, or by exploring areas of operation that could make sense for certain customers, we then speak of exploratory tests.
These exploratory tests are the grail that business testers dream of achieving, because they allow them to evaluate real complete customer cases, to apply their knowledge of the business, to evaluate the user experience, the sequences and the graphics.
Obviously, exploratory tests cannot be automated, even if we might carry out automatic random combinatorial tests between several predefined scenarios. It is therefore important that functional testers' teams can save time on functional tests and business tests with predefined scenarios.
The Test Automation Dilemma
The functional tester teams are experts who have, in general, little knowledge of computer development, and unfortunately the majority of current software automation functional tests require to write code.
The automation of functional and business tests therefore requires a continuous dialogue between them, who specify the tests, and the development teams, possibly dedicated, who carry out the tests. When the software evolves, each test will also evolve, and so the exchange between the two teams quickly becomes an incessant ping-pong game. We are only talking about test execution, but if we add the test maintenance, this generates a workload and analysis that can quickly become significant. Indeed, there are different causes of a failed test in continuous integration: a real bug, the test must be reviewed or there is a flaky test...
These work methods will mobilize teams on useless activities, when we would like them to be able to work and be efficient in other areas: producing new functionalities (for the developers) and carrying out more business and exploratory tests (for the functional testers).
In the end, this generally leads to limiting the number of automated functional tests that are carried out and we miss the objectives of automation: to be able to produce software whose overall quality is controlled by reducing human intervention as much as possible.
Autonomous functional testers?
The interest of providing functional testers with complete autonomy in the execution of their automated tests is multiple: they control their scenario as the software evolves, they can analyze the causes of failure and maintain the tests themselves.
This allows them to have more time for exploratory testing and to agree with the product owner and developers on the next developments that will be carried out.
The priorities that we set when we approach the developments and evolutions that we carry out in Agilitest are always guided by these principles: will this allow the functional testers to gain autonomy? will it facilitate the maintenance of the tests ? and the answer must always be yes.