For more Extreme Programming acronyms, see the Xp Glossary. A few of the explanations there are fanciful, though.
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 JXCL. |
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. |
fixture | In the unit testing world, a set of
objects that unit tests are run against. In JUnit testing,
the objects are usually initialized in setUp()
and then tested by assertions in test*()
methods. |
Glass | JXCL's bytecode library, currently in development. Similar in intent to BCEL but we hope easier to use. |
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 JXCL. Unit tests focus on testing one class at a time; integration tests test interacting groups of classes. |
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. |
JXCL | The Java Transforming Class Loader, a tool for manipulating Java classes at the bytecode level. |
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 |
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, or take a look at the
TDD FAQ
on testdriven.com.
|
transformation | In most discussions involving JXCL, 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. |
z$$z | One of a number of JXCL-reserved names.public static int[] z$$z is the
hit count array generated by JXCL-instrumented classes
as run time.public static int z$$zID is a run-unique ID
assigned to a JXCL-instrumented class.public static int z$$zVer is the JXCL class
file format, currently 0, construed as 0.0 (16-bit major
value, 16-bit minor value).
|