Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ANNOUNCE Mika by Midoan New Release : Automated Test Data Generation for Ada

4 views
Skip to first unread message

in...@midoan.com

unread,
May 25, 2009, 2:42:51 PM5/25/09
to
Midoan Software Engineering Solutions Ltd. (http://www.midoan.com/)
announces a new release of Mika, the first commercial testing tool for
Ada that automatically generates test inputs from your source code.

Mika is an entirely automatic tool that analyses your Ada code and
generates, carefully constructed, tests that will exercise all the
branches or decision within your code at a level suitable for
integration testing. With Mika, manual test data generation is no
longer necessary.

Version 1.1 can be downloaded at http://www.midoan.com/download.html

Of note in this new release is the possibility of using any GNAT
compiler (including GNAT Pro).

Version 1.1 (25 May 2009)
* Improvements include:
o Mika is tool chain independent: any GNAT
compiler can be used;
o Tests are generated even in the absence of test
points;
o Error messages are more informative;
o GNAT’s specific attributes are now compiler
dependent and generated on the fly;
o Tests generation for exponent expressions with
integer argument is more powerful;
o A direct uninstall is available;
*Subset enlargements include:
o Mika is now based on Ada 2005;
o Additional GNAT’s specific attributes are
appropriately handled (including storage_unit and word_size);
o Additional constructs are ignored rather than
causing a failure (including Exception handlers);
o The Address predefined attribute returns a
dummy value rather than fail;
o Qualified array expressions are now
appropriately handled rather than causing a failure (array aggregates
were already handled);
*Bug fixes include:
o Use of derived array and derived record types
objects was sometimes causing errors;
o Zero exponent expression with integer argument
did not always return 1;
o Qualified expressions were sometimes causing
errors for integer, floats and enumeration types;

See http://www.midoan.com/ for further information including examples
and documentation.

Yours sincerely,
the Midoan and Mika team

sjw

unread,
May 25, 2009, 3:47:02 PM5/25/09
to
On May 25, 7:42 pm, i...@midoan.com wrote:
> Midoan Software Engineering Solutions Ltd. (http://www.midoan.com/)
> announces a new release of Mika, the first commercial testing tool for
> Ada that automatically generates test inputs from your source code.
>
> Mika is an entirely automatic tool that analyses your Ada code and
> generates, carefully constructed, tests that will exercise all the
> branches or decision within your code at a level suitable for
> integration testing. With Mika, manual test data generation is no
> longer necessary.

If the tool can do this, can it tell me which tests are going to fail?
That would save me the bother of actually running the tests ..

in...@midoan.com

unread,
May 25, 2009, 4:26:36 PM5/25/09
to

Hello,
of course Mika cannot do this as it has no knowledge of the intended
behaviour of the code. It only automatises the generation of tests.
However, Mika also gives the predicted tests outcomes for each test
generated; the tester can scan those and decide if a test has failed
without actually executing the code. Mika also generates a test driver
that when run compares the predicted test outcomes against the actual
tests results.

So the user has the choice of executing or not executing the tests;
either way the pass/fail oracle is still human...

regards,
Midoan

Maciej Sobczak

unread,
May 26, 2009, 4:18:19 AM5/26/09
to
On 25 Maj, 22:26, i...@midoan.com wrote:

> Mika [...] has no knowledge of the intended


> behaviour of the code. It only automatises the generation of tests.

These two sentences above seem to be conflicting to me, or at least
they provoke a justified question on the actual value of such
generated tests.
Can you provide some examples?

--
Maciej Sobczak * www.msobczak.com * www.inspirel.com

Database Access Library for Ada: www.inspirel.com/soci-ada

in...@midoan.com

unread,
May 26, 2009, 4:55:06 AM5/26/09
to

The most simple typical example is :

procedure swap(x, y : in out Integer) is
t : Integer;
begin
t := y; --should be t := x;
x := y;
y := t;
end swap;

For this Mika generates the following test:

TEST NUMBER 1

CONSTRUCTED TEST
x = -3411276
y = -2256887

PREDICTED RESULTS
x = -2256887
y = -2256887

100% branch coverage predicted.
1 tests generated (paths followed)
0 paths fully attempted but for which tests could not be generated

Mika generates tests, and can compile and run the tests but it cannot
answer the question: "did the tests pass or fail?". The fact that the
intended behaviour was a swap of the two arguments is obviously
completely unknown to Mika.

But if an oracle is available (e.g. during regression testing, or from
previous test runs) it is possible to perform back to back test runs
automatically using the tests generated: thus answering the question
did the test pass or fail... But of course the answer is completely
dependent on the integrity of the oracle.

More complex examples are available at http://www.midoan.com/mika.html

Hoping this clarify things a little.
Regards,
Midoan.

0 new messages