Welcome to the Byteman Project
Byteman is a bytecode injection tool which simplifies development of tests for Java applications using a technique called fault injection. Byteman works by inserting scripted side effects into application code, Test scripts may include actions which create and propagate conditions appropriate to the test scenario. Or they may simply verify correct execution of the application program.
Byteman's scripting language is based on Java, using a formalism called Event Condition Action rules to specify where, whether and what side effects should be executed during a test run. This allows Byteman rules to be powerful and expressive without sacrificing structure, clarity and ease of use. The script language supports, by default, a suite of built-in operations targetted at testing of multi-threaded applications. However, it is very simple to tailor the language to support additional/alternative operations specific to the application under test.
Test scripts are normally read during program startup and injection is usually performed as the targetted classes are loaded. However, Byteman also supports dynamic script upload, injecting side effects into a running program. Where necessary Byteman automatically recompiles methods of classes which have already been loaded so that subsequent method calls trigger execution of side effects. This feature extends the scope of Byteman making it a handy tool for debugging or tracing execution during application development and enabling flexible, ad hoc monitoring of installed applications while they are still running.
Byteman 1.3.0 is now available for download under the GNU LGPL. It requires a JDK 6 or higher JVM. The release includes a user guide which documents the scripting languauge and explains how to use byteman to script tests.
The Byteman Community
Byteman is a community project so feedback and contributions are welcome. The project provides a community user forum where you can report any problems you encounter when trying to obtain, build or use Byteman. There is also a developer forum which should only be used by those who wish to contribute to discussions of the design and implementation of Byteman or to suggest enhancements and new features.
All changes made to Byteman are managed using the JIRA issue tracker system. This includes both unresolved issues scheduled for upcoming releases and issues which have been fixed by the current or previous releases. Before reporting an issue in the user forum please search JIRA and the user forum to see if it has already been notified.
JIRA is also used to record scheduled development tasks and new, nice-to-have features to be added to Byteman. If you wish to propose such a feature or vote for its early addition or for resolution of a issue which is important to you then your feedback will be welcome.
The Byteman project is only just starting so please excuse the fact that the project pages are a work in progress.
