Verification efforts in total software development cost: more than half!

Posted by Zhimin Zhan on January 22, 2012|Read full article

We all know that testing/verification activities are important in any software project, but how important? Most referenced paper on this topic I could find is B. Hailpern and P. Santhanam's paper on IBM Systems Journal in 2002. They stated:
"In a typical commercial development organization, the cost of providing this assurance via appropriate debugging, testing, and verification activities can easily range from 50 to 75 percent of the total development cost." - IBM SYSTEMS JOURNAL, VOL 41, NO 1, 2002

This article 'The Case for Automated Software Testing' by Bernie Gauf and Elfriede Dustin, IDT contains further survey statistics on the time spent on testing out of total software development cycle:

Although the numbers vary, it is safe to say mostly will agree to the ratio in the range of 30%-75%. The average: >50%. Nowdays software are released more frequently, i.e, requires more testing effort. If we take this into consideration, the figure is even higher.

Some might find about more than half effort on testing/verification hard to believe, my observation is in align with the authors above, that's is reality in many software projects. Now I let me explain, verification in software department is not only limited to testers (what's why I used 'verification' instead of 'testing'), most of team members in a software projects doing verification:

  • Testers test a build against requirements
  • Programmers verify functions being developed or bug fixes
  • Business Analysts verify the implementation matches customer's expectation.

Please note that they do these activities pretty much every day.

If your software project is late, over budget and looks like a mission impossible, verification is the first area you shall look into for improvement.

Print User Story Cards in StoryWise

Posted by Zhimin Zhan on December 31, 2011|Read full article

Agile projects, even fake ones (which don't do automated testing and continuous integration at all), use story cards, that is, writing requirements on cards (commonly, index cards used). But the fact is that nowadays most of people's handwriting, like mine, are not very recognisable (a less polite word: sucks). Story cards are conversation starters in agile projects, but only can be effective if team members can read the text on them.

Almost every project team I am involved likes the idea of printing story cards, this can be easily done in StoryWise. After entered or imported user stories in StoryWise, you can generate story card PDF from user story list

or from the story details page


, and you will get

Then you set up your printer with specified paper size 152x102mm to print it out on index cards.

Testing tags not supported by Watir

Posted by Zhimin Zhan on November 22, 2011|Read full article

Watir supports most HTML tags, and we use them to drive the testing:

link(:text, "some text").click
td(:id, "special_cell").click

How to test tag (such as TH) which are not supported by Watir? You can use xpath to identify the element. Let me illustrate with an example: a tester wants to click the table heading 'LOGIN' on the page below:

<th abbr="Login" scope="col">Login</th>
It does not even have a ID! We could use the xpath to find the element: tag is 'TH' and attribute 'abbr' is 'Login'. Here is the test script:

ie.element_by_xpath("//th[@abbr='Login']").click

To verify the solution, I modified the source to show a JavaScript popup window on clicking this table heading. And out test script worked: