Arunkumar Khannur's Software Testing Knowledge Center

1.8. Software Testing Principles

Software testing follows certain principles as discussed below.
1.8.1. Principle #1: Complete testing is impossible
To perform complete testing, we need to start from testing lowest level structures, viz, expression & data types and move towards testing highly complex system. This demands unbelievably high investment of time and effort. Also, testing at program level demands execution of every statement of line at least once. Fulfilling such conditions and also, ensuring 100% test coverage can be easily said than done.

1.8.2. Principle #2: Software testing is not simple
Software testing is not simple but quite a challenging structured process. Quality testing requires testers to understand a system/product completely. However clients, architects and designers rarely understand the need of imparting system and product related knowledge to testers. This would cause insufficient and substandard testing.

Also, quality testing needs adequate test set, and efficient testing methods. Test designing and testing methods are far away from professionalism. Also, testers have to carry out their work under a very tight schedule and lack of test tools. Also there can frequent changes in requirements but no additional time and resource is extended to testing time.

All these would throw greater challenges to software testing.

1.8.3. Principle #3: Testing is risk-based
Every feature itself acts as a risky element. Implementing specified feature will be having many risks posed at project level, development level, environment level, and quality profile level. Each of these may result in many failure modes where in software fails to deliver results as expected. So it is important during testing to develop risk idea, understand possible failure modes, and tring to test for the same.

1.8.4. Principle #4: Testing must be strategy based and plan driven
Good testing is strategy driven and plan centric. Strategy provided high level directions, scope of testing and test success criteria. Plan shall be drawn based on this to cover defined scope if testing within stipulated time, effort and cost.

1.8.5. Principle #5: Testing requires independence
Testing team shall have liberty and freedom. It shall not report to development manager. Views of testing role shall be taken at the time of releasing the software. Good testing needs proper involvement, treatment, and respect to testing role.

1.8.6. Principle #6: Quality software testing needs knowledge on product, domain, process, and creativity
Quality software testing needs good understanding of software products and related domain application. Also it demands selection and usage of cost-effective testing methodology, coverage, test methods, and tools. It requires good engineers with creativity, and solid software testing experience. Thus it is good practice to provide training on product, domain, process, technology to testers. Also, good testers with right attitude who work passion and involvement will make a real difference.
Khannur's Book
Arunkumar Khannur, Software Testing - Techniques and Applications, Published by Pearson Publications, 2011 (ISBN:978-81-317-5836-6; Pages:341 + xxii)
Follow Khannur
Khannur's Company
ISQT Process & Consulting Services Pvt. Ltd., Bangalore, INDIA
Khannur's Software Testing Forum
 Contact Khannur
ISQT Process & Consulting Services Pvt. Ltd.
#732, 1st Floor, 12th Main,
3rd Block, Rajajinagar,
Bangalore - 560010, INDIA
Phone: +91 80 23012511
Skype: arun.isqt