word
|
definition
|
Ant
|
A utility for managing Java builds, probably
the most widely used in the world. See
ant.apache.org
.
|
bcel
|
The
Byte Code Engineering Library
is an
Apache
project,
software for manipulating Java at the bytecode level. Bcel
is used extensively in Quilt.
|
bytecode
|
The 'machine language' interpreted by
the
JVM.
|
coverage
|
A measure of the extent to which test
programs exercise the software under test, usually
expressed as a percentage (this being, for example, the
number of lines of code that were executed during the test
vs the total number of lines of code).
|
Extreme Programming
|
Or
XP
. A lightweight
programming methodology. For more information see, for
example, Ron Jeffries'
XProgramming.com
Web site.
|
hit count
|
The number of times a unit of code
has been executed.
|
instrumentation
|
Bytecode,
variables,
and methods inserted into
a Java class to collect information on or modify
program behavior.
Coverage
is usually measured by
instrumenting methods with bytecode that collects hit
counts.
|
integration test
|
A test that software modules
work together as expected.
JUnit
was designed
specifically for unit testing, but can be used in integration
testing, as can Quilt.
|
JUnit
|
A unit testing program for Java, probably
the most widely used. See
www.junit.org
.
|
JVM
|
The Java Virtual Machine, a program which
executes
bytecode
. The JVM is a simple stack machine
with a limited instruction set.
|
Maven
|
A Java project management tool integrating
many other open-source Java tools.
Maven
can be used to
manage builds, automatically generating and running Ant
build.xml
files, but is most commonly used
for generating project Web sites.
|
mock objects
|
An object that has the same
interface as a production class, but whose functionality
is limited to (a) verifying that parameters supplied are correct
and (b) faking the normal responses of the object being
mocked to the degree necessary to allow it to be
substituted for it. In a JUnit testing environment, a
mock object will throw an exception when input verification
fails.
There is a surprising degree of
disagreement about the exact definition of this term.
For one set of opinions see
www.mockobjects.com
|
q$$q
|
One of a number of Quilt-reserved names.
public static int[]
q$$q
is the
hit count array generated by Quilt-instrumented classes
as run time.
public static int q$$qID
is a run-unique ID
assigned to a Quilt-instrumented class.
public static int q$$qVer
is the Quilt
file format, currently 0, construed as 0.0 (16-bit major
value, 16-bit minor value).
|
regression test
|
A test or set of tests that
verifies that software still behaves correctly after being
changed. Normally, the suite of unit tests and integration
tests developed with the software are accumulated and used for
regression testing in code maintainance or further software
development.
|
spy
|
A class or method that mimics an object
under test, but whose only function is to report on values
observed. So a spy is a somewhat elaborated
stub
or degenerate
mock object.
|
stub
|
A class or method that has the same interface as
the class/method under test, but in effect no functionality
at all. A class consisting of empty methods, or a method
that does nothing if void or otherwise just returns a fixed
value. A stub might be considered a degenerate
mock object.
|
test-driven development
|
An incremental approach to
software development in which writing tests precedes
writing the software being tested. See
this article
for a brief introduction.
|
transformation
|
In most discussions involving
Quilt, this is a
sense-preserving transformation,
a change to Java-related software which has no effect on
its normal functionality. Usually the change involves adding
instrumentation
to the software which allows
side effects (measurements such as
hit counts
)
to be collected at runtime.
|
unit test
|
A test of software at the lowest
level of modularity; a test of an individual class or method
as opposed to a test of a system consisting of many
interacting classes. Software development methodologies
such as
Extreme Programming (XP)
and
Test-Driven
Development
emphasize
the development of software and unit tests as one process,
or go even further, encouraging programmers to write tests
before writing the software.
|
VM
|
See
JVM.
|
XP
|
See
Extreme Programming.
|