| |
|
Testing tools
|
|
Java code coverage estimation tool
Customer: leading IT company
Purpose: Development of Java-based tool which allows to measure how well product's Java sources are covered by tests.
Target industry: IT, Java developers.
Description:
While developing tests for a product it is always required to estimate the quality of developed tests. One of
the tests' quality characteristics is the coverage which the tests provide for the product.
Developed Java code coverage estimation tool allows to get precise numbers of how well product's Java sources are
covered by tests. The tool allows to get information on
- provided method coverage
- blocks coverage
- branch coverage
It works in both static and dynamic instrumentation modes. Dynamic mode allows to get coverage information
whithout recompilation of product's sources.
Tool's implementation is based on:
- Java compiler enhancement (static instrumentation mode)
- JVM enhancement and debugging / profiling API (dynamic instrumentation mode)
These required a deep knowledge of Java compiler design and javac's code as well as JVM design,
JVM's native code and debugging/profiling API.
The tool provides GUI (Swing-based) reporting subsytem and is widely used in customer's SQA/SQE works.
Resources: ~3 man*year
Technology summary: Java compiler internals, JVM internals, JVMDI/JVMPI/JVMTI, Swing API.
Java source generation tool
Customer: leading IT company
Purpose: Development of Java-based tool which generates a set of files from a Java-based template,
using pluggable generation engines.
Target industry: IT, Java developers.
Description:
It is a non-formal law in programming that everything that may be automated must be automated - this allows
to reduce code duplicates, development, change and maintenance costs. Besides, it is often required to generate
different code from a single source depending on current needs. Since Java has no pre-processing capabilities
by default, Java Macro Pre-Processor tool was developed.
The tool allows:
- to generate a set of files from a single source (template)
- to use the full power of Java language for template writing
- to generate different code from a single template depending on command-line settings
- to create and plug-in own Java-based generation engines
- to generate code using combinatorical algorithms
Developed technology is patented by the customer. The tool is widely used in test suites development,
significanlty reducing development, maintenance and porting costs.
Resources: ~1 man*year
Technology summary: J2SE.