Arunkumar Khannur's Software Testing Knowledge Center
1.3 Purpose of Testing
The 21st Century is referred to as a knowledge era which is strongly driven by Information Technology (IT). IT brought in revolutionary transformation in the way we collect, assimilate, process, and distribute information. Also, specific information is availed to right users across the world anytime and anywhere in a required form so as to drive every critical transaction or decision. This all could happen because of Information Technology (IT) which is a result of four Cs-computers, communication, connectivity, content and software. Thus, software is not only a major contributor in IT revolution but also, gifted the world an un-precedent growth. So in this IT world, success of any system or organization depends majorly on software which is part of the system or organization. We need to ensure that software shall work properly.

Making software to work properly is an easy work but is a very challenging and a highly creative work. In this endeavour, we need to address the problem at software development level and bugs level. Software testing plays an important role at both these levels and is a means of ensuring product quality and reduced rework. Also, increasing number of organizations and clients understand the value of testing and are now appreciating its contribution.

If software has to work properly, it has to be syntactically and semantically right; meet client and user requirements; fit to the operational environment; and also fulfil requirements like efficiency, reliability, usability, portability, and maintainability.

The purpose of software testing is to analyze a particular item (hardware, software, process) of a software product to determine the differences between its requirements and actual behavior, and to evaluate the features and functionality of the given item to ensure it meets the needs of the user. In addition, it evaluates for fulfilment of requirements like efficiency, reliability, usability, portability, and maintainability.

In order to perform this, software testing should start at the lowest (smallest) possible item viz., expression & data types and work towards testing the entire system as a whole (include business processes where applicable).

If the system includes COTS (Commercially Off-the Shelf) products, there may not be any unit testing of the COTS, but integration testing should be conducted to ensure that the various pieces of the COTS work correctly on the proposed system hardware. Interface testing is also important when utilizing COTS products.

Note: there may be cases where it is not possible or feasible to test a given requirement. In this case, other methods must be used to verify that the intent of the requirement was met. When writing requirements, "testability" and specific test methods and expected results for testing the requirement should be considered.
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