1. Focus on Risk/Change Based Testing
– In an Agile environment, the goal is always to get the highest
quality product to market in the shortest amount of time. Therefore an
Agile tester must be able to assess which areas of the application are
changing, how they all fit together and prioritize tests based on areas
that pose the greatest risk of failure.
2. Understanding Product Architecture
– Put simply, this means understanding exactly how data flows through
an application. This allows us to test the impact of sub-system
component failures, as well as address potential security
vulnerabilities. As a result, when defects are found an Agile tester
will be able to help developers fix the issues quickly and thoroughly
early on.
3. Understanding Business Objects and Context
– Since testing should always align with customer context, an Agile
tester must understand how the end user will interact with the product.
If you focus on the applications and scenarios that provide value to the
end user you will be able to dimensionalize your testing strategy.
Meaning, if you can divide a product up based on the product
architecture and customer context you will be better equipped to test
for potential issues that would negatively impact end users.
The
added benefit of dimensionalizing the product from the customer view
point is that the tester will be able to tag defects with the affected
business objects. That way when you begin to review your test sets, you
will be able to recognize areas with higher instances of defects. This
will allow you to address the issues in a more focused and effective
way.
4. Application Logs -
While reporting ‘when feature X breaks we do Y’ provides value, it is
not enough in an Agile environment. Agile testers should be leveraging
the great amount of information contained in application logs for a
number of reasons. First, it provides insight into the underlying
architecture that is occurring on the system level, which gives you a
better understanding of what the defect is. Second, application logs
also allow you to address ‘silent errors’ – i.e. errors that occur
without the end user ever even knowing. Lastly, it allows testers to
gain credibility and work more closely with the development team, which
is an integral component of being Agile.
5. Based Tools – In addition to application logs, browser based tools are incredibly
important for Agile testers to be able to quickly troubleshoot defects.
Two examples of easy-to-use browser tools are Developer Tools in Google
Chrome and Firebug in Firefox. Tools such as these provide value in the
form of metrics, errors, analysis, java script consoles and debuggers.
6. Test Document Requirements
– Many Agile organizations utilize some variant of SCRUM or Kanban, in
which there is an element of work tackled by a team to ensure that all
aspects function as intended. In order to do this, the team will need to
create test scenarios. The expectance criterion of these test scenarios
often becomes a requirement repository over the long term. While some
people view the written test scenario as a waste, Brian Rock contends
that these test scenarios become very valuable to the Agile tester for
future automation, regression testing and product analysis.
7. Automation
– Automation is an excellent tool but it goes without saying that it is
not the ‘silver bullet’ to fix the testing problem. Frameworks can be
expensive to create and even more expensive to maintain. However, Agile
testers need to be able to leverage automation for quick, easily
repeatable tasks. If the delta of change is low, chances are you should
automate it.
8. Exploratory Testing
– Exploratory testing (ET) is common sense testing. ET focuses on
instantaneous testing and learning and thus should be a primary tool of
all Agile testing. Agile testers can leverage knowledge gained through
ET on every future product iteration. Additionally, it allows the Agile
tester to make variations in testing to quickly ferret out bugs.
9. Testing From the Customer Perspective
– In many ways, this goes back to understanding the business objects
and how testing should focus the end user – despite the fact that the
end user is going to use the product in ways that you never thought
feasible, wise or even sane. Testing from the customer perspective goes a
step further to state that the fitness of the product for use by the
end user is the primary standard of quality. After all, without
customers there is no product. Agile testers are in a unique position to
face QA challenges from this context.
10. Know That Change is Constant –Perhaps this is a bit cliché, but a static product is a dead product. As an Agile tester you should be able to give a quality assessment of the product at any stage in its life cycle. If you are able to do this, you will be better equipped to handle the ever changing landscape that is Agile.