Wednesday, August 14, 2019

Basic concepts of Testing

What is Verification & Validation?
Verification and Validation are the basic ingredients of Software Quality Assurance (SQA) activities.
“Verificationchecks whether we are building the right system, and
“Validation checks whether we are building the system right.

1. Verification Strategies comprise of the following:
  • Requirements Review .
  • Design Review .
  • Code Walkthrough. 
  • Code Inspections.


Verification Strategy
Performed By
Explanation
Deliverable
Requirements Reviews
Users, Developers, Test Engineers.
Requirement Review’s help in base lining desired requirements to build a system.
Reviewed and approved statement of requirements.
Design Reviews
Designers, Test Engineers
Design Reviews help in validating if the design meets the requirements and build an effective
system.
System Design Document, Hardware Design Document.
Code Walkthroughs
Developers, Subject Specialists, Test Engineers.
Code Walkthroughs help in analyzing the coding techniques and if the code is
meeting the coding standards
Software ready for initial testing by the developer.
Code Inspections
Developers,
Subject Specialists,
Test Engineers.
Formal analysis of
the program source
code to find defects
as defined by
meeting system
design specification.
Software ready for
testing by the
testing team.

2. Validation Strategies comprise of the following:
Unit Testing.
Integration Testing.
System Testing.
Performance Testing.
Alpha Testing.
User Acceptance Testing (UAT).
Installation Testing.
Beta Testing.

Validation
Strategy
Performed By
Explanation
Deliverable
Unit Testing.
Developers / Test
Engineers
Testing of single
program, modules,
or unit of code.
Software unit ready for testing
with other system component.
Integration Testing.
Test Engineers
Testing of integrated
programs, modules,
or units of code.
Portions of the
system ready for
testing with other portions of the system.
System Testing.
Test Engineers
Testing of entire
computer system.
This kind of testing
usually includes functional and
structural testing.
Tested computer
system, based on
what was specified
to be developed.
User Acceptance Testing.
Users
Testing of computer system to make sure it will work in the
system regardless of what the system requirements indicate.
Tested and accepted system based on the user
needs.
Installation Testing.
Test Engineers
Testing of the Computer System during the Installation at the
user place.
Successfully installed application.



TESTING TECHNIQUES
Testing techniques refers to the different methodologies used in different levels of testing a software application. They are classified as under:

1. WHITE BOX TESTING TECHNIQUES
White box testing deals with testing the internal logic and structure of the program. It is done to look in the code and find out which part of the code is not functioning and whether it was built according to the specified design. Tests are based on coverage of code statements, branches, paths and conditions.
White box testing is also called as glass, structural, open box or clear box testing.

Statement Coverage:
In this type of testing the code is executed in a manner that every statement of the application is executed at least once.

Decision Coverage:
In this type of testing the code is executed in each decision direction at least once.

Condition Coverage:
In this type of testing the code is executed in each decision with all possible outcomes at least once.

2. BLACK BOX TESTING TECHNIQUES

Black box testing deals with testing the functionality of the program or application against the given specifications. Logic of the program is not required here so the application is tested against the given specifications only. The application is tested with various inputs and the outputs received determine whether it is functioning correctly or not. Thus only the behavior of the application is tested.

Black box testing is also called as behavioral, functional testing.

The inputs given to the application is determined using various techniques as follows.

Equivalence Partitioning:
Equivalence partitioning is a black box testing technique that splits the input domain of a program into classes of data from which test cases can be produced. The test data is divided/partitioned into equivalent classes depending on the input condition. An equivalence class shows a set of valid or invalid states for the input condition.

For example, an application in which credit limits is given in the range Rs.1000 – Rs.2500 then the equivalence classes would be
  1. Less than Rs.1000 (invalid)
  2. Between Rs.1000 and Rs.2500 (valid)
  3. Greater than Rs.2500 (invalid)


Boundary Value Analysis:
It is a black box testing technique that splits the input domain into classes of data along its boundaries and generates test cases for the boundary values. These values are generated in the following manner.
  • Lower Boundary + 1, Lower Boundary – 1
  • Lower Boundary, Upper Boundary
  • Upper Boundary + 1, Upper Boundary – 1

For example, for the same condition of credit limits as in Equivalence Partitioning method (Rs.1000 – Rs.2500), the boundary value analysis would be
  • Rs.999, Rs.1001
  • Rs.1000, Rs.2500
  • Rs.2499, Rs.2501



Error Guessing:
It is a test data selection technique in which the Test Engineer picks values that seem likely to cause errors.
For example, he may test for an invalid date field like 29/2/2007. An experienced Test Engineer mostly uses such a technique.



No comments:

Post a Comment

If any suggestions or issue, please provide