Software Testing Part-3-Levels of Software Testing & Testing Methodologies

Gvnswetha
4 min readDec 2, 2019

--

In this article lets understand in details about different levels of Software testing and Testing methodologies.

Levels of Software testing:

In SDLC models there are characterized phases such as requirement gathering, analysis, design, coding or execution, testing, and deployment.

All these phases go through the process of software testing levels. There are mainly four testing levels are:

  1. Unit Testing
  2. Integration Testing
  3. System Testing
  4. Acceptance Testing

1.Unit Testing:Unit Testing is done to check whether the individual modules of the source code are working properly. i.e. testing each and every unit of the application separately by the developer in the developer’s environment.

2.Integration Testing:This is a process of testing the connectivity or data transfer between a couple of unit tested modules.
*In this testing individual software modules are integrated logically and tested as a group.

There are 2 approaches for this model as explained below:

2a)Top down Approach :The top-down way of solving a program is step-by-step process of breaking down the problem into chunks for organizing and solving the sole problem.
Below is the top down approach explained:

In this approach the top modules and the bottom modules are implemented and if the middle module that is module 2 is not ready but if we want to test all the modules, we will write a temporary program called as STUB .

*This temporary program/STUB will act as a module and help in performing integration testing.

Stub: Is called by the module under test.
If any sub module is not yet developed, in that place we use a temporary program to assist the integration testing that is called stub.

2b)Bottom Up Approach:In this strategy each module at lower levels is tested with higher modules until all modules are tested.It takes help of DRIVERS for testing.
*This works exactly opposite of how the top-down approach works. In this approach we start working from the most basic level of problem solving and moving up in conjugation of several parts of the solution to achieve required results.

*The most fundamental units, modules and sub-modules are designed and solved individually, these units are then integrated together.

Driver: This calls the module to be tested.
*If any main module is not yet developed in that place we use a temporary program to assist the integration testing that is called driver.

2c)Sandwich Approach: Combination of top down and bottom up approach is called sandwich approach.

3.System Testing(End to End Testing)
This is a black box testing. In this testing we test the fully integrated application and this is also called as an end to end scenario testing.

*To ensure that the software works in all intended target systems and to Verify thorough testing of every input in the application to check for desired outputs.

System Testing focuses on below aspects.

  1. Graphical User Interface
  2. Functional Testing
  3. Non Functional Testing
  4. Usability Testing etc.,

We will discuss more about these Testing’s in the next article.

4.User Acceptance Testing (UAT):Customers perform this testing by using the software in their environment to check if that is working as per their requirement.
*During UAT, users test the software to make sure it can handle required tasks in real-world scenarios, according to specifications.
*This is one of the final and most critical software project procedures that must occur before newly developed software is rolled out to the market.
*This is also known as beta testing, application testing or end user testing.

This is conducted in 2 levels:

Alpha Testing: The testing is done using the dummy data in the user environment.
Beta Testing: The testing is done using the real time data in the user environment.

Apart from these software testing techniques we have few more software testing techniques in the next article.

Testing Methodologies:

Testing methodologies are approaches for testing.

Here are some common methodologies:

a)White Box testing: Unit and integration testing comes under the white box testing techniques.

*The White box testing is a type of testing in which only internal structures or workings of an application is tested and it is usually performed by the developers.
*White box tests are mainly used to detect logical errors in the program code. *These tests focus on individual code units for e.g. classes. modules or subsystems.
b)Black Box testing: System testing and UAT comes under black box testing.
*Black box testing is a type of testing in which the tester only focus on the inputs and the expected outputs, without knowing how the application works internally and how these inputs are processed.
c)Grey Box Testing: This is the combination of black box and white box testing.

That is all about part 3.In the next article we will understand more about System Testing.

--

--