JWalk
Encyclopedia
JWalk is a unit testing
Unit test
In computer programming, unit testing is a method by which individual units of source code are tested to determine if they are fit for use.A unit is the smallest testable part of an application. In procedural programming a unit could be an entire module but is more commonly an individual function...

 toolkit for the Java programming language
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

. Created by Anthony Simons, JWalk supports a testing paradigm called Lazy Systematic Unit Testing
Lazy systematic unit testing
Lazy Systematic Unit Testing is a software unit testing method based on the two notions of lazy specification, the ability to infer the evolving specification of a unit on-the-fly by dynamic analysis, and systematic testing, the ability to explore and test the unit's state space exhaustively to...

. This is based on the two notions of lazy specification, the ability to infer the evolving specification of a class on-the-fly by dynamic analysis, and systematic testing, the ability to explore and test the class's state space exhaustively to bounded depths.

Using JWalk

JWalk is used to test single, compiled classes in the Java programming language
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 (so far, the only supported language). It can be directed to explore all method protocols
Protocol (object-oriented programming)
In object-oriented programming, a protocol or interface is a common means for unrelated objects to communicate with each other. These are definitions of methods and values which the objects agree upon in order to cooperate....

 systematically, printing a lengthy test report, or to perform automated testing according to a state-based
Finite state machine
A finite-state machine or finite-state automaton , or simply a state machine, is a mathematical model used to design computer programs and digital logic circuits. It is conceived as an abstract machine that can be in one of a finite number of states...

 model of the class under test. The specification is constructed interactively, as the programmer confirms or rejects test outcomes, and adapts itself quickly to changes in the evolving code. JWalk is therefore well-suited to test-driven development
Test-driven development
Test-driven development is a software development process that relies on the repetition of a very short development cycle: first the developer writes a failing automated test case that defines a desired improvement or new function, then produces code to pass that test and finally refactors the new...

, as used in the Extreme Programming
Extreme Programming
Extreme programming is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements...

 approach to software development.

Comparisons

JWalk is extremely efficient in helping a programmer to generate unit tests that adequately cover the test class's state space. Using JWalk compares favourably against expert manual testing (using JUnit
JUnit
JUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testing frameworks collectively known as xUnit that originated with SUnit....

). This is because the tool explores the test class systematically, suggesting test-cases that a programmer usually forgets, and focuses the programmer's attention on the subset of unique test cases that require manual confirmation.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK