Friday, May 17, 2013

A Small Intro for Software Testing

What is software testing ?
  •  It is the process of evolution a software item to detect difference between given input and expected output , also to assess the feature of a software system.
  •  Testing assesses the quality of the product.
  •  It should be done in development phase.
  • It is a verification and validation process.

Verification :  
  • It is the process to make sure the product satisfies the conditions imposed at start of the development phase.
  • To make sure the product behaves the way we want.
Validation :  
  • It is the process to make sure the product satisfies the specified requirements at end of the development phase.
  • To make sure the product is built as per customer requirement.

There are two basics of software testing

1. Blackbox Testing :
  •    It is a testing technique that ignores internal mechanism of the system and focusses on the output generated against any input and execution of the system.
  •    It is often used for Validation.
  
2. Whitebox Testing  :
  •    It is a testing technique that takes into account the internal mechanism of the system.
  •    It is often used for Verification.
  
Types:

There are many types of testing like as below

Unit Testing :
  •   It is the testing of an individual unit or group of related units.
  •   It is done by programmer to test that the unit he has implemented is producing expected output against input.
  •   It falls under class of whitebox testing.

Integration Testing:
  •   It is testing in which the group of components are combined  to produce the output.
  •   It is also interaction between hardware and software is tested if hardware and software components have any relation.
  •   It may fall both blockbox and whitebox testing.

Functional Testing:
  •   It is the testing to ensure that the specified fuctionalities required in the system requirements works.
  •   It falls under class of Blackbox testing.

System Testing:
  •   It is the testing to ensure that by putting the software in different environments (diff OS) it still works.
  •   It is done with full system implementation and environments.
  •   It falls under class of Blackbox testing.

Performance Testing:
  •   It is the testing to assess the speed and effectiveness of the system and to make sure it's generating results in
  • specified time as an in performance requirements.
  •   It falls under class of Blackbox testing.

Usability Testing:
  •   It is performed to the perspective of the client , to evaluate how the GUI is user-friendly .How easily can the client learn? After learning how to use, how proficiently can the client perform? How pleasing is it to use its design?
  •   It falls under class of Blackbox testing.

Acceptance Testing
  •   It is often done by the customer to ensure that the delivered product meets the requirements and works as the customer expected.
  •   It falls under the class of black box testing.

Regression Testing
  •   It is the testing after modification of a system, component, or a group of related units to ensure that the modification is working correctly and is not damaging or imposing other modules to produce unexpected results.
  •   It falls under the class of black box testing.

Beta Testing
  •   It is the testing which is done by end users, a team outside development, or publicly releasing full pre-version of the product which is known as beta version. The aim of beta testing is to cover unexpected errors.
  •   It falls under the class of black box testing.