Manual processes /

User stories for usability

User stories aren't just for discovering requirements and bugs.

Previous: Test Scripting Next: Checklists

User stories can be a great jumping off point for testing. If you don't already use user stories for feature discovery they're really good for that too. But what actually is a user story?

A user story is the description of an action that a user might take in an application to achieve a result. They're generally phrases in the sense of "As a type of user I will be able to do a thing in order to reason for doing the thing." For example;

"As a reader of the website I will be able to view an article in order to read it."

"As an editor I will be able to create a new article in order to add new content to the website"

"As an administrator I will be able to delete an article in order to remove old content from the website"

User stories go a long way to listing the features that a website will include. This is because everything that a website affords the user should be something that the user can do for a specific reason. There are other things that will need to be tested, but as a starting point they're great. User stories are analoguous to features.

I find that I have to expand user stories to include test cases for things that the user won't want to do - a test to make sure an error message is displayed for a failing file upload is necessary, but you won't find a user story for that.

After you've expanded a user story in to a set of tests you can run through them quickly to find whether or not a feature works according to what the user needs to do. This is a good formal test of a feature, but you can also use user stories for more informal tests.

User stories can form the basis of an unguided testing session to check a user can do all the things that they need to do in an application. These unguided testing sessions give some additional insight in to the application that wouldn't necessarily be discovered in a more formal environment.

Although there isn't a formal plan, it's still important to record what was tested and when. Without a record tests will be repeated, which is wasteful.

Tests from user stories are rarely enough to assert that a feature is complete even if they're all passing. However, user story tests are very useful in the sense that they inform the rest of the software development process - they highlight areas of the application where there needs to be additional work.

Previous: Test Scripting Next: Checklists