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.
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
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
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
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
Decades of software testing experience condensed i more...0 points
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
Everyone has a role to play in software testing -- more...0 points
Test Environment
Selenium
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.
by SimonKiteley
Professional Software Engineer. Currently concentrates on Java Development, UML modelling and spending increasing amounts of time on Process Improveme... more »
- 0 featured lenses
- Winner of 3 trophies!
- Top lens »
Explore related pages
- Secrets of Goat Milk Soaps Secrets of Goat Milk Soaps
- Independent Software Testing and QA Independent Software Testing and QA
- Jenkins - My favourite developer tool in 2011 Jenkins - My favourite developer tool in 2011
- Free Online Translation Tools & Resources Free Online Translation Tools & Resources
- Software Testing Outsourcing Overview by BugHuntress QA Lab Software Testing Outsourcing Overview by BugHuntress QA Lab
- restaurant furniture restaurant furniture





