I have written article for TEsting Experience magizine. It\'s about who and why should write automated tests and why writing is different than maintenance
3. tests but also for maintenance. DEVELOPERS DEVELOPERS
INTERNAL
EXTERNAL
If we summarize the above, we see that there are four different
ways to write and maintain automated tests:
1. Developer Internal - This is a very interesting way, which I
tried to introduce in one of my projects. The idea was that
each developer delivers newly implemented features to- MA TESTERS TESTERS
INTERNAL
EXTERNAL
gether with the automated scripts. Unfortunately, it failed IN CR
for several reasons. We had to invest a lot of time in automa- TA EA
N AN TE
tion tool training (the cost was high as we had to train all
developers in the team). Another issue that we faced is the CE
decision on who would write the test scenarios that were to
be automated. Developers, testers? In the case of developers, Figure: Automation responsibility square
we would need to train them in how to write test scenarios
and how to use the test case management tool. If we chose
testers, we need to find a way for them to deliver scripts to Maintenance is connected with current application development
developers (this idea requires them to create test scenarios where new features have an impact on existing scripts that are
at the beginning of a sprint, before requirements go into de- used for regression tests. As testers (internal) know the test suites
velopment). Another issue (I think, the most decisiveone for and application best they are the ones that can recognize points
the failure) is whether automated tests are required for all that have to be changed and can introduce the changes quickly
features. There are always other important things to do, like without the need to send them to an external team. It’s very irri-
features that should have been finished yesterday, so writing tating to run test suites that we know have failed, because we are
automated tests takes second placeafter a while and auto-
waiting for changes to come from an external team. We should
mation dies. It is for the same reason that this approach can’t
note that failed tests which are waiting for update do not test
be used for maintenance.
anything, and we should cover this area by manual tests. Please
2. Tester Internal - The idea is that the same team executes note that it is very hard (and needs a lot of time) to find new er-
functional, regression and other types of tests and spends rors among several already known. This is why fixing or updating
any free time on automation. From our experience, however,
test scripts immediately is very important.
we know that there is no free time because there is always
something to do. In this approach, a lot depends on the test-
er’s personality. If he is “lazy”, he will automate the most fre- Employing on two teams (an external team which only writes
quently executed tests only. So if we just want to have really new scripts and an internal team to test the application and
poor automated smoke test suites, this approach is for you. maintain automated scripts – it can be even the same person
For bigger projects it will never finished with success. who has divided task in time) results in a process for creating
new ones, which is free of interference. We can achieve continu-
As described above, this approach is best suited for mainte-
nance of automated tests. Testers run test suites, report and ous gains of automated tests and coverage. If we sum this up, it
debug failed test scenarios. As automated tests should be ru- gives us shorter regression time and lower budget for testers in
nas often as possible (continuous integration approach) it is the internal project.
very important to make changes quickly. Testers in an inter-
nal team can do this very quickly because there is no need to An approach like this gives you clear division of responsibility,
send anything to an external team, which always takes time. ensures continuous growth of coverage, and achieves the aim of
In addition,the external team does not lose time on updat- a fixed budget without any risk to the application development
ing existing tests and can instead create new ones for new
project.
features.
3. Developer External – The idea is that we create an external
team composed of developers with a separate budget, with a
> biography
defined aim and resources. The use of developers takes over
Zbyszek Moćkun
all the minuses mentioned above for the ‘developer internal’
has more than 6 years of ex-
project. The biggest factor is that developers are not for writ-
perience in QA engineering for
ing test scripts, but for writing the application.
big as well as for small com-
4. Tester External - This idea combines all benefits from inter- panies. Currently he works
nal tester internal and external developer external. Testers as Head of QA Practice for
do what they are specialized in, it’s very easy to manage the Cognifide - digital technology
budget, and we have a backup for testers. I have managed agency.
several automation projects using this approach, and all of The author has been involved
them finished with success. Of course, it is always nice to in several projects of different
have a developer (it can be rotated role) assigned to an au- size and methodology where
tomation team to resolve complicated programming tasks. he could work on or introduce
Everyone knows that 80% of automated scripts can be done automation. His experience
by copy & paste using already written code, so there is no was used to optimize the time spent on automation and
need for special development skills (I believe that each tester getting maximum benefits. This is very important, espe-
should have basic development skills). cially in Agile methodologies, which is the area in which
he specializes.
Why do we need two different approaches for creating and for
maintaining automated test scripts?
www.testingexperience.com The Magazine for Professional Testers 113