MODELING UNIT TESTING PROCESSES
A System Dynamics Approach
Kumar Saurabh
Satyam Learning Center, Satyam Computer Services Ltd., Hyderabad, India
Keywords: System Dynamics Modeling, Unit Testing, Stocks, Simulation.
Abstract: Software development is a complex activity that often exhibits counter-intuitive behavior, in that outcomes
often vary quite radically from the intended results. The production of a high quality software product
requires application of both defect prevention and defect detection techniques. A common defect detection
strategy is to subject the product to several phases of testing such as unit, integration, and system. These
testing phases consume significant project resources and cycle time. As software companies continue to
search for ways for reducing cycle time and development costs while increasing quality, software-testing
processes emerge as a prime target for investigation. This paper presents a system dynamics (SD) model of
software development, better understanding testing processes. Motivation for modeling testing processes is
presented along with an executable model of the unit test phase. Some sample model runs are described to
illustrate the usefulness of the model.
1 INTRODUCTION
In general, testing is finding out how well something
works. In terms of human beings, testing tells what
level of knowledge or skill has been acquired. In
computer hardware and software development,
testing is used at key checkpoints in the overall
process to determine whether objectives are being
met. For example, in software development, product
objectives are sometimes tested by product user
representatives. When the design is complete,
coding follows and the finished code is then tested at
the unit or module level by each programmer; at the
component level by the group of programmers
involved; and at the system level when all
components are combined together. At early or late
stages, a product or service may also be tested for
usability.
Unit testing is a software development process
in which the smallest testable parts of an application
called units are individually and independently
scrutinized for proper operation. Unit testing is often
automated but it can also be done manually. This
testing mode is a component of Extreme
Programming (XP), a pragmatic method of software
development that takes a meticulous approach to
building a product by means of continual testing and
revision.
Unit testing involves only those characteristics
that are vital to the performance of the unit under
test. This encourages developers to modify the
source code without immediate concerns about how
such changes might affect the functioning of other
units or the program as a whole. Once all of the units
in a program have been found to be working in the
most efficient and error-free manner possible, larger
components of the program can be evaluated by
means of integration testing.
2 SYSTEM DYNAMICS
INTRODUCTION
SD is a methodology whereby complex, dynamics
and nonlinear interactions in social systems can be
understood and analyzed, and new structures and
policies can be designed to improve the system
behavior. Similarly we can say, SD is a complex
scientific and technological activity, for which is
epistemological and methodological analysis could
suggest some new and interesting perspectives both
to practitioners and theorists of SD The System
models to have the most realistic representational
content possible (Coyle, 1996). There is a great
different between purely Correlation or Statistical
models and SD. The SD models also try to offer
183
Saurabh K. (2008).
MODELING UNIT TESTING PROCESSES - A System Dynamics Approach.
In Proceedings of the Tenth International Conference on Enterpr ise Information Systems - ISAS, pages 183-186
DOI: 10.5220/0001669101830186
Copyright
c
SciTePress