In this section, I’m summarising my observation and opinion on various software development frameworks and test management variation in those frameworks. Obviously, managing testing processes defer in different project vision let alone different development strategies. In waterfall development, we always have test plan document. (many real cases, there is a good chance it could be overlooked during the project life cycle). In agile, we also need a test strategy document. Though agile manifesto is working software over comprehensive documentation, it does not mean “no” documentation.
Agile has different flavour like XP, Scrum and Kanban etc. Not every software development method is perfect. And the project success does not solely depend on perfect SDLC. During a project, we can adopt one development methodology and can borrow some good features from other methodology depending on the project demand and situation. Both Scrum and Kanban focus on deliverable and workable software early and often and based on self-organising team. Scrum adopts fixed iteration whereas fixed iteration is optional in Kanban. Kanban is event driven. In Kanban “work in progress” is limited directly whereas, in Scrum, it is controlled over the sprint. In Scrum, we cannot add item during the sprint but in Kanban we can if there is capacity. So Kanban is more adaptive than Scrum whereas Scrum is more adaptive than XP considering XP has imposed rules like test-driven development, pair programming etc. There are so many dependencies in the project like dependency on third party services, infrastructure change etc. So we should be interested in improving and changing our process. Regular retrospective can take us to the right process or direction for our project.
In waterfall environment, test plan consist of in-details scope, test strategy, features required to test or not to test, environment and tools requirements, risk and mitigation analysis together with resource allocation, scheduling and traceability with requirement etc. Review and analyse of the requirement, determining the scope of testing and estimate the testing effort are the most important part in waterfall. Some factors that need to be considered for proper estimation are team size, skills, assertiveness of the team, infrastructure dependency, program schedule etc. The estimations must be reviewed by the team to make sure they are ok with the goal and thus everyone in the same page. In agile project, risk based testing should be adopted. Test design and continuous analysis here take priority over documented plan. In agile, Stories or Items are discussed prior to the sprint and Estimations are discussed (considering all dependencies) in Kanban or Scrum style “poker game” planning session. Hence, test team is well aware of the scope, testable items and schedule in agile environment without the seperate documented test plan . The most important task in agile is understanding or analysing Story or Item with its Acceptance criteria. In Agile framework, we still need Agile test strategy document which is brief but outline iteration testing on Acceptance criterias of the Stories, automation and non-functional coverage, traceability and reporting etc. In many complex project , due to various reasons, demand and constraints (will discuss separately later), test team may need to accommodate separate schedule or additional test phase . Agile test strategy document should include all such activities and process deviation which must be aligned with the project vision.
I will discuss more about test scheduling, estimation and plan out the test strategy in agile and waterfall project later on in my next writing.