Pages

Monday, February 14, 2011

Software Testing for Freshers

Testing Overview

Software testing can be stated as the process of validating and verifying that a software program/application/product:
  1. meets the requirements that guided its design and development;
  2. works as expected; and
  3. Can be implemented with the same characteristics.

Testing Methods

The Software testing methods are traditionally divided into white- and black-box testing. These two approaches are used to describe the point of view that a test engineer takes when designing test cases.

Functional Testing (black-box)

Black Box Testing attempts to find errors in the following categories:
  • Incorrect or missing functions
  • Interface errors
  • Errors in data structures or external database access
  • Behavior or performance errors
  • Initialization and termination errors

BLACK-BOX Testing Levels


Black box testing (also called functional testing) is testing that ignores the internal mechanism of a system or component and focuses solely on the outputs generated in response to selected inputs and execution conditions.
Black Box testing method is applicable to all levels of the software testing process:
  • Unit Testing is a level of the software testing process where individual units/components of a software/system are tested. The purpose is to validate that each unit of the software performs as designed.
  • Integration Testing is a level of the software testing process where individual units are combined and tested as a group. The purpose of this level of testing is to expose faults in the interaction between integrated units.
  • System Testing is a level of the software testing process where a complete, integrated system/software is tested. The purpose of this test is to evaluate the system’s compliance with the specified requirements.
  • Acceptance Testing is a level of the software testing process where a system is tested for acceptability. The purpose of this test is to evaluate the system’s compliance with the business requirements and assess whether it is acceptable for delivery.


TEST DESIGN TECHNIQUES

Equivalence partitioning

Equivalence Partitioning is a software test design technique that involves dividing input values into valid and invalid partitions and selecting representative values from each partition as test data.

Boundary Value Analysis

Boundary Value Analysis is a software test design technique that involves determination of boundaries for input values and selecting values that are at the boundaries and just inside/outside of the boundaries as test data.

Cause Effect Graphing

Cause Effect Graphing is a software test design technique that involves identifying the cases (input conditions) and effects (output conditions), producing a Cause-Effect Graph, and generating test cases accordingly.

ADVANTAGES OF BLACK BOX TESTING

  • Tests are done from a user’s point of view and will help in exposing discrepancies in the specifications
  • Tester need not know programming languages or how the software has been implemented
  • Tests can be conducted by a body independent from the developers, allowing for an objective perspective and the avoidance of developer-bias
  • Test cases can be designed as soon as the specifications are complete

DISADVANTAGES OF BLACK BOX TESTING

  • Only a small number of possible inputs can be tested and many program paths will be left untested
  • Without clear specifications, which is the situation in many projects, test cases will be difficult to design
  • Tests can be redundant if the software designer/ developer has already run a test case.
  • Ever wondered why a soothsayer closes the eyes when foretelling events? So is almost the case in Black Box Testing.

STLC