Testing Methodologies

There are different testing methodologies used for testing a software. Each of these methodologies look at the software differently and help in detecting defects in the software. Let's see, which are the software testing methodologies in this write up...
Software testing is a process consisting of all life cycle activities, both static and dynamic, concerned with planning, preparation and evaluation of software products and related work products to determine, that they satisfy specified requirements, to demonstrate that they are fit for purpose and to detect defects. ~ Foundation of Software Testing by Dorothy Graham, Erik van Veenendal, Isabel Evans, Rex Black.

Software testing is the process which probes the software through the entire software development life cycle to ensure that the software does indeed meet the requirements of the client. At the same time, the quality of the software is also checked for in this process. It is the testing process which gives an objective report about the software, while the software development is yet being carried out. There are different testing methodologies which are used in the software testing life cycle. It is important to note that software testing techniques can be introduced at any stage of the software development process. The software testing estimation methodologies are used to determine the amount of time required for the entire process. However, it is best to introduce it in the early stages to minimize the expenses in case of major defects.

Types of Software Testing Methodologies

Different types of types of software testing are used to assess completeness, correctness and quality of the software developed. The entire process of software testing is carried out on behalf of the end clients. The software testing types are mentioned below. It is important to note that all the methodologies used for testing a software fall under either one of the following methodologies.

White Box Testing
The white box testing strategy is also known as 'structural testing' or 'glass box testing'. In this type of testing, the tester has an internal view of the software. The aim of the tester is to know the exact functioning inside the box, i.e. internal structure of the software is tested. This methodology helps in identifying thoroughness of testing by covering the structural elements or coverage items. White box testing is often used for component and integration level of testing. In rare cases, it is used to test at higher levels. White box testing may be used for higher levels, when business process testing has to be carried out. While performing white box testing, the tester uses different types of inputs to test different paths in the code and determine the appropriate output. This software testing methodology makes use of techniques like control flow testing, data flow testing, branch testing and path testing. The methods used in this methodology are as follows:
  • Unit Testing
  • Static Testing
  • Code Coverage
  • Error Guessing
  • Integration Testing (carried out by the developer himself)
Black Box Testing
In black box testing strategy, the tester only has an external view of the software. It is used to check both functional as well as non-functional aspects of the software. While these aspects have been checked, there is no reference made to the internal structure of the software. While writing the test cases, knowledge of specifications, requirements and design is necessary. Often functional or non-functional tests can be written using this methodology, however, more often functional tests are written. Both valid inputs and invalid inputs are used when this testing methodology is used. The different types of techniques used in this testing methodology are decision tables, state transition tables, equivalence partitioning, boundary value analysis, etc. The methods used in this methodology include:
  • Integration Testing (carried out by a tester)
  • Functional Testing
  • Performance Testing
  • Load Testing
  • Stress Testing
  • Exploratory Testing
  • Usability Testing
  • Reliability Testing
  • Ad-Hoc Testing
  • Smoke Testing
  • System Testing
  • End to End Testing
  • Compatibility Testing
  • Security Testing
  • Regression Testing
  • Validation Testing
  • Acceptance Testing
  • Alpha Testing
  • Beta Testing
Gray Box Testing
This type of testing requires knowledge of the internal data structures and algorithms used. Using this knowledge the test cases are designed. However, testing of the software is similar to that of black box testing. Gray box testing comes prominently into use when two different modules written by different developers are being tested. In such a test, only the interfaces of the modules are exposed to the testers. At this stage it is important to note that if the data repository is modified, then the test is classified under gray box testing. This methodology is often also used for reverse engineering, using which boundary value analysis, error messages, etc. are tested.

You will find mention of testing methodologies in the different software testing tutorials. These methodologies will help in ascertaining if all the requirements are satisfied. Different software organization may make use of different methodologies. Likewise, in some organizations software testing can start as soon as work on the software begins, while in others in may start in the later stages.
By
Last Updated: 10/10/2011
Like This Article?
Follow:
Post Comment
Your Comments:
Your Name: