Subject Name and code : STE (22518
(22518) Academic Year : 2024-25
Course Name : CO5I Semester : Fifth
A STUDY ON :- INTEGRATION TESTING
MICRO PROJECT REPORT
Sr. no. Roll no. Name of student Enrollment Seat no.
(sem – 5) No. (sem – 5)
1 54 Apurva Dhananjay 2209350180 137225
Chaudhari
Under the guidance of
Ms. Madhuri Ghawat
Third year of Diploma program in Engineering and Technology of
Maharashtra State board of Technical education, Mumbai.
AT
SHIVAJIRAO S. JONDHALE POLYTECHNIC ASANGAON
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
This is Certify that Ms. Apurva Dhananjay Chaudhari, roll no. 54 in Fifth
semester of Computer Diploma program in Engineering and Technology at
0935- Shivajirao S. Jondhle Polytechnic has completed the Micro Project in
subject STE(22518) in the academic year 2024-25 as per the MSBTE
prescribedcurriculum of ‘I’ Scheme.
Place : Asangaon Enrollment No: 2209350180
Date : / / 2024 Exam seat no: 137225
Subject Teacher Head of Department Principal
Seal of institute
INDEX
CH NO. CHAPTER NAME PAGE NO.
1 Introduction 4
2 Importance 5
3 Types 6
4 Applications 11
5 Challenges 12
6 Entry and Exit Criteria 13
7 Conclusion 14
8 References 15
TITLE:
TITLE:- INTEGRATION TESTING
INTRODUCTION
Integration testing is a software testing technique that focuses
on verifying the interactions and data exchange between
different components or modules of a software application. The
goal of integration testing is to identify any problems or bugs that
arise when different components are combined and interact with
each other. Integration testing is typically performed after unit
testing and before system testing. It helps to identify and resolve
integration issues early in the development cycle, reducing the
risk of more severe and costly problems later on.
IMPORTANCE
Integration testing is important because it verifies that individual
software modules or components work together correctly as a
whole system. This ensures that the integrated software functions
as intended and helps identify any compatibility or communication
issues between different parts of the system. By detecting and
resolving integration problems early, integration testing
contributes to the overall reliability, performance, and quality of
the software product.
Furthermore, integration testing facilitates early detection of bugs,
which can significantly reduce the complexity and cost of fixing
issues later in the development cycle. Integration testing also
supports incremental development approaches, such as Agile, by
enabling continuous integration and delivery. This allows for
ongoing validation of the system as new modules are developed and
integrated. In addition, integration tests can serve as valuable
documentation, illustrating how different modules interact and
providing insights that can be useful for both current and future
developers.
Overall, integration testing plays a critical role in ensuring the
cohesiveness, efficiency, and dependability of the software system,
ultimately leading to a higher quality product.
TYPES
1. Big-Bang Integration Testing
It is the simplest integration testing approach, where all the
modules are combined and the functionality is verified after the
completion of individual module testing.
This approach is practicable only for very small systems. If an
error is found during the integration testing, it is very difficult to
localize the error as the error may potentially belong to any of
the modules being integrated.
So, debugging errors reported during Big Bang integration
testing is very expensive to fix.
Big-bang integration testing is a software testing approach in
which all components or modules of a software application are
combined and tested at once.
Advantages of Big-Bang
Bang Integration Testing
It is convenient for small systems.
Simple and straightforward approach.
Disadvantages of Big-Bang
Bang Integration Testing
There will be quite a lot of delay because you would have to wait
for all the modules to be integrated.
High-risk critical modules are not isolated and tested on priority
since all modules are tested at once.
2. Bottom-Up Integration Testing
In bottom-up testing, each module at lower levels are tested with
higher modules until all modules are tested. The primary purpose
of this integration testing is that each subsystem tests the
interfaces among various modules making up the subsystem. This
integration testing uses test drivers to drive and pass appropriate
data to the lower-level modules.
Advantages of Bottom--Up Integration Testing
In bottom-up testing, no stubs are required.
A principal advantage of this integration testing is that several
disjoint subsystems can be tested simultaneously.
Disadvantages of Bottom
Bottom-Up Integration Testing
Driver modules must be produced.
In this testing, the complexity that occurs when the system is
made up of a large number of small subsystems.
3. Top-Down Integration Testing
Top-down integration testing technique is used in order to simulate
the behaviour of the lower
lower-level modules that are not yet
integrated. In this integration testing, testing takes place from top
to bottom. First, high-level
level modules are tested and then low-level
modules and finally integrating the low-level modules to a high
level to ensure the system is working as intended.
Advantages of Top-Down
Down Integration Testing
Separately debugged module.
Few or no drivers needed.
Disadvantages of Top-Down
Down Integration Testing
Needs many Stubs.
Modules at lower level are tested inadequately.
4. Mixed Integration Testing
A mixed integration testing is also called sandwiched integration
testing. A mixed integration testing follows a combination of top
down and bottom-up testing approaches. In top-downdown approach,
testing can start only after the top-level module have been coded
and unit tested. In bottom
bottom-up approach, testing can start only after
the bottom level modules are ready.
Advantages of Mixed Integration Testing
Mixed approach is useful for very large projects having several
sub projects.
This Sandwich approach overcomes this shortcoming of the top-
down and bottom-upup approaches.
Disadvantages of Mixed Integration Testing
For mixed integration testing, it requires very high cost because
one part has a Top-down
down approach while another part has a
bottom-up approach.
This integration testing cannot be used for smaller systems with
huge interdependence between different modules.
APPLICATIONS
1. Identify the components: Identify the individual components of
your application that need to be integrated. This could include
the frontend, backend, database, and any third-party services.
2. Create a test plan: Develop a test plan that outlines the
scenarios and test cases that need to be executed to validate the
integration points between the different components.
3. Set up test environment: Set up a test environment that mirrors
the production environment as closely as possible. This will help
ensure that the results of your integration tests are accurate and
reliable.
4. Execute the tests: Execute the tests outlined in your test plan,
starting with the most critical and complex scenarios. Be sure to
log any defects or issues that you encounter during testing.
5. Analyze the results: Analyze the results of your integration tests
to identify any defects or issues that need to be addressed. This
may involve working with developers to fix bugs or make
changes to the application architecture.
6. Repeat testing: Once defects have been fixed, repeat the
integration testing process to ensure that the changes have been
successful and that the application still works as expected.
CHALLENGES
While this testing has numerous advantages, it may also be difficult
and time-consuming. These are a few common stumbling blocks be
aware of:
Complexity: The test examines how various system parts work
together, which may be challenging and time-consuming.
Dependencies: Components in a system may depend on other
components or external systems, making it difficult to pinpoint and
test problems if you manually incorporate them while writing tests.
Maintenance: As the testing requirements evolve, integrating
testing with new components might become difficult.
Cost: Because of manual testing, developing and performing tests
can be expensive.
ENTRY AND EXIT CRITERIA
Entry Criteria
All individual units/software modules must have undergone
successful unit testing.
All high-priority issues must be fixed.
The modules should be completed and integrated successfully into
a single codebase.
The test plan should be prepared and reviewed, including test
cases and scripts.
The test environment, including hardware, software, and network
configurations, should be set up and ready for testing.
Exit Criteria
All the integration test cases must be executed.
The test documentation should be updated, including test results
and any changes made during testing.
Any bugs identified during this testing should be logged, tracked,
and resolved.
An exit report summarizing the results of the testing phase should
be prepared and shared with relevant stakeholders.
CONCLUSION
Integration testing is a critical phase in software development that
ensures all components work together seamlessly. Various
approaches like Big-Bang, Bottom-Up, Top-Down, and Mixed
Integration Testing help validate the integration points and
interactions between modules.
Each approach has its advantages and disadvantages, catering to
different project needs. Proper integration testing helps identify
defects early, ensuring the reliability, performance, and quality of
the software product. By employing various approaches such as
incremental integration and continuous integration, teams can
systematically address potential issues and improve software
reliability.
The use of stubs, drivers, and mocking helps simulate real-world
interactions, making integration testing a robust process for
validating system components.
REFERENCE
1. [Link]
2. [Link]
3. [Link]
4. [Link]
5. [Link]