Non-functional don’t exist!

Jan10

Perhaps the title is a little strange. You might not feel happy with the statement, but non-functionals don’t exist! Of course this isn’t completely true. If we believe Google a search for “non-functional” delivers nearly 2 million hits. The first hit refers to http://en.wikipedia.org/wiki/Non-functional_requirement. Something I noticed was that there are many blogs writing about non-functionals. This could mean several things:

  • There is an ongoing development and the early adopters are working to convince the world.
  • Some people think that non-functionals exists, but they do not exist.

Whatever way you look at it if you read a (functional) design document you will notice the lack of non-functionals. They are hardly mentioned. The design describes what the application needs to do to work and why this is needed, but nothing further…

For instance take a web shop. What would we like to do in a web shop. We order product, shop around and before buying logging in. This is a simple view but also true. As a client we order the build of the web shop and expect that it is properly constructed. A testers will use the design document and test is the product meets the specifications. At the end a tester can give his advice about the product. This can be positive when the specifications are met. But even after a positive advice from a tester a customer could still not want to shop. Why? The reason is that some things, like security, usability or performance are not be regulated. What if you have a product in the cart and when you click on it, to see it, it takes 30 seconds to show up? What if you have to click an item 5 times to put that your product into your cart because you have to go through to 4 screens? What if you can order products for free? Good for you but less for the store owner and maybe you are even punishable?

A lot of people call these things non-functionals. But is it a non-functional? Do you agree to reverse it? Does a shop function when customers stand in a line for the cashier for 3 hours? If products are for free? If they have to look for creamer at the toothpaste? No! The shop will close if this is for real. So, part of the function of a shop is how the shop operates.

Why don’t we view software development not just like that? Let’s think a little bit more about the operation when developing software. As a testers you have a great an fun new role to play. Testers are involved in testing that web shop and look at it from a user perspective!
But first look at the design documentation. Are there specifications about security and the loading times of screens? If “yes” then create test cases for them and cover them. But if nothing is mentioned about these kind of things; indicate it to your client! Initially as a recommendation, but perhaps you could get involved at the beginning of a project and give these recommendations at the start. The quality of the web shop will greatly be enhanced because the specifications are already in the documentation.

Perhaps ask yourself the following questions during a review of the documentation:

  • What requirements are listed in the field of security, performance and usability?
  • What are the requirements translated into the design documentation?
  • Are the requirements created SMART, for example “screen should appear within 5 seconds” instead of “the screen must be displayed within a reasonable time”?
  • Are the requirements in only 1 way to explain?

A checklist and a real-life test are excellent test design techniques for this.

I think that in many organisations non-functionals hardly exist. However we as testers can have a major contribution to make this more and more noticeable. So together we make the software faster, safer and more user friendly!

This entry was posted on Saturday, January 10th, 2009 at 07:59 and is filed under Andréas Prins, structured testing. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply

Before you submit form:
Human test by Not Captcha