JWalk
   HOME

TheInfoList



OR:

JWalk is a
unit test In computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures&mda ...
ing toolkit for the
Java programming language Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers ''write once, run anywh ...
.''The JWalk Home Page'', http://staffwww.dcs.shef.ac.uk/people/A.Simons/jwalk/ Created by Anthony Simons, JWalk supports a testing paradigm called
Lazy Systematic Unit Testing Lazy Systematic Unit TestingA J H Simons, JWalk: Lazy systematic unit testing of Java classes by design introspection and user interaction, ''Automated Software Engineering, 14 (4), December'', ed. B. Nuseibeh, (Boston: Springer, 2007), 369-418. is ...
.A J H Simons, JWalk: Lazy systematic unit testing of Java classes by design introspection and user interaction, ''Automated Software Engineering, 14 (4), December'', ed. B. Nuseibeh, (Boston: Springer, 2007), 369-418. 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 is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers ''write once, run anywh ...
(so far, the only supported language). It can be directed to explore all method protocols systematically, printing a lengthy test report, or to perform automated testing according to a state-based 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 (TDD) is a software development process relying on software requirements being converted to test cases before software is fully developed, and tracking all software development by repeatedly testing the software against al ...
, as used in the
Extreme Programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, PD ...
approach to software development.


Comparisons

JWalk is 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 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 which is collectively known as xUnit that originated w ...
).A J H Simons and C D Thomson, Lazy systematic unit testing: JWalk versus JUnit, ''Proc. 2nd. Testing in Academia and Industry Conference: Practice and Research Techniques'', (Windsor: IEEE Computer Society, 2007), 138. 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.


References

{{reflist Unit testing