Object Oriented Analysis and Design
Object Oriented Analysis and Design
Contents
Testing Object-Oriented Systems.......................................................................................................2
Unit Testing........................................................................................................................................2
Subsystem Testing...........................................................................................................................2
System Testing..................................................................................................................................2
Object-Oriented Testing Techniques.................................................................................................3
Grey Box Testing..............................................................................................................................3
Techniques for Subsystem Testing................................................................................................3
Categories of System Testing.........................................................................................................3
Software Quality Assurance................................................................................................................4
Software Quality................................................................................................................................4
Quality Assurance.............................................................................................................................4
Quality Factors..................................................................................................................................4
Object-Oriented Metrics.......................................................................................................................5
Project Metrics...................................................................................................................................5
Product Metrics.................................................................................................................................5
Process Metrics.................................................................................................................................5
Reference..........................................................................................................................................5
01
OOAD - Testing & Quality Assurance
Once a program code is written, it must be tested to detect and subsequently handle all errors
in it. A number of schemes are used for testing purposes.
Another important aspect is the fitness of purpose of a program that ascertains whether the
program serves the purpose which it aims for. The fitness defines the software quality.
Unit Testing
In unit testing, the individual classes are tested. It is seen whether the class attributes are
implemented as per design and whether the methods and the interfaces are error-free. Unit
testing is the responsibility of the application engineer who implements the structure.
Subsystem Testing
This involves testing a particular module or a subsystem and is the responsibility of the
subsystem lead. It involves testing the associations within the subsystem as well as the
interaction of the subsystem with the outside. Subsystem tests can be used as regression tests
for each newly released version of the subsystem.
System Testing
System testing involves testing the system as a whole and is the responsibility of the quality-
assurance team. The team often uses system tests as regression tests when assembling new
releases.
02
Object-Oriented Testing Techniques
Grey Box Testing
The different types of test cases that can be designed for testing object-oriented programs are
called grey box test cases. Some of the important types of grey box testing are −
State model based testing − This encompasses state coverage, state transition
coverage, and state transition path coverage.
Use case based testing − Each scenario in each use case is tested.
Class diagram based testing − Each class, derived class, associations, and
aggregations are tested.
Sequence diagram based testing − The methods in the messages in the sequence
diagrams are tested.
Alpha testing − This is carried out by the testing team within the organization that
develops software.
Beta testing − This is carried out by select group of co-operating customers.
Acceptance testing − This is carried out by the customer before accepting the
deliverables.
03
Software Quality Assurance
Software Quality
Schulmeyer and McManus have defined software quality as “the fitness for use of the total
software product”. A good quality software does exactly what it is supposed to do and is
interpreted in terms of satisfaction of the requirement specification laid down by the user.
Quality Assurance
Software quality assurance is a methodology that determines the extent to which a software
product is fit for use. The activities that are included for determining software quality are −
Auditing
Development of standards and guidelines
Production of reports
Review of quality system
Quality Factors
04
Object-Oriented Metrics
Metrics can be broadly classified into three categories: project metrics, product metrics, and
process metrics.
Project Metrics
Project Metrics enable a software project manager to assess the status and performance of an
ongoing project. The following metrics are appropriate for object-oriented software projects −
Product Metrics
Product metrics measure the characteristics of the software product that has been developed.
The product metrics suitable for object-oriented systems are −
Methods per Class − It determines the complexity of a class. If all the methods of a
class are assumed to be equally complex, then a class with more methods is more
complex and thus more susceptible to errors.
Inheritance Structure − Systems with several small inheritance lattices are more well–
structured than systems with a single large inheritance lattice. As a thumb rule, an
inheritance tree should not have more than 7 (± 2) number of levels and the tree should
be balanced.
Coupling and Cohesion − Modules having low coupling and high cohesion are
considered to be better designed, as they permit greater reusability and maintainability.
Response for a Class − It measures the efficiency of the methods that are called by
the instances of the class.
Process Metrics
Process metrics help in measuring how a process is performing. They are collected over all
projects over long periods of time. They are used as indicators for long-term software process
improvements. Some process metrics are −
Reference
05