Integration Testing


Is a level of  the software testing process where individual units are combined and tested as a group.

The purpose of this level of testing is to expose faults in the interaction between integrated units.

It occur after unit testing and before validation testing, the purpose of integration testing is to verify functional, performance, and reliability requirement placed on major design items.

Test drivers and test stubs are used to assist in integration Testing.

Note: The definition of a unit a debatable and it could mean any of  the following:

  1. the smallest testable part of a software
  2. a ‘module’ which could consist of many of ‘1’
  3. a ‘component’ which could consist of many of  ‘2’

Integration testing definition, Analogy, Method, Tasks, Details, Approaches, Tips:

The purpose of integration testing is to  detect any inconsistencies between the software units that are integrated together called ‘assemblages’

System testing


System testing is defined as the process of testing an integrated system to verify that it meets specified requirement.

System testing of software or hardware is testing conducted on a complete, integrated system to evaluate the system’s compliance with its specified requirements.

System testing takes as its input , all of the “Integrated”  software components that have been successfully passed integration testing and also the its integrated  with any applicable hardware system(s)

You will come across two very different type  of System testing.

  • Functional system testing
  • Non-Functional system testing
 
Functional system testing  is focuses on testing the system based on what it is supposed to do.
 
Non-Functional system  testing  looks at those aspects that are important yet not directly related
 

System testing falls within the scope of black box testing. and as such should require no knowledge of the inner design of the code or logic.

Acceptance testing


Alpha testing is simulated or actual operational testing by potential users/customers or an independent test team at the developers’  site.

Alpha testing is often employed for off the shelf software as a form of internal acceptance testing before the software goes to ‘Beta testing’

Beta testing comes after alpha testing  and can be considered a form of external  user acceptance testing.

Versions  of the software  know as beta versions are released to al limited  audience outside of the programming team. The software is released to groups of people so that further testing can ensure the product has few faults or bugs.

Sometimes beta versions are made available to the open public to increase the feedback field to a maximal number of future users.

In engineering and its various subdisciplines, acceptance testing is a test conducted to determine if the requirements of a specification or contract are met.

Software developers often distinguish acceptance testing by the system provider from acceptance testing by the customer( user or client) prior  to accepting transfer of ownership.

It is also known as functional testing.