The Twenty Laws of Testing Computer Software September 24, 2009Posted by hubtechinsider in Agile Software Development, Project Management, Technology, Uncategorized.
Tags: Agile Software Development, developers, product management, Project Management, Software, Software Development
So without much further adieu, here are my twenty laws for testing computer software. Look for me to expound upon each of the twenty laws in more detail on these pages very soon:
- The sole goal of testing software is to find errors. Software testing is defined as the method of running a computer software program with the intent of discovering errors in the computer software program.
- The definition of a good test case is that a good test case is one that has been written in such a manner that it has a great chance of discovery of previously undiscovered errors.
- A successful test case is one that has been used to discover a previously undiscovered error.
- Only a high quality software testing process will result in a high quality software testing effort.
- Testing computer software is a professional discipline that must include skilled and trained professional computer software testers.
- Someone must assume full responsibility for the improvement of the software testing process.
- It is vital to foster a 100% positive, inclusive and team-oriented approach with a “test to break” mental attitude.
- A test case for testing a computer software program must include a definition of the expected result of the computer software program being tested.
- A computer software programmer should not test the computer software program they have coded themselves.
- By extension, a computer software programming organization or engineering department should not test its own programs; This is the work of an independent testing organization.
- The results of each test case should be reviewed with great care.
- Test cases should be written in order to include unforeseen and invalid user inputs, as well as foreseen, valid user input.
- Testing a computer software program to insure it performs as it should is only fifty percent of the testing effort. Another fifty percent of the testing effort should be expended in order to insure that the computer software program does not perform in ways in which it should not be performing.
- Avoid one-time, spontaneous, disposable test cases.
- A testing effort initiated under the assumption that no errors will be found will not be a successful computer software testing effort.
- The proliferation of errors in a computer software program can be prevented through the employment of testing during the early stages of the software development lifecycle.
- Software testing tools can be and should be a key element of a software testing effort.
- Although perhaps counterintuitive, the probability that more errors will be found in a section of a computer software program in which errors have already been found increases with the number of errors discovered in that section of the computer software program.
- Testing computer software well is an extremely mentally challenging exercise that requires creativity and perseverance from the testers in order to succeed.
- The perception (oftentimes forwarded by management) that “not enough time exists to test the product properly, so let’s just ship it anyway”, because the “rewards of shipping the software outweigh the risks of shipping the software with undiscovered errors” may still be common practice in many software development and engineering organizations, yet such an attitude will lead to catastrophe, as software quality is intrinsically linked to customer requirements and customer satisfaction.
Want to know more?
You’re reading Boston’s Hub Tech Insider, a blog stuffed with years of articles about Boston technology startups and venture capital-backed companies, software development, Agile project management, managing software teams, designing web-based business applications, running successful software development projects, ecommerce and telecommunications.
About the author.
I’m Paul Seibert, Editor of Boston’s Hub Tech Insider, a Boston focused technology blog. You can connect with me on LinkedIn, follow me on Twitter, even friend me on Facebook if you’re cool. I own and am trying to sell a dual-zoned, residential & commercial Office Building in Natick, MA. I have a background in entrepreneurship, ecommerce, telecommunications and software development, I’m the Director, Technical Projects at eSpendWise, I’m a serial entrepreneur and the co-founder of Tshirtnow.net.