Saturday, April 19, 2008

How to fit QA in Scrum Sprints

Many scrum teams have a tough time accommodating QA in the same sprint. They end up creating separate QA sprints and staggering it with development sprints. Thus development happens in one sprint and QA in the next. So agile, isn't it? In the true spirit of Scrum, stories should be finished with the necessary testing in the same sprint.

Here is how it happens. Let's say our sprint length is 3 weeks. We have two dedicated QA persons assigned to our project. They are a part of the team. First two weeks developers keep working on their code (and unit tests) and QA persons play ping-pong. In the third week developers start delivering code to QA. Now suddenly our QA has work! As all the tests are manual, one week doesn't suffice. Some stories get demonstrated in the sprint demo without testing! The remaining QA work then gets included in the next sprint. They finish the remnant work in a week and again play ping-pong for one week. Thus the staggered cycle continues.

There is only one way to break this cycle – QA automation. Automating tests with a tool like Selenium saves testing time considerably. It increases test development time, but it reduces testing time considerably. Thus when developers are coding, QA persons can develop automated tests instead of playing ping-pong. Once developers start delivering code to QA, all QA has to do is run the automated tests!

I have been playing with Selenium recently. It's really a great open source tool for QA automation. I found Selenium RC very useful for web based applications as it allows automated tests to run in various browser environments - Firefox, IE etc. Furthermore, Selenium tests can be developed in Ruby, Java, Javascript, Perl, PHP, Python and even .NET! QA can choose the easiest option for them.

Handling QA in Scrum environments requires a paradigm shift. Many companies don't have QA persons with coding skills. In such environments developers need to step up and develop automated tests. Gone are the days when a person went manually through each and every page of your website. Scrum requires much more efficient QA and thankfully Selenium-like tools provide the necessary technology.

20 comments:

shawns-real-life said...

Just a question for you. My approach, out of necessity here at Agilus, is that QA is running the requirements with the Project Manager. Or - they are creating the requirements for the customer. They write the requirements, provide them in the form of user stories with the requirements laid out inside the description, and then development works the white boards with the project managers and QA people to create the skeleton of the work. Once completed, the QA people are then writing test cases to the user stories they just produced while the software is being written.

The spring could be 2 weeks long. The developer sends over the modules for testing. Then the cycle begins to fix/regress the bugs and by the end of 2 weeks - you have working modules.

What are your thoughts on this? I'm in a small company so I've had to implement QA with this model and it is working. We still need automation - but at least - I'm not playing ping-pong while we gear up for purchasing automation.

We've looked at Squish and QF Test due to budgets. Any opinions on automation software? (We're primarily a java script house.)

Vaibhav Puranik said...

"development works the white boards with the project managers and QA people to create the skeleton of the work"

I am assuming that this is your sprint planning meeting. In this meeting when developers give estimates (if they give estimates), they need to understand that a work unit is not complete until it's tested and hence they should consult with a QA member and prepare a joint estimate for the work unit.

The developers also need to understand that they don't have full two weeks to finish their work as QA needs to be complete before the sprint ends. I am a big proponent of completing QA in the same sprint as I have seen it's advantages myself.

In most of the organizations there is a clear demarcation between the QA and the development. Scrum expects a cross functional team, where a QA member is part of the team - not part of a separate team as he or she is treated in most of the organizations. The QA member of the team needs to work very closely with the developers and the developers needs to cater to his/her needs such as delivering on time - much before the sprint ends or delivering partially done story if QA member can test it. The developers and the QA members should feel that they are part of the same team and developers needs to take up his/her testing share by unit testing his/her code(using JsUnit in your case as you are a JavaScript shop).

One more thing you should do is if you are not tracking estimates and velocities, you should start tracking it. It is certainly beneficial.

As far as tools are concerned, try Selenium. It's open source and free. It can be used for ajax and JavaScript testing too. Here is the link for JavaScript testing demos - http://seleniumhq.org/projects/core/demos.html

shawns-real-life said...

Wonderful information. Thanks. I'll take a look at Selenium and start tracking our velocity.

We are currently using a tool called Rally - it's an online Agile dev/pm/qa center for managing these areas.

I'm in need of more Agile education - especially since I am project managing & the QA person all-in-one.

What do you suggest in terms of effective education materials for Agile - PM, QA, SCRUM, XP... any fav's like Alistair Cogburn or others?

Vaibhav Puranik said...

My personal favorite is the Agile Software Development with Scrum by Ken Schwaber, Mike Beedle. It's a must read for all the players in a Scrum team. Also if your company can afford it register for the following course: Certified Scrum Master from the Scrum Alliance. You can also read this free book: Scrum From the Trenches

shawns-real-life said...

Will do Vaibhav and thank you again for the feedback.

Fandi Yacine said...

Hi thanks for the info but still the Qa automation tool you provided is not yet sufficient . To start making your test cases you still need the output from the dev team hence the QA is not done correctly. Qa should rather be made straight from the requirement .

Robot Framework made by NSN is quite nice .

Srilu Balla said...

Certain software’s are so badly written that QA will find bugs instantly without a plan – defining hierarchy, elements etc. And that is when they start to believe that they have done their job.
I am a QA engineer - I am skilled first of all in Manual testing then in Automation. As per my experience any automation tool including Selenium is a tool that does things I want it to do. They do not perform testing but Simulate user actions. (I see QA engineers jumping in creating Checkpoints just because they have the feature without serving any purpose)
I would rather spend my time in writing up a birds eye view doc to define the hierarchy and possible elements at each stage. This doc has helped catch as many as 70 bugs in 1 day that even brought out issue with incomplete requirements.
P.s: Record and play is not the way to automate. Write your own routines so that any one on the team can create their own test set. A routine needs to be as flexible as a test case. If you know how to write a test case (which people take for granted) you will know testing as well as automating.

Scrum Process said...

Great thoughts you got there, believe I may possibly try just some of it throughout my daily life.

Aaron said...

Look for Mike Cohn's videos on youtube. Most of them about 50 mins to an hour long. And he gives a very good overview of how scrum works in "most" places.

Anonymous said...

Hello there! I simply would like to offer you a huge thumbs
up for the excellent info you have right here on this post.
I am coming back to your site for more soon.

Feel free to surf to my web site - how long does it take to get rid of cellulite through exercise

Anonymous said...

magnificent issues altogether, you simply gained a
emblem new reader. What might you recommend in regards to your publish that you just made some days ago?
Any positive?

My website: recording studio in montreal

Anonymous said...

This is the perfect web site for everyone who would like to find out about this
topic. You realize a whole lot its almost tough to argue
with you (not that I personally would want to…HaHa).
You definitely put a brand new spin on a topic which has been written about for many years.
Wonderful stuff, just wonderful!

Look into my blog post; stuff for free Online

Anonymous said...

Sweet blog! I found it while browsing on Yahoo News.
Do you have any suggestions on how to get listed in Yahoo News?
I've been trying for a while but I never seem to
get there! Thanks

Have a look at my homepage; landscaping front yard

Anonymous said...

Greetings! Very useful advice within this post! It's the
little changes which will make the most significant changes.
Many thanks for sharing!

my site; steam wallet codes

Anonymous said...

The battle results splash page (see screenshot on page 3 where I talk about battles in detail) is also dramatically done.
"How much patience and toleration does our Master have. A starting pilot should be sure to upgrade the hard points on his ship when available.

Visit my web site racing rivals hack (racingrivalsnewhack.wordpress.com)

Anonymous said...

I think everything posted was actually very logical.
But, consider this, what if you wrote a catchier post title?
I mean, I don't want to tell you how to run your blog, but what if you added a title that makes people desire more?
I mean "How to fit QA in Scrum Sprints" is a little
plain. You should glance at Yahoo's front page and watch how they write post headlines to grab people
to open the links. You might add a video or a related picture or two to get readers interested about what you've
written. In my opinion, it could bring your website a little livelier.


Feel free to visit my web page make email (hi-fidelity.biz)

yanmaneee said...

yeezy boost
nike foamposite
hermes
golden goose
balenciaga sneakers
nfl store
air jordan
supreme clothing
golden goose
jordan shoes

Unknown said...

high quality designer replica DNQBV replica wholesale handbags EKRZ best replica bags online EISU

tousmee said...

cliquer pour la source sacs réplique gucci aimez-le réplique gucci Votre nom de domaine www. dolabuy.co

webdolabuy said...

i was reading this read review go to the website Dolabuy Dior click i was reading this