As we are moving from
traditional waterfall model to agile methodology, with its incremental and
evolutionary approach of delivering value to businesses, many more challenges
are coming into the picture, for testers.
Historically, IT organizations were filled
with large number of documentation. QA role was only involved at the very end
of the project –
once all coding is complete. On these projects, the QA role was limited to
write and execute test cases which verify that the application does exactly
what the requirements document says.
However, now the QA
role in the modern era is not just about executing test cases and reporting
bugs but QA team participate and fulfill a variety of
responsibilities conjointly with other team members. They are involved right
from the very beginning of a project where they work closely with business
analysts and developers.
This article focuses
on explaining how the QA role performs agile testing and the place of
importance they hold on entire development cycle. However the path to
high-performance agile testing isn’t
that easy or quick. Before adapting the testing process in the agile
environment one need to have a look at the below-stated points, which may help
them to deal with the changes and challenges coming across the way of development
process and understand the areas where we need to work on.
There are
many great professionals who share similar views of how development and testing
should work and cope up with each other. Here I tried to steer and optimize the building process of intellectual
testing culture.
1. Work as a catalyst
Testers should focus
primarily on activities that contribute quality software. Ideally, the modern
tester should not to perceived as someone who slows down things, but as a
catalyst.
Testers in the past
were not aware of the business risk, impact of delay in releasing date etc., which
is not good for business. Testers should not put testing in the center of their
world, but to let the release be in the focal point and then everything else
around comes naturally.
2. Focus on context
Although there is no
universal formula on how to be an ideal agile tester but one must be familiar
with the context of the project as testing and tester’s role are so context sensitive.
Successful agile tester in one company could seriously fail in a different
company if they do not synchronize with the new environment. I would say the
biggest trap, not only in agile environment, is ignoring the context.
3. Mind mapping instead of large documentation
Mind mapping is a simple technique for drawing information
in diagrams, instead of writing it in sentences. It provides
a very good overview of quite complex structures in the present scenario of
agile development where changes in requirements take place very often. You may
quickly scan the mind map and find interesting relations. Also it helps to
create/maintain good picture of the process/structure in your head.
4. Build a cross functional team
In the modern era the QA role is not a separate team that
tests the application being built. Instead the Scrum team is a cross-functional
team where developers, business analysts and QAs all work together. It
resembles adding variety of flavors to food in order to serve the perfect one.
Having mix is always proven to be the best strategy.
One of the primary responsibilities for the QA role is to
get involved in writing acceptance criteria for user stories from their testing
experience. Based on what the team learns during each sprint.
Developers,
who tend to focus mostly on the “happy path” of the user story, may fail to cover all possible scenarios.
Including tester’s right from the beginning, when user stories are estimated, can
help the team think beyond the happy path. This helps the team produce a more
realistic estimate since both “happy” and “unhappy” paths have been considered.
6. Pairing up with developer
In agile environment, the closer
the tester gets to developers, the more exciting the job can get. If a tester
acts like “we are all on the same side” in the team, he or she can strongly influence
the processes, pre-coding activities (preventing problems), releasing strategy etc.
The QAs can pair up with developers for writing unit test
cases and for discussing acceptance criteria. This results in the clarity of
requirements. The increased clarity that results from working together will
reduce the questions and doubts developers often encounter during coding time,
which produces greater efficiency and a big time savings for developers and
testers as well.
7. High
degree of automation support required
Conclusion
While QAs
still write tests and report bugs, they also support many other roles and
responsibilities on the team. They hold very important place in the team and are
involved in the project right from the very beginning.