Skip to main content

SOFTWARE INTEGRATION TESTING

Software integration testing is defined as a type of testing where software modules are integrated logically and tested as a group. A typical software project consists of multiple software modules, coded by different programmers. The purpose of this level of testing is to expose defects in the interaction between these software modules when they are integrated.

Why do Integration Testing?

·        Although each software module is unit tested, defects still exist for various reasons like;

·        A Module is designed by an individual software developer whose understanding and programming logic may differ from other programmers. Integration Testing becomes necessary to verify the software modules work in unity

·        At the time of module development, there are wide chances of change in requirements by the clients. These new requirements may not be unit tested and hence system integration Testing becomes necessary.

·        Interfaces of the software modules with the database could be erroneous.

·        External Hardware interfaces, if any, could be erroneous.

·        Inadequate exception handling could cause issues.

Approaches, Strategies, Methodologies of Integration Testing

1.      Big Bang Approach

Big Bang Testing is an Integration testing approach in which all the components or modules are integrated together at once and then tested as a unit. This combined set of components is considered as an entity while testing. If all of the components in the unit are not completed, the integration process will not execute.

Advantages

·        Convenient for small systems.

Disadvantages

·        Fault Localization is difficult.

·        Given the sheer number of interfaces that need to be tested in this approach, some interfaces link to be tested could be missed easily.

·        Since the Integration testing can commence only after all the modules are designed, the testing team will have less time for execution in the testing phase.

·        Since all modules are tested at once, high-risk critical modules are not isolated and tested on priority. Peripheral modules which deal with user interfaces are also not isolated and tested on priority.

 

2.      Incremental Testing

In the Incremental Testing approach, testing is done by integrating two or more modules that are logically related to each other and then tested for proper functioning of the application. Then the other related modules are integrated incrementally and the process continues until all the logically related modules are integrated and tested successfully.

Incremental Approach is carried out by two different Methods:

·        Bottom Up

·        Top Down

·        Sandwich Approach - Combination of Top Down and Bottom Up

Bottom-up Integration Testing

Bottom-up Integration Testing is a strategy in which the lower-level modules are tested first. These tested modules are then further used to facilitate the testing of higher-level modules. The process continues until all modules at top level are tested. Once the lower-level modules are tested and integrated, then the next level of modules are formed.

Advantages:

·        Fault localization is easier.

·        No time is wasted waiting for all modules to be developed unlike Big-bang approach

Disadvantages:

·        Critical modules (at the top level of software architecture) which control the flow of application are tested last and may be prone to defects.

·        An early prototype is not possible.

Top-down Integration Testing

Top-Down Integration Testing is a method in which integration testing takes place from top to bottom following the control flow of software system. The higher-level modules are tested first and then lower-level modules are tested and integrated in order to check the software functionality. Stubs are used for testing if some modules are not ready.

Advantages:

·        Fault Localization is easier.

·        Possibility to obtain an early prototype.

·        Critical Modules are tested on priority; major design flaws could be found and fixed first.

Disadvantages:

·        Needs many Stubs.

·        Modules at a lower level are tested inadequately.

Sandwich Testing

Sandwich Testing is a strategy in which top level modules are tested with lower-level modules at the same time lower modules are integrated with top modules and tested as a system. It is a combination of Top-down and Bottom-up approaches therefore it is called Hybrid Integration Testing. It makes use of both stubs as well as drivers.

Stubs and Drivers

Stubs and Drivers are the dummy programs in Integration testing used to facilitate the software testing activity. These programs act as a substitute for the missing models in the testing. They do not implement the entire programming logic of the software module but they simulate data communication with the calling module while testing.

·        Stub: Is called by the Module under Test.

·        Driver: Calls the Module to be tested.

How to do Integration Testing?

The Integration test procedure irrespective of the Software testing strategies (discussed above):

1.      Prepare the Integration Tests Plan

2.      Design the Test Scenarios, Cases, and Scripts.

3.      Executing the test Cases followed by reporting the defects.

4.      Tracking & re-testing the defects.

5.      Steps 3 and 4 are repeated until the completion of Integration is successful.

Comments

Popular posts from this blog

United Nations Conference on Trade and Development

United Nations Conference on Trade and Development The  United Nations Conference on Trade and Development  ( UNCTAD ) was established in 1964 as a permanent intergovernmental body. UNCTAD is the part of the  United Nations Secretariat  dealing with trade, investment, and development issues. The organization's goals are to: "maximize the  trade ,  investment  and development opportunities of  developing countries  and assist them in their efforts to integrate into the world economy on an equitable basis". UNCTAD was established by the  United Nations General Assembly  in 1964 and it reports to the UN General Assembly and  United Nations Economic and Social Council . [1] The primary objective of UNCTAD is to formulate policies relating to all aspects of development including trade, aid, transport, finance and technology. The conference ordinarily meets once in four years; the permanent secretariat is in Geneva.

Digital Forensics and Encryption

Digital Forensics and Encryption The use of encryption technology to protect computer data is growing—and that fact presents a challenge for forensic investigators. Without a decryption key, forensic tools cannot be used to find digital evidence. Even with the key, searching encrypted data can be tricky and time consuming. Below are some answers to common questions about trends in the use of encryption and what investigators can do to get as much evidence as possible from an encrypted file or drive.

Cryptography - Wikipedia

Cryptography Cryptography  or  cryptology  (from  Ancient Greek :  κρυπτός ,  romanized :  kryptós  "hidden, secret"; and  γράφειν   graphein , "to write", or  -λογία   -logia , "study", respectively [1] ) is the practice and study of techniques for  secure communication  in the presence of third parties called  adversaries . [2]  More generally, cryptography is about constructing and analyzing  protocols  that prevent third parties or the public from reading private messages; [3]  various aspects in  information security  such as data  confidentiality ,  data integrity ,  authentication , and  non-repudiation [4]  are central to modern cryptography. Modern cryptography exists at the intersection of the disciplines of  mathematics ,  computer science ,  electrical engineering ,  communication science , and  physics . Applications...