The Futility of Testing

for RuBoard

"What?!" you ask, "Testing is futile?" Yes, testing is ultimately futile. You cannot possibly test every possible scenario that every feature in an application may face. You can't know every storm to which an application may be subjected in advance. Just when you think everything's been tested and is ready to go, a user finds a way to stress your app in ways you never dreamed.

As a programmer, you typically implement a single solution from a number of possible solutions. As a tester, you have to prove that this solution works when faced with all possible combinations of valid inputs, and fails gracefully for all combinations of invalid inputs. Your job is a futile one indeed. You are attempting to prove a negativethat no bugs exist in the software's handling of valid and invalid inputs.

So, the key to successful testing is in focusing your efforts on the areas in which they'll do the most good. Begin by acknowledging that testing is never really complete, then prioritize the areas that you'd like to test, and the depth to which you'd like to test them. With unlimited time and resources, you'd test the complete breadth of features and the full depth of each feature exhaustively. In the real world, however, there are tradeoffs. You'll test some areas more than others. In a complex application, the degree to which you're able to test the application will definitely vary from area to area. It's far more important, for example, that the app's file-saving feature works, than, say, its About box.

The principle tradeoff here is one of breadth versus depth. Breadth with no depth verifies that at least a semblance of each function is there, but it doesn't really tell you how well it works. Depth with no breadth verifies that a few key areas are working well, but neglects the rest of the app. Successful testing balances these two against one another to ensure that the greatest breadth of functionality is tested to the greatest degree possible given the schedule and resources at hand.

for RuBoard


The Guru[ap]s Guide to SQL Server[tm] Stored Procedures, XML, and HTML
The Guru[ap]s Guide to SQL Server[tm] Stored Procedures, XML, and HTML
ISBN: 201700468
EAN: N/A
Year: 2005
Pages: 223

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net