Mika by MIDOAN
Version 1.3
Release Notes

1 WELCOME.
Mika is an automatic test inputs generation tool for code written in a large subset of Ada 83, Ada 95 or Ada 2005. Mika uses genetic algorithms to generate inter-subprograms test inputs that will, by construction, exercise, during execution, the maximum possible number of branches, decisions or MC/DCs in the code under test. 

2 WHAT IS NEW IN THIS RELEASE?
Version 1.3 	(01 May 2020)
•	Mika has been ported to Windows 10.
Version 1.2 	(internal release only)
•	Mika has been ported to Windows 7.
Version 1.2.1	(21 November 2010)
•	Mika now support bitwise operators on modular types. 
Version 1.2	(29 June 2010)
•	Mika now allows MC/DC test data generation from Ada source code.
Version 1.1.3	(12 February 2010)
•	Mika now support  array concatenation and modular integers.
Version 1.1.2	(14 September 2009)
•	GNAT project files supported, tool available via command line.
Version 1.1.1	(29 May 2009)
•	Minor update following GNAT 2009 release.
Version 1.1	(25 May 2009)
•	Tool chain independence has been achieved.
•	Subset is now based on Ada 2005.
Version 1.0	(23 March 2009)
•	First post-beta release.
Version 0.9 	(10 February 2009) 
•	This is the first public release of Mika.

3 KNOWN ISSUES.
The limitations of Mika, including the Ada subset covered, are detailed in Mika’s user manual.

4 RELEASES HISTORY.
Version 1.3
•	Improvements include:
o	Mika now run on Windows 10;
o	Mika supports GNAT 2010.
Version 1.2.2 	(internal release only)
•	Improvements include:
o	Previously, manually or automatically, generated test inputs or test cases, from specification or code, can be used as a test input generation context by Mika. Thus Mika can complete existing test suites to improve code coverage (see separate user manual and, white paper and video at http://www.midoan.com/mika.html); 
o	Microsoft Windows 7 is supported; 
o	The front end displays child packages;
o	The front end displays package specifications; 
o	The automatically generated test driver is more compact and compiles more quickly.
•	Subset enlargements include:
o	Basic exception handling support has been enabled.
•	Bug fixes include: 
o	File names with upper cases are now handled properly;
o	The automatically generated test driver for subprograms in child packages now compiles properly.
Version 1.2.1	(21 November 2010)
•	Improvements include:
o	The coverage information generated is much more precise, e.g. line and column numbers of individual, covered or missing, branch, decision or gate in MC/DC coverage, are indicated;
o	Previous test inputs can now be re-compiled and re-ran from the front end;
o	The front end now issues a warning when the source files are out of date prior to test inputs generation.
•	Subset enlargements include:
o	Bitwise operators on modular types are handled.
•	Bug fixes include: 
o	Conversions to a modular type are now handled properly; 
o	The length of an enumeration subtype was not always handled propely; 
o	An installation problem whereby the GNAT executable could not be located has been fixed;
o	MC/DC coverage did not always handle atomic decisions properly;
o	MC/DC coverage did not always handle inter-procedural test inputs generation properly in ‘subprogram only’ test inputs generation mode.  
Version 1.2	(29 June 2010)
•	Improvements include:
o	Test inputs to achieve MC/DC coverage of the code under test can now be generated automatically;
o	The user can now specify the level of deepness of coverage desired;
o	The handling of input dependent types, slices, loops etc is more clever : it is much less likely to lead to un-tractable test inputs generation;
o	The test inputs generation process has been improved for floating point entities.
•	Subset enlargements include:
o	Input dependent types are accurately handled;
o	Dynamic record default field expressions are accurately handled;
o	Input dependent loop ranges are accurately handled; 
o	Conditional expressions are fully supported;
o	Large integers handling has been improved;
o	The valid attribute is supported.
•	Bug fixes include: 
o	Test inputs generation for ‘rem’ and ‘mod’ expressions is more powerful;
o	Subprograms calls that returns unhandled expressions were not handled properly; 
o	View conversions with complex expressions were not handled properly;
o	View conversions with long prefixes were not handled properly.
Version 1.1.3	(12 February 2010)
•	Improvements include:
o	None.
•	Subset enlargements include:
o	Array concatenation operator is fully handled;
o	Modular Integer type is fully handled;
o	Enumeration type conversions are fully handled;
o	Null ranges are properly handled;
o	Limited support for Wide_Characters has been added;
o	Exit statement with loop names are fully handled;
o	Better resilience to unhandled expressions overflow;
o	Basic support for incomplete type declarations.
•	Bug fixes include: 
o	Representation clauses for derived types was destructing some other attributes;
o	Derived enumeration types were not properly handled;
o	Array element assignments with an input dependent index, were not always sound;
o	Imported procedures were not simulated properly;
o	Better respect of GNAT’s generated elaboration order;
o	Max attributes for integers was misbehaving;
o	Integer division was sometimes overflowing unnecessarily;  
o	Standard duration type does not overflow any longer;
o	Single subtype mark in case statement alternatives were not allowed;
o	‘in’ and ‘not in’ membership tests support has been generalised;
o	Reverse order ‘for’ loops were not handled properly;
o	Unconstrained array instantiation of subtypes was misbehaving;
o	Deeply nested selected components were not always handled properly.
Version 1.1.2	(14 September 2009)
•	Improvements include: 
o	Support for GNAT project files;
o	The tool (the back end) can be used separately from the GUI (the front end) via the command line;
o	Operator subprogram testing has been made available.
•	Subset enlargements include:
o	Goto statements are fully handled;
o	Block statements are fully handled;
o	Unhandled expressions no longer cause systematic failure.
•	Bug fixes include: 
o	Subunits needed during the elaboration of their own package of definition were not  handled properly;
o	New Ada 2005 reserved keywords are now handled properly;
o	Functions with locally declared subprograms were not handled properly.
Version 1.1.1	(30 May 2009)
•	Improvements include: 
o	Test inputs generation is possible for subprogram body only units.
•	Subset enlargements include:
o	Conditional expressions are ignored rather than causing a failure.
•	Bug fixes include: 
o	None.
Version 1.1	(25 May 2009)
•	Improvements include: 
o	Mika is tool chain independent: any GNAT compiler can be used;
o	Test inputs 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	Test inputs 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.
Version 1.0	(23 March 2009)
•	Entirely new front end based on feedback;
•	Support for GNAT 3.4.2.
Version 0.9	(10 February 2009)
•	This is the first public release of Mika.

5 FEEDBACK.
Whether you are entitled to user support under Midoan’s maintenance terms or not, Midoan welcomes, and encourages, suggestions for improving Mika.  These may include requests for:
•	enlarging OS and/or GNAT version integration;
•	adding Ada features not supported in the current Ada subset;
•	adding finer user control of the automatic test inputs generation process.
•	generating test inputs for other coverage metrics (e.g. condition coverage);
•	adding new test output formats for better integration with third party tools;
•	etc.
This is your opportunity to guide the future development of Mika to suit your needs.

6 BUG REPORT.
Whether you are entitled to user support under Midoan’s maintenance terms or not, Midoan welcomes, and encourages, the reporting of bugs. Make sure to give as many details as possible including: Mika version, platform, GNAT version and distribution, description of the problem, full error messages issued.

Your problem will be addressed as soon as possible, typically within 24 hours. 

7 FURTHER INFORMATION.
•	ReadMe file: describes the minimal information necessary prior to the installation of Mika;
•	License file: details the license agreement that must be accepted by the user prior to the installation of Mika;
•	ReleaseNotes file: highlights the updates made since the previous release version of Mika;
•	UserManual file:  describes the usages and limitations of Mika.

8 CONTACT.
Midoan Software Engineering Solutions Ltd.
http://www.midoan.com/