TrainingConferencesAbout UsContact UsAdvertiseSQE.comRSS Feed

StickyMinds.com: brain food for building better software

Log In
 Clarify Your Search Criteria

Tips on Using Our Search Feature(s)
 
StickyMinds.com Home
ResourcesTopicsCommunityPowerPass
Home  >  Detail: Where Are the Testers in XP?



A StickyMinds.com Original
Article Picture
Where Are the Testers in XP?

By Bret Pettichord

Send This Content to a FriendGet a Short Link to This ContentPrint This ContentSee User Comments About This Content

Summary: With Extreme Programming, programmers are taking responsibility for writing their own unit tests. What work does this leave for testers? Some people think that XP saves costs by eliminating the need for testers. Does programmer testing really take the place of tester testing? In this week’s column, Bret Pettichord offers ways for testers to provide value to XP teams.


Jama Software
I’ve found that there are at least three things that people can mean by "XP":
  1. what the books say1
  2. what teams coached and trained by the XP founders actually do, and
  3. what people who’ve only read the books are doing.

According to the books, XP includes unit testing (done by the programmers) and acceptance testing (done by the "customers"). Programmers use unit tests merely to verify that the software works as they intended. The acceptance tests are necessary to validate that the software actually works the way the "customer" wants it to.2

Specifically, the "customer" is expected to write the user stories (similar to use cases) and then write tests for the user stories. The books are a little vague on who the "customer" is, which is why I’ve put it in quotes. The "customer" is the person who makes the business decisions. Outside XP, this person is often called the product manager or business analyst.3

Even teams well trained on XP often have trouble getting this "customer" to take the time to write the acceptance tests. So they end up being written by programmers or testers and they are often written late. Indeed, studies have shown that acceptance testing is one of the least-well-adhered-to practices that make up XP.4 To help repair this deficiency, XP co-founder Ward Cunningham has recently developed an open-source testing framework for acceptance testing.5

The XP books don’t claim that programmer testing supplants tester testing. Rather they claim that the total cost of testing is reduced, largely by avoiding the surprises of the interminable testing phases that often plague the final stage of software projects. But testing still must be done, both from programmer and customer perspectives.

There were some early claims that XP was going to put testers out of business. This was partly hyperbolic—meant to inspire programmers to do better unit testing. But I suspect it may also have been a response to experiences with testers who were obstreperous and unconcerned with the success of the larger project. Indeed, Lisa Crispin fought some early battles to find a place of respect for testers on XP teams; she later wrote a book describing her methods.6

With test-last programming, there was no doubt of the need for testers. But the XP context forces testers to articulate how they can be of service to a team. Many testers, trained in unsuitable methodologies, will fail.

Indeed, some believe XP tries to minimize the role of the black-box tester because of bad experiences with ineffective testers. Specific complaints are that testers

  1. object to process improvement that doesn’t conform to their traditionalist views
  2. focus on bugs that are of little importance to the project
  3. lack technical skills needed for serious contribution, and
  4. lack education and insight into modern development methods and architectures.

Cem Kaner has said, "Unless the level of technical skill in our field improves substantially, we can expect programming teams to continue to actively plan ways to work around low-functioning test teams. If we continue to combine low technical skill with process traditionalism, judgmentalism, and righteous political activism on projects, I think we’ll see ongoing, reasonable, and justified sympathy for excluding testers from any serious roles in projects, among programmers, project managers, and development executives."7

If you are a tester on a team adopting XP, here’s how to demonstrate your value to the team:

  1. show how you provide a helpful perspective in the definition of software expectations (whether you call them "requirements" or "tests")—a perspective that is difficult for either programmers or "customers" but that makes a real difference for the success of the project
  2. show how you can be satisfied with an information-provider role, not insisting on being a gatekeeper or quality policeman8
  3. show how you can adapt to an iterative methodology, changing direction as the project changes, rather than insisting that the team stick to the plan9
  4. show how you can function with a minimum of formal specifications, asking for more information when you need it and taking the initiative to document key information yourself when you see the need

Interestingly, these are not only the criteria for how testers can provide value to XP teams; they are also the ingredients for exploratory testing.10,11

Acknowledgements

Thanks to Ståle Amland and Elisabeth Hendrickson for comments on early drafts.

References

1By "the XP books" I mostly refer to Extreme Programming Explained, by Kent Beck and Planning Extreme Programming, by Kent Beck and Martin Fowler

2Correspondence on "Agile-Testing" mailing list, Ron Jeffries, 29 April 2002

3Planning Extreme Programming, Beck and Fowler, p. 17

4 "Circle of Life, Spiral of Death," Ramachandran and Shukla, in XP/Agile Universe 2002 Proceedings, Wells & Williams, ed.

5Framework for Integrated Test, Ward Cunningham

6Testing Extreme Programming, Lisa Crispin and Tip House

7Correspondence on "Software-Testing" mailing list, Cem Kaner, 18 September 2002

8"Don’t Become the Quality Police," Pettichord, Stickyminds.com, 1 July 2002

9"XP, Iterative Development, and the Testing Community," Kaner, Stickyminds.com, 21 October 2002

10"What is Exploratory Testing?" James Bach, Stickyminds.com, 29 January 2001

11"A Survey of Exploratory Testing," Brian Marick

About the Author
Bret Pettichord is coauthor of Lessons Learned in Software Testing. He is a consultant and trainer specializing in software testing and test automation. His other writings can be found at www.pettichord.com. Contact him at bret@pettichord.com.

Back to Top
 

StickyMinds.com Weekly Column From 1/27/03 


Member Comments
Add Your CommentExpand Comments
 
Comment:    
by Neal Gamache 2/4/2004

To comment on Gregory Daich's post on developer skills and the author's response: my wife and I are both software quality assurance professionals, working in different companies but very similar environments. We debate periodically the merits of getting in-depth in the code and technical design of the products we test. Her approach is much more end-user-experience based; mine is more code- or developer-based. In her experience, if she follows the logic path the developer created, she makes the same mistakes the developer did and misses problems. In my experience, if I can see how the developer was thinking I can try to specifically...Read On

 
 
Comment:    
by Michael Valletti 2/20/2003

To the readers comment from 1/28/03 - "The day for sitting back and waiting for the "perfect" spec has long gone".... Please tell that to NASA. The comments provided on this article by readers seem to be in agreement regarding a mad rush away from facts, details, concise information. While the "perfect" spec has really never existed I don't think we should completely abandon attempting to get it and take whatever is given. Funny how XP was written by programmers....

Author's Response:
5/8/2003    
Alistair Cockburn has said that waterfall -- the traditional approach where you get the spec first, the do design, then code, then test -- has the benefit of being a safe way to fail. XP is a risk. There are no guarentees.

 
 
Comment:    
by Gregory Daich 2/19/2003

Bret, Thanks for the article. Keep them coming. I believe you hit on an extremely important issue as you listed some of the complaints about testers. Having testers work more directly with developers will help them gain some of the technical skills but they will still need training and experience in some modern development methods and architectures (if they want it and desire to work in environments that require it). Rotating testers with developers might be one way to help but I haven't seen many organizations who do this successfully. It is expensive to provide training in many developer skills to testers. Your comment from Cem...Read On

Author's Response:
5/8/2003    
I'm in the same boat as you. I'm doing a lot of programming in Ruby and am trying to keep my Java skills sharp. You're right: it's tough to take the time needed, and i'm trying to write fewer articles to help give me this time (despite your kind encouragement). Testers who are not inclined towards development are going to need to become better business analysts. That's what i think, at least.

 
 
Comment:    
by Jay Turpin 2/16/2003

As a member of an XP team, we've found that management and the team members are supportive of testing. But sometimes it feels like we're reinventing the wheel. We practice test-first design, but don't always know the best way to test a particular feature. XP is all about breaking down barriers of communication. It is not about slapping together some code and throwing it over the wall to the QA department to test. I believe that if we could integrate members of the QA/Testing group into the development team, the overall quality of the application would drastically improve. Testers could pair-program with the developers on a daily basis,...Read On

Author's Response:
5/8/2003    
I like your vision. What's holding it back?

 
 
Comment:    
by Lisa Crispin 1/30/2003

Bret, I think you are right on with the emphasis on information provider role. I know of 'XP' teams that have created a separate 'test team'. Testers on XP projects should insist on working together with the programmers as well as with the business experts so that they can provide the value that you describe here. Providing information after development is complete is not nearly as valuable as keeping the feedback loops going all through the process.

Author's Response:
5/8/2003    
Good point.

 
 
Comment:    
by Mike Dwyer 1/30/2003

Two Thoughts come to mind. First, relying software that used a two stage testing model of unit test and acceptance is akin to working in a building where the bricks were checked and the building was walked through. Like any construction effort the truly critical aspect in the quality and safety lays in the validating the robustness of the connections between the components, which is why the additional costs and time have been put into Module, System and Integration testing. Second, HOORAY for a coding approach that encourages key pounders to review what they did. I hope that the lessons learned in this go-a-round can leverage off the...Read On

Author's Response:
1/30/2003    
Thanks for your comments.

 
 
Comment:    
by edA-qa mort-ora-y 1/30/2003

Perhaps Im the odd one out on this, but I really think that the programmers should be doing more of the basic testing. I consider it a waste of my time to have to discover and report bugs that the XP method should have caught during programming. There are lots of serious issues relating to specification, fault tolerance, business logic failures, systems integration and performance, that XP style testing typically will not identify, those are the types of issues that the quality control team should be looking for. Having to continually report stuff like "string too long causes error" or "negative number is not rejected" is both a waste of...Read On

Author's Response:
1/30/2003    
As a tester, i don't mind finding problems like these, although too many of them make me think that the team may not be working as effectively as it could. I think the challenge is for the testers to help define tests in advance that will ensure that programmers address these issues early. But XP is pretty clear that programmers should be doing lots of basic testing.

 
 
Comment:    
by Peter Hawkins 1/28/2003

Hi, Interesting article and a timely reminder to read up on XP. I am not sure of the current situation with the testing community outside of Australia, but I would make the point that I encourage testers to be far more than just the narrow definition of a "black box tester". As part of the defining testing scope and coverage I encourage my testers to utilise systems analysis and design methods to not only assist them but to also clarify for the UAT team how the solution answers the requirement. Very often, it is the System Test Team that fills the gap left by the absence of a systems analyst. I would also mention that a "Full Life Cycle"...Read On

Author's Response:
1/29/2003    
XP starts with a requirement -- called a "user story" -- and then creates acceptance tests for it. The story isn't complete until these tests pass. I think this gives it what you call a "full life cycle." I'm not sure what you find disturbing about this.

 
 
Comment:    
by Margaret Dineen 1/28/2003

Hi Bret, I thoroughly agree with your article. The day for sitting back and waiting for the "perfect" spec has long gone. The only way we can really make a difference to the quality of an end product is to be flexible and help out. This doesn't mean lowering our standards, it just means being more pro-active. XP allows us to update our skills and be part of a team rather than sitting outside a team waiting for things to happen.

Author's Response:
1/28/2003    
I quite agree.

 
 
Comment:    
by Hugh Lippincott 1/28/2003

As a long time SQA/tester, I would be pleased to work with an XP team and not have to be a quality gatekeeper. XP teams that ALL own the code SEEM to offer enough group pressure to keep code and unit tests up to the standard that needs no gatekeeper. Testers so often are the first who see the code after the developer that they automatically end up in that role.

Author's Response:
1/28/2003    
You may be the first to see the code after the developer, but i don't see how that forces you to be the quality gatekeeper. You get to choose. I encourage testers to report what they see but let the team decide whether they are meeting their quality standards.

 
 
Comment:    
by Steve Solomon 1/28/2003

Greetings! As an XP user and a QA Analyst for a mid-size software company, I must comment that there will ALWAYS be a need for QA "testers", regardless of how "extreme" the programming of smart apps like XP becomes, for these simple reasons: 1. Developers simply don't have time to adequately test their code. 2. QA analysts are trained to think "out of the box", which exposes far more bugs than does less rigorous testing. 3. Developers cannot maintain a "user perspective" in addition to the creative testing by the QA team, because they are typically far removed from the customer. QA, on teh other hand, usually deals with teh customer...Read On

Author's Response:
1/28/2003    
I certainly agree that good testers are able to focus on risk and failure in a way that is very difficult for the programmers writing the code. But most of the independent certifications separate quality assurance from testing (as they should). I'm not aware of any certifications that require independent testing.

 
 
Comment:    
by Michael Bolton 1/28/2003

Excellent article, Bret. I hasten to point out, however, that you have a checklist beginning with "If you are a tester on a team adopting XP, here’s how to demonstrate your value to the team:..." I'd suggest that the phrase "on a team adopting XP" is useful in the context of this essay, but unnecessary in the larger scheme of things. Those are all important things for a tester to do in any environment. Cheers, ---Michael B.

Author's Response:
1/28/2003    
I certainly agree. As the budgets tighten, everyone has to prove their value -- and developers may be more eager to take on some testing responsibilities.

 
 
Comment:    
by Gene Fellner 1/27/2003

Another Plug for the SEI CMM. CMM Level Two requires a Software Quality Assurance function--that works. The SQA staff review testing standards, procedures, staffing, training, orientation, integration into the SDM, interaction with the project team, project manager, end users and IT organizational management. Then it reviews conformance and achievement of the goals of the testing process. The CMM is perfectly compatible with XP and there is no justification for the contention that with XP "there ain't no need for that stuff." SQA adds value; this is a perfect example.

Author's Response:
1/27/2003    
Actually, i didn't talk about SQA. I talked about testing. I agree with the CMM that it is very important to distinguish between these two functions. I've heard Watts Humphrey, who founded the CMM, say that XP is consistent with the CMM principles.

 
 
Comment:    
by Raymond Ellis 1/27/2003

I recently attended a seminar given by a QA group in the Metro Detroit Area. The speaker was the president of an XP programming company. The disturbing impression that I left with, after speaking with him, was that feeling that he thought that running through every unit test before RTM phase was sufficient. I have seen enough results of unit tests, or lack of, to know that having unit tests is a good idea. But don't expect much improvement in this area from people being pushed so hard by their managers to get code out, much less unit tests. A lot of them only have programming and little testing experience. This by itself affects how in...Read On

Author's Response:
1/27/2003    
I'm surprised to hear that an prominent XPer thought unit testing was enough. It's not. I even think that there are lots of useful tests that go beyond the traditional acceptance testing.

 
 
Comment:    
by Gerold Keefer 1/27/2003

as some of the XP publications expose a lack of basic testing knowledge and skills within the XP community, i consider the necessity of skilled testers in projects more on the rise than on the fall. what makes testing in the XP context hard is the absence of clear definitons of what is what. for example there is a lot of talk about unit testing, however, so far i have not seen a definition of what a "unit" in XP is. a lot of folks will therefore end up in poking around and call this "exploratory testing". notworthy, XP has fostered the idea of test automation as a byproduct and JUnit is certainly an excellent tool, however, everybody...Read On

Author's Response:
1/27/2003    
I have a hard time finding fault with XP for not defining a unit. Even the IEEE standards only succeed in a circular definition (a unit is something that is unit tested). If you look at Kent Beck's Test Driven Development, you'll find a pretty good picture of what they mean by unit testing. I think Kent would agree that JUnit is a pretty simple tool. But it's been enough to encourage lots of developers to write unit tests.

 
Back to Top


Marketplace
Subscribe to Better Software Magazine
Subscribe to Better Software Magazine

First Name:

Last Name:

Email Address:


Home   |   Resources   |   Topics   |   Community   |   PowerPass



© 2009 StickyMinds.com. All rights reserved.
StickyMinds.com is a division of Software Quality Engineering.
Privacy Policy    Terms & Conditions    Link to StickyMinds.com    Feedback


AutomatedQA



STAREAST 2009