Arunkumar Khannur's Software Testing Knowledge Center

1.4 Software Testing Definitions

Software Testing is an integral part of Development Life Cycle and can be incremental and iterative. Early Software Testing saves cost of development by reducing rework effort and also increases customer satisfaction by bringing upfront the product quality related issues before release.

Microsoft believes “Testing has a stake in product success”. According to Boris Beizer- “Testing is a state of mind” and as such psychology and attitude of a tester plays important role in effective testing.

There are many definitions. However when seen closely, we can see that one set of definitions are business application centric focusing on client and user; and another set are on mission critical applications focusing on zero defect. In addition to this, definitions are also influenced by development methodologies, viz., and process driven or agile.

In our case, we believe in processes and also focus is on business applications. As such following set of definitions will suffice our requirements.

Definition (1):
According to IEEE (Ref: IEEE 83a)- “Testing is the process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies specified requirements.”

IEEE defines process as a sequence of steps performed for a given purpose. However according to SEI-CMM, software process is a set of activities, methods, practices, and transformations that people use to develop and maintain software and associated products.

Definition (2):
“Software Testing is a structured process that uncovers the defects in a software product. Software Testing is destructive in nature (dismantling the wishful assumption that code is bug-free) while the other tasks in the project are constructive.”

Definition (3):
“Testing is a process of executing a program with the intent of finding errors.” (Ref: Myers)

Definition (4):
For me “Software Testing is a structured process of evaluating, measuring, and rating the system or its components by manual or automated means against its quality characteristics, sub-characteristics derived from its specified requirements, latent requirements and also, standards”.

Thus, software testing is basically a structured process. It involves evaluation of software to know how well it meets specified requirements, standards, and fitness to cost and use. This makes us to perform software testing efficiently and effectively by binding people, methodology, and tools and technology to work with improved capability to produce predictable results.

Software testing involves evaluation where in tester has to verify and validate product for possible defects. We can see that software testing aims to know the extent to which quality of conformance with requirements and also, quality of design are met.

If we have to make software testing effective, we may have to address some common aspects in software testing that include functional and non-functional aspects. These common aspects are shown in Fig. 1.2.
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