Arunkumar Khannur's Software Testing Knowledge Center
   
 

1.5. Role of Software Testing

Primary Role of Software Testing is:
  • Verification- Are we doing things right? (Process)
  • Validation- Are we doing the right things? (Requirements)

Secondary Role of Software Testing is
  • Instill confidence to “Ship the Product”
  • Provide Insight into software process
  • Continuously improve the Software Testing process

1.5.1. Verification and Validation
According to IEEE 1059, Guide for Software Verification and Validation Plans:
"Software Verification and Validation (V&V) is a disciplined approach to assessing software products throughout the product life cycle. A V&V effort strives to ensure that quality is built into the software and that the software satisfies user requirements. V&V provides software management with insights into the state of the software project and products, allowing for timely change in the products or in the development and support processes.

Software verification and validation employs review, analysis, and testing techniques to determine whether a software system and its intermediate products comply with requirements. These requirements include both functional capabilities and quality attributes."

Verification
  • Verification confirms that work products properly reflect the requirements specified for them. In other words, verification ensures that “you built it right.”
  • Verification is the process of proving that the developed code can be derived formally (i.e. mathematically) from the Specification.
  • Verification is an approach for ensuring that we are doing things right through a process.
  • Verification may be done in a formal way, using the prepositional calculus to prove that code implements the specifications correctly

Validation
  • Validation confirms that the product, as provided, will fulfill its intended use. In other words, validation ensures that “you built the right product”
  • Validation is the process of demonstrating to the client that the software performs the process required by the client.
  • Validation is an approach to ensure that we are building right things through Requirements.

Verification is process centric and involves checking for compliance with standards and processes. Any violation is reported as an error.

Validation is product centric and it deals with mapping the final software with specified requirements and also, latent requirements to know how well it meets them. This will answer the questions like:
  • How well the product performs?
  • How easy it is to keep it performing well?
  • How long one can keep it performing well with proper maintenance?

In addition to this, software testing also verifies effects of architecture and design on a product's performance at the time of purchase and its performance and maintenance requirements throughout its life. This would allow to uncover errors caused from variance from design. Thus we can report any error caused from non-conformance in a software product during translation from one phase to another phase. By doing this, we can find and report errors caused from lack of traceability; non-conformance with standards, or exit criteria; failure to meet performance because of bad architecture

Thus verification tries to know the extent to which fitness to standards is being addressed where as validation concentrates on fitness of use, fitness of cost, and fitness to latent requirements.

As a result of software testing we would be in a position to know and answer questions like:
  • Is the customer satisfied with the product performance/service?
  • Do products meet specifications?
  • Where/how are quality problems found?
  • What expenses are associated with quality?
  • How can quality be improved?
  • What would it cost?
  • What benefits would be achieved?

By answering these questions, we will be in position to know the extent to which the totality of features and characteristics of a product or a service bears ability to satisfy stated or implied needs. (Ref: ISO/IEC 8402)
 
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
STEP-AUTO Forum
 Contact Khannur
ISQT Process & Consulting Services Pvt. Ltd.
#732, 1st Floor, 12th Main,
3rd Block, Rajajinagar,
Bangalore - 560010, INDIA
Phone: +91 80 23012511
URL: www.isqtinternational.com
Email: khannur@isqtinternational.com
Skype: arun.isqt