Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Evil Tester's Guide To Agile Testing

The Evil Tester's Guide To Agile Testing

A Common Sense Guide to Agile Development and Testing that might just change your Agile approach forever.

Answering the 9 most common questions asked about Agile Testing:

- What is Agile Testing?
- Do we still need testers in Agile?
- What is an Agile Tester?
- What does a Software Tester Actually Do?
- Should we automate our testing?
- What tools should we use for our Agile Testing?
- How Much Should we Automate?
- How can we automate and still finish the sprint?
- How can we finish all our testing in the sprint?

A high quality download of the 9 points as a free "Print out and Keep" Poster is available at http://eviltester.com/agile

Alan Richardson

November 17, 2017
Tweet

More Decks by Alan Richardson

Other Decks in Technology

Transcript

  1. @EvilTester | EvilTester.com/agile

    View Slide

  2. Common Questions about Testing on
    Agile Projects

    View Slide

  3. What is Agile Testing?
    A Test approach crafted uniquely for your specific environment.
    Test in a way that fits, and adapts to, your Agile Development.
    Nothing complicated. Involve everyone on the team in your
    Testing process, because Testing is a major part of your
    Software Development Process.

    View Slide

  4. What is Agile Testing?
    Every Agile project is unique ‐ staff mix, skill sets, business
    concerns, tool sets. You need to adopt a Testing approach crafted
    to your specific environment. To do that you need to understand
    the essence of testing in terms of feedback, and as a means of
    evaluating and exploring models of your system. Then test in a way
    that fits, and adapts to, your approach to Agile Development.
    Nothing complicated. Don't shoe horn in something you would
    traditionally call 'Testing' and label it Agile. Do adapt your process
    to meet the needs of your project. And do involve everyone in your
    Testing process, because Testing is a major part of your Software
    Development Process.

    View Slide

  5. Do we still need testers in Agile?
    Once you've worked with a good tester, this question won't even
    cross your mind.
    You still need to test, and you need people to do that. You can
    train other people to test, but they may not have the
    motivation to learn testing in depth and push your System to
    its limits.

    View Slide

  6. Do we still need testers in Agile?
    People often ask this question because they've never seen a good
    tester in action. After working with a good tester, this question
    won't even cross your mind. You still need to test, and you still need
    people testing your software. You'll need the people doing that to
    understand how to test, and to test well. Testers generally know
    how to do that. But of course you can train other people to do your
    testing. They may not have the same motivation to continue to
    learn testing in depth and the nuances and subtleties of system and
    risk exploration as people who view testing as their main focus.

    View Slide

  7. What is an Agile Tester?
    An Agile Tester brings flexibility to their role.
    They take the essence of testing and implement it as part of
    your Agile System of Development. They explore the System
    deeply, spot Risks, and ask questions to help everyone think
    differently about the quality of the software and the process of
    development.

    View Slide

  8. What is an Agile Tester?
    An Agile Tester brings flexibility to the role of tester. They don't just
    quote testing books at you and best practice definitions. They take
    the essence of testing and help implement it as part of your Agile
    System of Development. They will know how to test with minimal
    information and ask questions to help other people think about the
    quality of the software and the process of building the software.
    They will know how to spot risks and target those risks with hands
    on system manipulation. Very often they spot gaps in the
    development process and help fill them.

    View Slide

  9. What does a Software Tester Actually
    Do?
    Testing builds a model and compares it to the delivered system.
    Models like: requirements, acceptance criteria, risk ﴾business,
    technical, process﴿, flow, and functionality.
    A tester expands the model by observing, exploring,
    interrogating and manipulating the system.

    View Slide

  10. What does a Software Tester Actually
    Do?
    The essence of Software Testing is building a model of the System
    Under Test, and then comparing that model to the delivered
    system. A tester builds lots of models; requirements, acceptance
    criteria, risk ﴾business, technical, process﴿, flow, functionality, etc.
    The tester has different techniques to prioritise how they explore
    the relationship between the model and the system. A good Tester
    adapts their model based on the information they observe as they
    interrogate and manipulate the system, they reflect on this
    information to communicate effectively and expand their model.

    View Slide

  11. Should we automate our testing?
    Automate execution flows through the system to assert on
    agreed acceptance conditions.
    Humans automate the mechanistic, to free ourselves to use
    emotion and imagination. We should look for opportunities to
    automate parts of our testing process.

    View Slide

  12. Should we automate our testing?
    We are Human. Humans automate processes. We will automate the
    mechanistic parts of our processes, to free ourselves from drudgery
    and allow us to more fully exercise our emotion and imagination in
    our Software Development. We use IDEs to automate parts of the
    coding and refactoring processes, we automate builds and software
    releases. We should look for opportunities to automate as part of
    our testing process ‐ often this will be checking, and asserting on,
    the agreed acceptance conditions. We can automate execution
    flows through the system with pre‐agreed acceptance condition
    assertions. This is only a small part of evaluating the risk associated
    with releasing software, but it can be automated.

    View Slide

  13. What tools should we use for our Agile
    Testing?
    That depends on your technology. Automate strategically and
    tactically.
    Strategically automate system execution making it
    maintainable and robust.
    Tactically use tools to support deep system Observation,
    Exploration, Interrogation and Manipulation.

    View Slide

  14. What tools should we use for our Agile
    Testing?
    Your tooling will vary depending on the technology you use. You'll
    need tools to help you strategically automate system execution to
    make it maintainable and robust. You'll need tools to support you
    in tactically observing the system functionality and message
    passing in detail. Tools to help you interrogate and manipulate the
    system in ways a user would never need to do, to help you explore
    the system in detail. I generally try to use the same tools as the rest
    of the development team. I don't recommend separate "Test
    Tracking" tools, when you do that you end up having only testers
    use them, and we want to harness the skills of all team members as
    part of our testing process.

    View Slide

  15. How Much Should we Automate?
    Automate to convince yourself the system continues to meet the
    acceptance criteria.
    Review the automated execution code, to ensure it is relevant,
    delete anything that takes time to maintain but doesn't help
    evaluate the risk of release.

    View Slide

  16. How Much Should we Automate?
    Automate as much as you need to. Are you convinced that you
    have a low risk of changes unexpectedly and adversely impacting
    previously tested areas of the system? Are you convinced that the
    agreed Acceptance Criteria are still met by the system? As you
    maintain your automated execution code, review what you have
    created to make sure it still seems relevant, and delete anything
    that takes time to maintain but doesn't help you evaluate the risk of
    the release.

    View Slide

  17. How can we automate and still finish the
    sprint?
    Commit to automating as part of your Definition of Done.
    Don't just write code, commit to maintaining an system which
    automatically asserts that you continue to meet the
    acceptance criteria the code was designed to fulfil.

    View Slide

  18. How can we automate and still finish the
    sprint?
    Automating acceptance criteria is part of your sprint planning.
    Commit to automating as part of your Definition of Done. Don't
    just write code, commit to maintaining a system which
    automatically asserts that you continue to meet the acceptance
    criteria the code was designed to fulfill. It is possible to work on the
    acceptance criteria checking in parallel to writing system code. Take
    advantage of abstraction layers and good coding and design
    principles to support your development process.

    View Slide

  19. How can we finish all our testing in the
    sprint?
    If you haven't finished testing, then you don't release that
    functionality.
    Everyone on the team tests to the best of their ability. Leave
    the simple condition checking to the automated system or
    people less skilled in testing.

    View Slide

  20. How can we finish all our testing in the
    sprint?
    Making time for testing is part of your sprint planning. Don't create
    a bottleneck by having a single person allocated to testing. Have
    everyone on the team test the software to the best of the ability,
    and use the people who are best at testing to really explore the
    risks and conditions in detail while leaving the simple condition
    checking to the automated system or people less skilled in testing.
    If you haven't finished testing, then you can't evaluate the risk, and
    you don't release that functionality.

    View Slide

  21. Free ‐ Download and Print Your Own
    "The Evil Tester's Guide to Agile Testing
    Brochure"
    At EvilTester.com/agile

    View Slide

  22. View Slide

  23. View Slide

  24. Help Your Teams Improve How They Test
    and Develop Software
    You can learn to test and develop software using Agile processes
    through trial and error. You'll learn the hard way from your own
    mistakes.
    You could bring in contractors who are experienced in Agile to
    work on your projects with you. They'll help you work in a more
    Agile way but they'll be busy doing the work and might not have
    the necessary time to pass on their experience to the rest of the
    team.
    You could bring in an Agile Coach and mentor who is there
    specifically to help you improve. They are not on your project 100%
    of the time, they work with you to help you improve.

    View Slide

  25. An Agile Software Development coach and mentor can short cut
    your learning and help you:
    Automate your APIs
    Automate to support Continuous Integration & Exploratory
    Testing
    Remove intermittent failures from your automated execution
    Refactor your code to make it more testable
    Improve pairing on TDD and exploratory testing
    Increase the value of your retrospectives so you take action
    Improve your exploratory testing, making it more transparent,
    thorough and technical.

    View Slide

  26. Alan Richardson is someone who has done all of this before.
    Combining a background in Testing and Programming, Alan can
    work with all of your team members to help improve your Agile
    Development Approach.
    Alan consults through Compendium Developments Ltd and
    helps teams improve their testing and development processes,
    Alan blogs at Evil Tester, Java For Testers, and Selenium
    Simplified
    Alan has written 4 books "Java For Testers", "Dear Evil Tester",
    "Automating and Testing a REST API" and "Selenium
    Simplified"
    Alan talks and keynotes at conferences world wide, also
    providing workshops and tutorials.

    View Slide

  27. Contact Alan to help you with your Agile
    Testing and Development
    Compendium Developments Ltd
    Contact Alan
    http://compendiumdev.co.uk/contact

    View Slide