|
|
| |
The Diversity
Analyzer implements a unique, patented technology of how to
instrument, what to instrument, and how and when to collect
diversity data. This technology allows great flexibility in
instrumenting source code, and in analyzing diversity.
|
|
| |
With our technology
you can analyze a variety of projects written in different programming
languages and various platforms. Analyze diversity at the time
and code-location of your choosing.
|
|
Our simple instrumentation allows uniform instrumentation
of various language dialects, parts of source files or complete source
files, multiple language projects, and multiple related or unrelated
projects. The instrumentation strategy and instrumentation code is
almost identical for all major industrial languages. A minimal to-the-point
instrumentation is used, by inserting a general coverage-distribution
recording calls at conditional statements. The called distribution-recording
function is located in a library, and is common for all conditional
statements and all programming languages. The projects that use instrumented
source files need only link to this library. The instrumentation takes
less than 5% of the time it takes to build the original, un-instrumented
code. The time it takes to build the instrumented code is virtually
identical to the time it takes to build the original code. The instrumented
code could be distributed on multiple machines and tests run in a
usual lab setup. The Diversity Analyzer does not
need to be installed on each machine where the test is run, only on
the machine where the instrumentation and viewing of results is performed.
Place simple zoom statement in the code to
delimit the scope of diversity analysis to sections of code that are
of particular interest. In order to make the diversity analysis more
precise and flexible, comments with the keyword ZOOM_BEGIN and ZOOM_END
could be inserted into the code by a tester to delimit the scope of
the analysis to the block of code delimited with these keywords. This
allows the testing to zoom in to various code segments, and causes
the reports to be simpler with less data, resulting in to-the-point
quick analysis. This finds its application for example, in cases where
only new code (code inserted or modified since the last major version)
should be covered.
Flexibility of all-at-once instrument source code
belonging to different projects, written in different programming
languages and dialects, and comprising various targets, such as exes,
dlls, ocxs. Place only the files of interest into target directories
selected for analysis. Place files that belong to different projects,
different executables, different dlls, and different ocxs. Place files
of different programming languages and dialects in the same directory
for all-at-once instrumentation. Use this feature when you need to
analyze code that is related but resides in different projects, and
potentially runs on different machines. The Diversity Analyzer allows
one or more computer software source files, which are part of one
or many projects, one or many executables, and/or one or many libraries,
written in potentially different programming languages to be selected
for diversity analysis.
Flexibility in the time of
diversity and coverage analysis. Analyze diversity and coverage at break
points in debug mode, as the program is still running, or it has crashed.
The permanent true/false distribution record is updated immediately
after execution of every conditional expression, keeping up-to-date
record of distribution data. This allows great flexibility in the analysis
of distribution data, even as the program under test is still running,
or it has crashed, or has terminated successfully. It also allows fine
granularity of analysis, where the distribution data could be analyzed
per individual test or even anywhere in the middle of a test by using
a debugger to interrupt the execution of the program. If the average
of 1.4-1.6 increase in run time is too great, the Diversity Analyzer
gives you an option of faster run time by writing data to a permanent
record only when the application under tests exits.
|