Getting started with Software Testing

Software Testing Overview

What is testing?

Software testing is a way of finding defects to provide information about the quality of the product for product owners.

Testing also ensures whether the software program/product/application:

  • Meets the business and technical requirements that guided its design and development;
  • Works as expected; and
  • Can be implemented with the same characteristics.

According to ANSI/IEEE 1059 standard, Testing can be defined as a process of analyzing a software item to find the differences between existing and required conditions and to validate the software features.

Who does testing?

It depends on the process and the product owner of the project. In the IT industry, companies have a team with responsibilities to validate the software developed. Developers also perform testing that is Unit Testing.

The following professionals are involved in testing are:


  • Software Tester
  • Software Developer
  • Project Lead/Manager
  • End User


Different companies have various designations for people who test the software, basis of their experience. Example: Software Quality Assurance Engineer and QA Analyst etc.


When to Start Testing?

Software testing should be start as early to reduce the time to re-work, defect free product and cost. In SDLC life cycle testing will be started from requirement gathering stage and ends at the deployment of the software. Example: In Water fall model testing is conducted in the Testing phase, but in incremental model, testing is done at the end of every increment and at the end the whole application is tested. Testing is done in different types at every stage of SDLC like, Requirement gathering stage, the analysis and verifications of requirements are also considered testing. Reviewing the design in the design stage with goal to improve the design is considered as testing. Testing done by a developer on completion of the coding is known as Unit testing.


When to Stop Testing?

Unlike when to start testing it is difficult to determine when to stop testing, as testing is not an ending process and nobody can say that any software is 100% tested/bug free. Following are the condition should be considered to stop the testing:

  • Complete execution of test case.
  • Deadlines of Testing.
  • Certain point of completion of Functional and code coverage.
  • No high priority bugs are identified.
  • Depends on management decision.

Verification& Validation

Verification and Validation points are given below. 


             Verification Validation
1. Execution of code is not involved. 1. Execution of code is involved.
2. Inspections, reviews, walkthroughs, and Desk-checking etc. are part of verification. 2. Validation methods are Black box testing, gray box testing and white box testing etc.
3. Verification is to verify whether the software conforms to specifications. 3. Validation is to verify that software works as per the customer requirements and expectations.
4. It can find errors that validation cannot find. It is low level exercise. 4. It can find errors that verification cannot find. It is High Level Exercise.
5. Focus on software architecture , requirements specification and application complete design, and database design etc. 5. Focus on actual product-a modules, integrated modules, and working of final product.
6. QA team ensures that the software is working as per the SRS document. 6. It is performed with the involvement of testing team.
7. Verification done before validation. 7. Validation is done after the after verification process







This tutorial has 9 parts to it, which covers basics of software testing, You will gain knowledge on various topics of software testing including testing estimation, software testing levels and also covers importance of documentations.


No prior knowledge on Software Testing is essential

Learning Objectives

This tutorial is written as an overview of Software Testing

Author: Subject Coach
Added on: 10th Feb 2015

You must be logged in as Student to ask a Question.

None just yet!