Presentation from full-stack agile on the importance of testing in Agile, and some different techniques that can be used to ensure quality is kept high.
5. Fail Fast
• Early testing of requirements and the design of
features during the early stages of the project.
• First execution of the feature being developed.
Don’t wait until a feature is fully developed to test it
if you don’t have to. Try to find issues as quickly as
possible.
• Regression testing following changes and fixes.
• Integration testing is carried out as soon as
something is ready to integrate. Rather than waiting
to integrate a mass of features, especially
deliverables from earlier increments are integrated
with current deliverables.
6. Collaborative Testing
• Effective and productive involves the input and collaboration of
all people involved; all stakeholders. This will increase the
productivity of the test, fix and reset cycle. This is inline with the
Agile concept of collaboration – any one who can test something
should! This usually means the business owners testing the
features they requested.
• This concept only really works when teams are collocated. If this
is not the case then a clear plan or process needs to be in place
to ensure that there are working arrangements for testing.
7. Repeatable Testing
Since we are developing in iterations, then we should also
test in iterations. Tests should be ran several times before
the product passes the customers tests. Tests need to be
designed to be repeatable.
8. End-to-End Testing
Being collaborative, working together and ensuring that regular demonstrations take place
allow you to test the full end-to-end experience of the feature. The full feature needs to be
tested like this so you can ensure changes can be made to enhance the experience.
9. Independent Testing
As well as the developer and QA testing the feature, an
independent user should also test. Involvement from the
business teams ensures that an independent view is
always maintained.
10. Prioritized Testing
All tests needs to be prioritized. It may not be possible to test
everything exhaustively. Each test needs to be attached to a
product or feature. The major or high risk tests should be
carried out first – the ones with the biggest impact.
11. Test-Driven Development
With this method, tests are created even before development is
created. This ensures that the acceptance criteria are confirmed
before any effort is wasted on creating the wrong product.
12. Risk Based Testing
Some tests, if done first can reduce the risk with putting a new
development in a production environment. It would be best value
to carry out these tests first. All requirements should be assessed
for risk, and will allow you to prioritize the tests for each one, so
resource can be applied appropriately.