JWalk
   HOME

TheInfoList



OR:

JWalk is a
unit test Unit testing, component or module testing, is a form of software testing by which isolated source code is tested to validate expected behavior. Unit testing describes tests that are run at the unit-level to contrast testing at the integration ...
ing toolkit for the
Java programming language Java is a high-level, general-purpose, memory-safe, object-oriented programming language. It is intended to let programmers ''write once, run anywhere'' ( WORA), meaning that compiled Java code can run on all platforms that support Jav ...
.''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, general-purpose, memory-safe, object-oriented programming language. It is intended to let programmers ''write once, run anywhere'' ( WORA), meaning that compiled Java code can run on all platforms that support Jav ...
(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 way of writing source code, code that involves writing an test automation, automated unit testing, unit-level test case that fails, then writing just enough code to make the test pass, then refactoring both the ...
, 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, ...
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 test automation framework for the Java programming language. JUnit is often used for unit testing, and is one of the xUnit frameworks. JUnit is linked as a JAR at compile-time. The latest version of the framework, JUnit 5, resides ...
).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