Software Testing Overview - Software testing

What is Software Testing - Overview?

Testing is the process of checking a system or the sysytem component(s) with the purpose of finding, if it fulfills the particular requirements or not. In other words, testing is executing a system for identifying any errors, gaps or missing of requirements in opposite to the actual requirements.

As per ANSI/IEEE 1059 standards, Testing can be described as - A process of analyzing a software item and its features in order to identify the differences between existing conditions and the conditions that are required (that is defects/errors/bugs).

Who does Testing?

It merely relys on the process and the related customers of the project(s). In IT industry, big companies have a team with an accountability to check the developed software product in regard of the given requirements. Developers will also perform testing which is known as Unit Testing. In most scenarios, the below professionals are included in testing a software as per their knowledge:

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

Different companies will allot various designations for the people who is going to test the software based upon their experience and knowledge of the individuals such as Software Quality Assurance Engineer , Software Tester, QA Analyst, etc.

There is a specified during which the software can be tested. The upcoming two sections will describe when to start the testing and when to end the testing during the project cycle.

When to Start Testing?

Starting testing in the earlier stage will reduce the cost and time of reworking and will procure error free which can be delivered to client. However in SDLC(Software Development Life Cycle) testing can be done right from the Requirements Gathering phase and can be continued till the software develops.

It also relys on the model that is being used during development. For instance, in the Waterfall model, formal testing is performed during the testing phase; where as in the incremental model, testing is conducted at the end of each increment/iteration and the entire application undergoes testing at the end.

Testing is done in various forms at each phase of SDLC:

  • In the requirement gathering phase, the analysing and verification of requirements are also treated as testing.
  • Reviewing the design in the design phase with the purpose of improving the design is also treated as testing.
  • Testing conducted by a developer soon after completion of the code is also considered as testing(Unit testing).

When to Stop Testing?

It is somewhat difficult to say when to stop testing, because testing is an endless process and no one can expect that for a software 100% testing is done. The below aspects are to be taken in to consideration in order to stop the testing process:

  • Testing Deadlines
  • Completion of test case execution
  • Completion of functional and code coverage to a certain point
  • Bug rate falls below a certain level and no high-priority bugs are identified
  • Management decision

What is meant by Verification & Validation?

The Verification and Validation terms are very confusing for many people, who will use them replaceable. The below table shows the major differences between verification and validation.





Verification addresses the concern: "Are you building it right?"

Validation addresses the concern: "Are you building the right thing?"


Ensures that the software system meets all the functionality.

Ensures that the functionalities meet the intended behavior.


Verification takes place first and includes the checking for documentation, code, etc.

Validation occurs after verification and mainly involves the checking of the overall product.


Done by developers.

Done by testers.


It has static activities, as it includes collecting reviews, walkthroughs, and inspections to verify a software.

It has dynamic activities, as it includes executing the software against the requirements.


It is an objective process and no subjective decision should be needed to verify a software.

It is a subjective process and involves subjective decisions on how well a software works.

All rights reserved © 2020 Wisdom IT Services India Pvt. Ltd Protection Status

Software testing Topics