15-01-2014, 03:06 PM
Effectiveness and Efficiency of Unit Testing for Object Oriented Programs
Effectiveness and Efficiency.doc (Size: 196 KB / Downloads: 13)
ABSTRACT
Testing is the most important method used to validate a software product. Unit testing is an efficient method of detecting and isolating defects in individual units of code. In this thesis we explore some issues relating to the unit testing of object-oriented systems, using the experimental approach for validation specifically we Proposes a framework for assessing the effectiveness and the efficiency of unit testing and applies it to evaluate different coverage criteria.
INTRODUCTION
Testing is the most important method used to validate a software product. In general, many different levels of testing are applied in a software project. Unit testing is normally the first formal test activity performed in the software life cycle and it occurs during the implementation phase after a program unit is coded. Unit testing is an efficient method of detecting and isolating defects in individual units of code.. In object-oriented software, a class or a small collection of classes is generally chosen to represent a unit for unit testing purposes. Object-oriented systems introduce new issues to unit testing when compared to procedural systems.
EFFECTIVE TESTING TECHNIQUES
Testing is the most important method used to validate a software product. The word program ‘testing’ may be defined differently in different circumstances, but most commonly it refers to the process of exercising a program with the intent of observing errors[1,2]. A key purpose of testing is to increase the confidence in the code being developed. Software development is a complex process and its various development activities are carried out by a team of developers having different roles and responsibilities; inevitably the process is inherently error prone. In order to maximize defect detection, testing at different levels are applied in a software project.
UNIT TESTING
Unit testing consists of the dynamic verification of the behavior of a program unit on a finite set of test cases, suitably. selected from the usually infinite executions domain, against the specified expected behavior [9]. Systematic unit testing assumes a model of the program unit under test, and tests are generated to cover certain aspects of that model.
CONCLUSION
Improving the effectiveness and the efficiency of unit testing in industry requires the evidence to drive the change[16] This work investigates critical issues relating to unit testing and collates evidence to accept or refute various propositions by performing sophisticated measurements of effectiveness and The first contribution this work makes is to propose a tool- supported controlled experimentation frameworkthat facilitates comparison between different coverage criteria. The framework allows the reliable measurement of testing effect effectiveness and (the relatively under-researched variable) efficiency. We demonstrate that the proposed approach has practical application by describing the results of an experiment comparing three code-based testing criteria, namely, block coverage, branch coverage, and predicate coverage efficiency.