What are some Agile Testing Best Practices/Techniques
In agile software development projects, we still do testing only, testing is done more frequently within iterations or sprints rather than having specific test phase, like in waterfall. ISO/IEC Standard 29119-2 breaks testing processes into test management processes and dynamic testing processes. Test management processes include Test Strategy and Planning, Test Monitoring and Control, and test completion. Dynamic testing processes include Test design and implementation process, test design and data management process, test execution process, and tests incident reporting process. Given these processes occur in both traditional and agile, Plese share any agile testing best practices/techniques in executing these processes using agile?
Given these processes occur in both traditional and agile
Do they? It all sounds rather prescriptive to me.
I would think they should still be done in agile in some way, maybe not all the test documentation that would be created in traditional, but there still must be a testing strategy/approach, planning for example determining what levels and types of testing need to be performed, what will be tested, etc. Just like the project management processes don't go away in Agile, they are just simplified and leaner.
Perhaps these things are replaced by commitments and accountabilities within self-managing teams. I'd suggest that rigorous quality assurance is underpinned by a Definition of Done rather than a process.
There are no best practices. Software development is a complex activity. At best, you may have good practices, but those are highly dependent on your exact situation.
You're right that these processes occur in both plan-driven and agile methods. Regardless of your methods, you will have a test strategy and/or test plan - you will define what types of testing you will do, who will do it, the environments where it will be done, when it will be done, the tools that you will use. You will design and implement tests - you will design tests against what the system is supposed to do, execute them (through manual use of the system or through test automation tools), and you will record failures. You will monitor your tests for their effectiveness - how long they take to run, if the test ever fails, how often it fails, if the failures are issues with the test or issues with the system under test.
Although I'm not very familiar with 29119, I'm familiar with a number of other ISO standards. Nearly all of the ones that I am familiar with are built around objectives. Few, if any, of the standards say how to achieve those objectives, only the objectives that are expected to be achieved. I would expect that the objectives could be achieved in agile environments.
If you want to dig deeper into good practices for testing in an agile environment, I'd recommend the works of Lisa Crispin and Janet Gregory, especially Agile Testing: A Practical Guide for Testers and Agile Teams and More Agile Testing: Learning Journeys for the Whole Team. When it comes to testing and quality in agile software development, these are two leaders with books, blogs, tweets, and talks to look through.
I would highly recommend this criminally underrated book:
https://www.amazon.com/Growing-Agile-Coachs-Guide-Testing-ebook/dp/B00S…
It provides some great insights and tools into helping teams understand what testing means in an agile team, and how to start defining a better way to build quality in to their product.