Monday, October 3, 2011

Agile testing: Importance of a testing strategy

As you know from our history we didn't have much (if any) systematic testing going on, when we decided to introduce Scrum back in 2009.

A history of no testing equates to several challenges:
  • The system is (was) not very well tested
  • The codebase and architecture is (was) not very testable (it hasn't been written to be tested)
  • The developers are (were) not used to having to care much about "testing"
It was important for our success that the strategy was clear from the beginning, from a management perspective. Testing had to be made important, it needed to be lifted up from the bottom to the top of the priority list. And, as they say, the proof is in the pudding. From a management perspective such as strategy has to be backed up by the attitude of allowing quality assurance to take time.

Our aim from the beginning was the following:
  • We should introduce the Tester role in the team and clearly define its responsibilities (certainly harder than it sounds, more on this topic later).
  • We should immediately stop taking new shortcuts (i.e. stop increasing our Technical debt)
  • Test early and test often. All functionality implemented during a sprint should be tested and, if needed, corrected during the same sprint; while still having a reasonably short sprint length (i.e. two weeks maximum)
  • Every user story that we implemented and delivered in every sprint had to be tested
  • Create a minimal set of test cases that we could start using to verify the fundamental functionality of the system
  • Be pragmatic and realize that we can't go the entire distance in the first sprint. We had to accept that despite our intentions we wouldn't have a truly releaseable product increment after every iteration. There would be critical bugs that we wouldn't have time to fix, there would be too few test cases to cover all functionality, etc. But striving towards the goal was a great start, and it meant we got better and better with every sprint.
Since we wanted to include testing in every sprint (and each sprint was just 1-2 weeks long) we had to figure out a way to expand test coverage without spending unreasonable amounts of effort. The solution (of course) was to automate testing. More on that in coming articles... :-)

11 comments:

  1. When last we checked in with gastric underpass dweller Peter King, he was doling out scarlet letters (like these!) to every transgressing player in the NFL, along with claiming he was done with the predictions about Brett Favre’s future while at the same time making a prediction about Brett Favre’s future.

    ReplyDelete
  2. Nimble examining is a program examining practice that follows the principles of agile program development. Nimble examining does not stress examining procedures.

    ReplyDelete
  3. Nimble examining does not highlight examining procedures and specializes in continuous examining against recently developed code until quality software from an end client's point of view results.

    ReplyDelete
  4. Defensive programming is where various validation tests are done on various objects, and data, and screen versions, and you name it.

    ReplyDelete
  5. just linked this article on my facebook account. it’s a very interesting article for all.



    Scrum Process

    ReplyDelete
  6. he was done with the predictions about Brett Favre’s future while at the same time making a prediction about Brett Favre’s future.

    ReplyDelete
  7. as they say, the proof is in the pudding. From a management perspective such as strategy has to be backed up by the attitude of allowing quality assurance to take time.

    ReplyDelete
  8. they say, the proof is in the pudding. From a management perspective such as strategy has to be backed up by the attitude of allowing quality assurance to take time.

    ReplyDelete
  9. It was important for our success that the strategy was clear from the beginning

    ReplyDelete
  10. "Nice post!
    We usually don’t find a full time scrum master. Scrum master is described by scrum guide as one who teaches, facilitates and removes impediments. When the team is relatively new it takes time and the team follows scrum religiously. This is when the team needs a scrum master who can teach scrum full time.
    http://www.scrumstudy.com/Agile Certification"

    ReplyDelete
  11. Hi All, I am bit confused whether to opt for Scrum credentials or attend a PMP prep course / PMP classes preparing to take PMP certification exams . Whats your take?

    ReplyDelete