Subscribe by Email


Thursday, July 19, 2012

What is UML and how to use it for software testing?


Unified modelling language or UML is considered to be the software engineering world’s only standardized general purpose modelling language when it comes to the field of object oriented software engineering. 
This standard was created by the OMG (the object management group) and later on managed by the same organization only. It was wholly adopted by the OMG organization in the year of 1997 and since then had become one of the best standards for the modelling of the software intensive systems. 
The visual models of the object oriented software intensive systems are created using the unified modelling language through a set of pre defined graphic notation techniques. Unified modelling language:
  1. Specifies,
  2. Visualizes,
  3. Modifies,
  4. Constructs, and
  5. Documents the artifacts of the object oriented software intensive systems that are under the question. 
In a way, we can say that a software system’s or application’s below mentioned elements can be visualized in a standard way using the unified modelling language:
  1. Activities
  2. Architecture blue prints
  3. Data base schemas
  4. Logical components
  5. Business processes
  6. Reusable software system components
  7. Statements of the programming language and so on.
Some techniques from the following other modelling standards are incorporated in to the unified modelling language:
  1. Entry relationship diagrams from data modelling
  2. Work flows from business modelling
  3. Object modelling and
  4. Component modelling
The best thing about the unified modelling language is that it always works no matter what the platform or the process is being followed throughout the SDLC or software development life cycle. The software engineering world has come to witness the synthesization of the notations obtained from the following techniques or methodologies:
  1. The booch method
  2. OOSE or object oriented software engineering and
  3. OMT or object modelling technique etc.
The notations are synthesized by carrying out a fusion process among them in order to produce a common, single and widely usable modelling language and so we have UML today.  
Software testing does not just consists of one phase only rather there are so many like:
  1. Unit testing
  2. Function testing
  3. Regression testing
  4. System testing
  5. Solution testing and the list goes on. 
A different class of UML diagrams are used for each and every kind of testing:

  1. Unit testing:  The type of uml diagram that is used is the class and state diagrams. For unit testing the code coverage criteria is used and the fault model is used for checking the following:
a)   correctness, invariants,
b)   pre/ post conditions.

  1. Functional testing: The type of uml diagram that is used is the interaction and class diagrams. For functional testing the functional coverage criteria is used and the fault model is used for checking the following:
a)   Functional behavior
b)   API behavior
c)   Integration issues etc.

  1. System testing: for system testing the operational scenarios coverage criteria and the fault model is used for checking the following:
a)   Work load
b)   Contention
c)   Synchronity
d)   Recovery etc.
       Here many types of uml diagrams are used like:
a)   Use cases
b)   Activity diagrams and
c)   Interaction diagrams

  1. Regression testing: For regression testing the functional coverage criteria is used and the fault model is used to check the following:
a)   Unexpected behavior from new or changed functions.
      Two kinds of uml diagrams are used here namely:
    a)   Interaction diagrams and
    b)   Class diagrams
 We can say that the need of uml diagrams here is same as of the functional testing.

  1. Solution testing: For solution testing, inter communication coverage criteria is used and the fault model helps in detecting the inter operating problems. The uml diagrams used are:
a)   Use case diagrams and
b)   Deployment diagrams. 


No comments:

Facebook activity