SocialTwist Tell-a-Friend

Comments --

Add

JBoss Release Byteman 2.0

Byteman is a tool which simplifies tracing and testing of Java programs. Byteman allows you to insert extra Java code into your application, either as it is loaded during JVM startup or even after it has already started running. The injected code is allowed to access any of your data and call

Tags: , ,
SocialTwist Tell-a-Friend

Comments --

Add

New TesterTools – R-JVV

R-JVV is a random test generation tool for Java virtual machines. Other JVM testing tools are not sufficient for testing a modern Java virtual machine.  This is because a modern Java virtual machine is performing some of the most aggressive optimizations available in compiler technology, such as global code motions, inter-method optimizations, profile-driven optimization, and

Advertisment
My Twitter Friends
Friends: 939 Followers: 394
SocialTwist Tell-a-Friend

0

Comments

Add

JBoss Release Byteman 2.0

Byteman is a tool which simplifies tracing and testing of Java programs. Byteman allows you to insert extra Java code into your application, either as it is loaded during JVM startup or even after it has already started running. The injected code is allowed to access any of your data and call any application methods, including where they are private. You can inject code almost anywhere you want and there is no need to prepare the original source code in advance nor do you have to recompile, repackage or redeploy your application. In fact you can remove injected code and reinstall different code while the application continues to execute.

The simplest use of Byteman is to install code which traces what your application is doing. This can be used for monitoring or debugging live deployments as well as for instrumenting code under test so that you can be sure it has operated correctly. By injecting code at very specific locations you can avoid the overheads which often arise when you switch on debug or product trace. Also, you decide what to trace when you run your application rather than when you write it so you don’t need 100% hindsight to be able to obtain the information you need.

When testing your application you can use Byteman to inject faults or synchronization code, causing your application to perform unusual or unexpected operations required to exercise a test scenario. Byteman provides a library of built-in functions which allow you to do anything from generating simple error conditions to propagating complex error flows which require coordinated actions in different parts of your application. However, you are not limited to these operations. You can inject almost any Java code into your application so long as the classes you refer to are in scope at the injection point. You can also replace or extend the available built-in functions by supplying a POJO (plain old java object) as a plugin. So, Byteman makes it easy for you to program even the most complex test scenarios.

Byteman works by modifying the bytecode of your application classes at runtime. Since it only needs access to bytecode this means it can modify library code whose source is either unavailable or unable to be recompiled. This even includes the Java code which forms part of the Java virtual machine, classes such as String, Thread etc. So, with Byteman you can trace what the JVM is doing on behalf of your application code or cause JVM classes like FileInputStream or Map to throw exceptions when your application calls them.

Byteman uses a clear, simple scripting language, based on a formalism called Event Condition Action (ECA) rules to specify where, when and how the original Java code should be transformed. An event specifies a trigger point, a location where you want code to be injected. When execution reaches the trigger point the rule’s condition, a Java boolean expression, is evaluated. The Java expression (or sequence of expressions) in the rule action is executed only when the condition evaluates to true. Normally execution continues from the trigger point once the inejcted code has been executed. However, rule actions may also throw an exception or force an early return from the triggering method.

Byteman 2.0.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 language and explains how to use byteman to inject faults or tracing and monitoring code. There is also a tutorial showing you how to get started with Byteman and a follow-up tutorial explaining how to use Byteman to perform fault injection testing. See the documentation page for more information.

SocialTwist Tell-a-Friend

0

Comments

Add

New TesterTools – R-JVV

R-JVV is a random test generation tool for Java virtual machines. Other JVM testing tools are not sufficient for testing a modern Java virtual machine.  This is because a modern Java virtual machine is performing some of the most aggressive optimizations available in compiler technology, such as global code motions, inter-method optimizations, profile-driven optimization, and speculative optimizations that get undone with dynamic class loading.  While other Java test suites cover the basic semantics of the language, with some tricky edge cases, we have found that they do not produce enough cases with enough diversity to ensure the correctness of the JVM’s optimizations.  This is not just paranoia – we have found that some of the leading JVMs fail our tests.

R-JVV is a tool that supplements other test suites for testing JVMs, including our own R-JIT.  R-JVV generates volumes of complex random self-checking Java test cases that stress the optimizations in the JVM.  While the coverage of any tool cannot be complete, using R-JVV to complement other Java test suites can substantially improve quality and reliability.

R-JVV helps you bring the testing of your JVM closer to the testing level that a hardware platform typically gets.  For example, a mainframe server receives extensive tests and includes extra hardware such as parity and ECC checking, which is partly what gives the mainframe its price premium.  The complexity of a modern JVM can be much greater than that of hardware.  For a mission-critical Java-based server, R-JVV helps to bring the dependability level of the JVM toward that of server hardware.

R-JVV is useful to the following classes of users:

Developers of proprietary and open source JVMs.  R-JVV can substantially supplement the dependability provided by other test suites.

Developers of devices and systems that include a JVM.  R-JVV will subject their system to a higher level of testing intensity to help avoid expensive device recalls or embarrassing crashes.

Integrators and web site developers seeking to qualify the components that they provide to their business customers.  R-JVV’s results can provide criteria that indicate the highest quality JVM to provide to customers.

Users of JVMs for mission critical applications, such as J2EE servers.  R-JVV testing intensity can help ensure that the JVM supplied by their vendor is of the highest quality, to avoid costly downtime.

View TesterTools dedicated page for this tool.