A Pragmatic Approach to Functional Testing

Ranked #87,078 in Computers & Electronics, #1,344,199 overall | Donates to Save the Children

A progmatic approach to functional testing which should improve the quality of your software but still reduce costs.

(Rather early days for this page please come back for more information or use the guest book to request information)

Most of us who develop software have one problem... bugs! Well actually we all have the same problem.

Now as much as we try to remove bugs when it comes down to us no matter how much testing we do our customers will test our product to destruction within seconds of its use.

I have worked on software that has on the day of its release will get millions of individuals using it (and as such testing it) and no company could ever have a big enough test team to compete.

So when we test we need to make it the best we can. Concentrate on the main ways the software is used but be super fast at reacting to the not so obvious ways.

Automation is the way to go... but how!

Overview of The Process

An overview of the process. Simplified to a degree as it doesn't show any iteration details. It can be assumed that you may very well me writing requirements for tests and code to be developed in the next iteration.

It All Starts With Requirements

All functional testing should start with the requirements for the system. If it doesn't what are you actually testing the system for... random functionals!

I believe the best way to document requirements are by use cases. If written well these make great functional tests. So use them if they exist or create them if they don't.

Do It Yourself

We don't away work in the best environments. Sometimes (mostly) as a developer we don't have anywhere enough good requirements.

So if they don't exist it is almost always worth you writing the any information down you gain as user stories (Use Cases) help you team understand and use them as a way o

Collaboration On Requirements

The generation of Use Cases (User Stories) which become our test scripts.

Three main contributors can be used to develop the Use Cases. Your Business Analysts (or customer, or just someone with a good idea) will come up with the normal stories. That's what they want to the software to do, for example "Sell the product" they make.

But we can bring in the testing department. They can think about how the system could be broken and review the normal stories.

But get the engineers involved as well. They can put in a lot of early technical information and stop the project going in a direction that is not technically possible or where a beter solution exists.
  • As always we like to work iteratively so allow improvements to be factored in as quickly as possible in later iterations.

Some Reading

Don't just take my word for it, plenty of books to gain more information.

Testing Computer Software, 2nd Edition by Cem Kaner, Jack Falk, Hung Q. Nguyen

Testing Computer Software, 2nd Edition by Cem Kaner, Jack Falk, Hung Q. Nguyen

This book will teach you how to test computer soft more...0 points

Lessons Learned in Software Testing by Cem Kaner, James Bach, Bret Pettichord

Lessons Learned in Software Testing by Cem Kaner, James Bach, Bret Pettichord

Decades of software testing experience condensed i more...0 points

Software Testing (2nd Edition) by Ron Patton

Software Testing (2nd Edition) by Ron Patton

<p><i>Software Testing, Second Edition more...0 points

Perfect Software: And Other Illusions about Testing by Gerald M. Weinberg

Perfect Software: And Other Illusions about Testing by Gerald M. Weinberg

Everyone has a role to play in software testing -- more...0 points

Professional Software Testing with Visual Studio 2005 Team System: Tools for Software Developers and Test Engineers (Programmer to Programmer) by Tom Arnold, Dominic Hopton, Andy Leonard, Mike Frost

Professional Software Testing with Visual Studio 2005 Team System: Tools for Software Developers and Test Engineers (Programmer to Programmer) by Tom Arnold, Dominic Hopton, Andy Leonard, Mike Frost

<ul> <li>Visual Studio 2005 Team Syste more...0 points

Test Environment

Selenium

Well of course we can test manually. Read through the tests, click the buttons and check the results. We can at least hope that is what happens and we don't accidentally press the wrong button or see a pass that is not there.

Also manual testing takes an incredible about of effort and if you don't have the best code base its often risky to only test small sections of the software and ignore the possibility of side-effects.
  • One tool I have used is Selenium. Its OSS and most important to your boss its FREE! So no need to get the management to sign off for a spend. Now I'm sure there are commercial tools that may have more function and be well worth the money so you might want to consider these at the beginning or when the concept is proven.
  • Selenium allows you to test the functionality of web sites. Now this might not be the kind of application you wish to test so you may need another environment. In which case the rest of the section may be no good to you but the rest of this page should still be useful.
  • Ease of Use: Well we want to make things as easy as possible. Recording key presses and identifying items to be checked and the values they should be is a good way to get the tests done. Ease of use from the beginning is very important to getting an environment, philosophy or process adopted. If you really need to push something you might not have it quite right.

What you Think

I don't know all the answers but maybe you do. Please add your thoughts.

by

SimonKiteley

Professional Software Engineer. Currently concentrates on Java Development, UML modelling and spending increasing amounts of time on Process Improveme... more »

Feeling creative? Create a Lens!