Active TopicsActive Topics  Display List of Forum MembersMemberlist  CalendarCalendar  Search The ForumSearch  HelpHelp
  RegisterRegister  LoginLogin


 One Stop Testing ForumTypes Of Software Testing @ OneStopTestingIntegration Testing @ OneStopTesting

Message Icon Topic: What are unit, component and integration testing?

Post Reply Post New Topic
Author Message
rose
Moderator Group
Moderator Group
Avatar

Joined: 31Jan2007
Online Status: Offline
Posts: 21
Quote rose Replybullet Topic: What are unit, component and integration testing?
    Posted: 08Feb2007 at 4:54pm

What are unit, component and integration testing?

The definitions of unit, component, integration, and integration testing are recursive:
Unit.  The smallest compilable component.  A unit typically is the work of one programmer 
(At least in principle).  As defined, it does not include any called sub-components 
(for procedural languages) or communicating components in general.
Unit Testing:  in unit testing called components (or communicating components) 
are replaced with stubs, simulators, or trusted components.  
Calling components are replaced with drivers or trusted super-components. 
The unit is tested in isolation.
component:  a unit is a component.  
The integration of one or more components is a component.
Note:  The reason for "one or more" as contrasted to "Two or more" is 
to allow for components that call themselves recursively.
component testing: the same as unit testing except that all stubs 
and simulators are replaced with the real thing.
Two components (actually one or more) are said to be integrated when:
  a.  They have been compiled, linked, and loaded together.
   b.  They have successfully passed the integration tests at the interface between them.
Thus, components A and B are integrated to create a new, larger, component (A,B).  
Note that this does not conflict with the idea of incremental integration 
-- it just means that A is a big component and B, the component added, is a small one.
Integration testing: carrying out integration tests.
Integration tests for procedural languages. 
This is easily generalized for OO languages by using the equivalent constructs for message passing.  
In the following, the word "call" is to be understood in the most general sense of a data flow 
and is not restricted to just formal subroutine calls and returns – 
for example, passage of data through global data structures and/or the use of pointers.
Let A and B be two components in which A calls B.
Let Ta be the component level tests of A
Let Tb be the component level tests of B
Tab  The tests in A's suite that cause A to call B.
Tbsa  The tests in B's suite for which it is possible to sensitize A -- the inputs are to A, not B.
Tbsa + Tab == the integration test suite (+ = union).
Note:  Sensitize is a technical term.  
It means inputs that will cause a routine to go down a specified path.  
The inputs are to A.  Not every input to A will cause A to traverse a path in which B is called.  
Tbsa is the set of tests which do cause A to follow a path in which B is called.  
The outcome of the test of B may or may not be affected.
There have been variations on these definitions, 
but the key point is that it is pretty darn formal and there's a goodly hunk of testing theory, 
especially as concerns integration testing, OO testing, and regression testing, based on them.
As to the difference between integration testing and system testing. 
System testing specifically goes after behaviors and bugs that are properties of the entire system 
as distinct from properties attributable to components 
(unless, of course, the component in question is the entire system).  
Examples of system testing issues:
resource loss bugs, throughput bugs, performance, security, recovery, 
transaction synchronization bugs(often misnamed "timing bugs").
 
   rgds
   rose


Edited by rose - 08Feb2007 at 5:14pm



Post Resume: Click here to Upload your Resume & Apply for Jobs

IP IP Logged
Post Reply Post New Topic
Printable version Printable version

Forum Jump
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot delete your posts in this forum
You cannot edit your posts in this forum
You cannot create polls in this forum
You cannot vote in polls in this forum



This page was generated in 0.250 seconds.
Vyom is an ISO 9001:2000 Certified Organization

© Vyom Technosoft Pvt. Ltd. All Rights Reserved.

Privacy Policy | Terms and Conditions
Job Interview Questions | Placement Papers | Free SMS | Freshers Jobs | MBA Forum | Learn SAP | Web Hosting