Skip navigation.

Archives

Sponsorship opportunities for CAST2008 still available

There are still sponsorship opportunities available for CAST08, the annual conference of the Association for Software Testing, a non-profit professional association with a mission of advancing the understanding and practice of software testing through conferences, LAWST™ style peer workshops, publications, training courses, web sites, and other services.This is an exciting year for CAST. We are

Satisfying Your Users Is Like Satisfying Your Lover

Trying to satisfy our users is often like trying to satisfy a sexual partner.


Heed the words of Swiss Tony

It can get complicated, y'know. We poke and we prod, and caress and cajole, all the while desperately looking for signs that what we're doing is having some positive effect. A little moan here,

Agile Performance Testing

Performance Testing on an Agile Project

This is a draft of the paper I submitted to Agile 2007 last year. Also, this is the write up of a talk I did at WOPR 2006. People often ask me about Agile Performance Testing, so, here we are. Enjoy and, as usual, all comments are welcome. Jamie.

Abstract

read more

Test Axioms Paper

TaicPart is a joint commercial/academic conference and it's been a pleasure to sponsor the event last year and will be again in 2008.

I've articulated the thinking behind the Testing Axioms in a paper (that I obviously hope to present to the TaicPart community). My submitted paper on Test Axioms as Thinking Tools can be found here.

Conference of the Association of Software Testing 2008

The third annual Conference of the Association of Software Testing (CAST) 2008 in Toronto, July 14-16. Early bird registration ends May 30. Here’s what Michael Bolton has written about it:A colleague recently pointed out that an important mission of our community is to remind people–and ourselves–that testing doesn’t have to suck.Well, neither do testing conferences. [...]

Exploratory Testing on Chat


Testing Google Talk is challenging -- we have multiple client implementations, between the Google Talk client, the Google Talk Gadget, and Gmail chat, while also managing new features and development. We rely heavily on automation. Yet there's still a need to do manual testing before the release of the product to the public.

We've found that one of the best ways to unearth interesting bugs in the product is to use Exploratory Testing (http://www.satisfice.com/articles/et-article.pdf) The trouble with ET is that while there appears to be a genetic disposition to be naturally good at exploring the product effectively, it's very easy to miss great swathes of the product when one follows their intuition through the product rather than focusing on coverage metrics. And speaking of coverage, how do we measure how well a team is doing finding bugs and getting coverage over the functional use cases for the product? All of the things that we rely on to measure the quality of the product, boundary and edge cases being covered? Plus, if not everyone is proficient at ET, how do we solve the overhead of having an experienced team member looking over people's shoulders to make sure they are executing well?

To do this, we start with the definition of a Test Strategy. This is where we outline the approach we are taking to the testing of the product as a whole. It's not super-detailed -- instead it mentions the overarching areas that need to be tested, whether automation can be used to test the area, and what role manual testing needs to play. This information lets developers and PMs know what we think we need to test for the product, and allows them to add unit tests etc to cover more ground.

Some basic test case definition go into the Test Plan. The aim of the test plan (and any test artifacts generated) is not to specify a set of actions to be followed in a rote manner, but instead a rough guide that encourages creative exploration. The test plan also acts as the virtual test expert, providing some framework under which exploratory testing can be executed effectively by the team. The plan decomposes the application into different areas of responsibility, that are doled out to members of the team in sessions that are one-working-day or less duration. By guiding people's thinking, we can cover the basics, fuzzy cases, and avoids a free-for-all, duplication, and missed areas.

Finally we get a status report from the testers every day, that describes the testing that was performed that day, any bugs raised, and blocking issues identified. The reports acts as an execution of the "contract" and gives traceability, and the ability to tweak exploratory testing that has gone off track from where we've determined we need to concentrate efforts. We can use these status reports along with bug statistics to gauge the effectiveness of the test sessions.

This is approach is fairly simple, but sometimes simple works best. Using this method has allowed us to make the best use of test engineers and maximized the effectiveness of each test pass. It's proven itself to be a fruitful approach and balances the need for reporting and accountability with the agility of exploratory testing.