You are on page 1of 3

Before software is released to market it undergoes rigorous testing.

Software testing is basically the process of executing the software or an application to find out if any
there are any bugs or some sort of errors in it. Before software actually goes public, programmers
spend hours to iron out every little part.

They check for any mistakes and problems in the design and the functionality of an application or
software until then product won’t be available for commercial use in the market.

There are mainly 4 stages of testing that need to be completed before the program or an application
can be cleared for use:

 Unit Testing
 Integration Testing
 System Testing
 Acceptance Testing

1. Unit testing is the first and also the micro level of testing. It involves testing individual modules or
units to make sure they are working properly. It helps in verifying internal design, internal logic,
internal parts and also error handling.

The main goal of Unit Testing is to segregate. It isolates the smallest piece of the testable software
from the remainder the code and determines if or not it behaves exactly as we expect.

2. Integration Testing is done after Unit testing. This level tests on how the units work together.
Individual modules are combined and tested as a group. It helps us determine how the modules
work together when combined on their own and ensures our application runs efficiently.

Integration testing is done to test the modules of components when integrated to verify that the
work as we expected got this to test the modules which are walking fine individually does not have
any issues when integrated.

Integrate or combine the unit test in module 1 by 1 and then test the behaviour as a combined
unit. That’s what integration tests means.

Advantages of Integration Testing are:

I. Ensures modules work together properly.


II. Helps to uncover errors that lie in Interfaces.
III. Ensures that newly added components are not affected.

3. System Testing as the name implies all the components of the software are tested as a whole in
order to ensure that overall product meets the requirements which are specified. It is particularly
important because it verifies the technical functional and business requirements of a software or an
application.

4. Acceptance Testing or UAT (User Acceptance Testing) determines whether or not the software
product is ready to be released to market. It is the final level of testing to say whether the
application is ready for use in real life or not.
Integration Testing does not have perform at the end of the cycle rather it’s connected
simultaneously with the development. So, most of the time all the modules are not available for
tests. To perform the Testing that does not exist, we have concepts called STUBS and DRIVERS.

Example-

Component 1- Login Page (Module A)

Component 2- Admin Page (Module B)

This Login Page is dependent on Admin Page.

To test the login page by the test team, there would be a problem because the admin page is not yet
developed. So, creating a dummy page which will have same functionalities of the original one, but
not the core functionalities. We have to link the login page with dummy admin page to check the
functionality of the login page. This dummy admin page is called Stub.

Drivers is reverse of Stubs

Like the previous, we have to create a dummy login page which will be linked to admin page and also
dependent on it. This dummy login page is called a Driver

Different approaches to Integration Testing

 Top-Down Approach – starts with testing the topmost modules and gradually moving down
to lowest set of modules.
Follows with Control flow or architecture.
If High level Modules not developed yet, Stubs is used (acts as dummy missing module).
Advantages - 1. Extremely Consistent 2. Less Time Required 3. Fault Localization is easier
4. Detects major flaws
Disadvantages – 1. Requires several Stubs 2. Poor Support for early release 3. Basic
Functionality is tested late.

 Bottom-Up Approach – Opposite of TDA


Drivers would be responsible for invoking the module undertest, passing the test data or
receiving the output data.
Created by tester as a program or Testing harness.
Advantages – Efficient App, less time required, test conditions easier to create.
Disadvantages – Requires several drivers, data flow is tested late, poor support for early
release, key interface defects are tested late.
 Big Bang Approach – Entire set of modules and components testing simultaneously.
No need for Stubs or Drivers.
Advantages -all components tested at once, convenient for small systems, saves testing
time.
Disadvantages – lot of delay for start, cause of failure if any difficult to find, possibility of few
missing interface links, critical modules are not required.

 Sandwich Integration Approach (Hybrid Integration Testing Approach)- Mixture of TDA and
BUA.
System is viewed as 3 Layers.
Main target layer in the middle, another layer above the target layer (TDA), and the layer
below the target layer (BUA).
Advantages – Both layers can be tested in parallel.
disadvantages - High cost, low skill set, extensive testing is not done.

How to do Integration Testing


1. Choose the module to be tested
2. Decide the type of Integration testing and see that is Unit Tested already
3. Deploy the selected modules and start testing
4. Perform functional And Structural Testing
5. Record, Analyse and report results
6. Repeat above steps until complete system is fully tested
Deploy for next level testing

Challenges of Integration Testing

Difficult Test Data Management

Multiple ways for testing

Issues when integrated with legacy system

Challenging test cases

Time Constraints

Steps to kick off integration testing are:

1.Focus on architecture of app

2.Identify each module

3.Check how the data is communicated.

4.Undersand the user requirements

5.Create multiple test conditions

6.Focus on one test condition at a time.

Difference manual and automation testing.

Black box testing

You might also like