Mika : Test Data Generation for Ada
MIDOAN : FAQ
Our Initial FAQ
This list will grow and become more relevant the more queries we get.
Frequently Asked Questions
- What does Mika offer that is unique?
- Uniquely, Mika can construct test inputs from Ada source code (no scripts required) automatically. Currently, these test inputs aim to achieve branch, decision and MC/DC coverage for the code under test.
- Does Mika replace traditional Ada test environments?
- This is a common misunderstanding. Mika generate test inputs (and also the code's behaviour) from code; how those tests are executed on the code afterwards is up to you. Mika provides a basic test harness for test execution but traditional Ada testing environment may also be used to execute Mika's test inputs to show conformance.
- How much does Mika costs?
- Mika is a low-cost tool. See our order page for exact licenses cost.
- What platforms does Mika run on?
- The only current target platform is Windows 10. Go to our request page to request support for another platform.
- Can Mika handle Ada 2005 code?
- The subset of Ada that Mika can handle is based on Ada 2005. So while advanced OO features such as interfaces are not handled by Mika, they can be present in your code but will be ignored by Mika. Go to our request page to change this.
- Can Mika be used in a safety critical context?
- Yes. Mika's main purpose is to generate thorough test inputs automatically (something that no other tool currently offers), it is not to generate test harnesses, measure code coverage etc. (although Mika provides supports for these tasks). It is recommended that organisations continue to use their existing Ada testing tool for these traditional activities whether they are working in safety critical environment or not.
- Mika only replaces the manual process of test inputs generation and offers help for test cases generation, it does not replace any existing tool nor disturb any working environment/practices. Mika's reliability, accuracy and integrity can be directly ascertained via the use of traditional, third party, certified testing tools; Mika's output, that is, the test inputs, can be used to exercise the code under development using whatever testing apparatus, including whatever compiler, target environment, in a totally independent way. Mika can also be used to complete existing, but incomplete, test suites.
- Instead of generating the test inputs manually, or writing test scripts, testers can use Mika to generate targeted test inputss automatically, thus saving a huge amount of effort (in terms of time, frustration and money); those automatically generated test inputs take the place of, or complete, your previously manually generated test inputs within your existing processes.
- Adopting Mika means that nothing needs to change in your organisation: you will simply notice much quicker turn around during development and regression testing.
- How much training is necessary to use Mika? / How quickly can Mika be put to use?
- No training is necessary; but it helps if the user is familiar with Ada. Mika can be installed and be up and running under 2 minutes (we will not be sending an engineer). Mika can be used in batch mode via its command line. As long as your code can be compiled by your own version of GNAT, Mika should work. We have videos demonstrating this.
- What changes do I need to make to my code to run Mika?
- None for obtaining the test inputs; Mika ignores all code annotations (e.g. SPARK annotations are not needed). If you avail of the automatic test harnessing facility then standard test points will have to be inserted in your original code. This will allow you to automatically execute your test inputs and validate your code's behaviour. Mika does not change your code and works in its own working directory (no file will be written in your original directory). Mika is non-disruptive.
- How large is the Ada subset handled by Mika?
- Mika's subset is larger than SPARK's. The subset handled by Mika will only grow as new releases are made available: see the current release notes. The precise subset is further described on the documentation page. Here are some of the constructs that are currently excluded from the Ada 2005 subset (Ada 83 and Ada 95 code is subject to the same restrictions of course):
- Ada tasks;
- Access types;
- Exceptions are ignored;
- Generic Packages.
Go to our request page or ascertain Mika's suitability within your own environment by trying Mika for free.
- How large can the code under test be? And how quickly are the tests generated for large code base?
- Mika has been tested on code containing 100 000s lines of code. Remember that Mika generates integration tests, not just unit tests; called subprograms are as well tested as the subprogram under test. So, literally, 100 000s of lines of code may have to be analysed in order to generate test inputs of one, say, 100 lines long, subprogram if that subprogram calls many other subprograms.
- Mika's test inputs generation speed has not been a primary design objective. It can however generate test inputs to cover all the branches of a simple subprogram in seconds. Large, industrial, code may require 10 minutes of analysis before the test inputs can be generated.
- However, the best way to answer these questions is for you to try Mika for free: the demonstration version behaves exactly as the full version on these matters.
- How reliable is Mika?
- Mika's reliability is best independently verified using a traditional, execution and monitoring, testing tool. If the coverage predicted by Mika is not achieved using the test it produces, please let us know and we will start addressing the problem within 24 hours. Unlike static analysis tools, who have to be trusted, our generated test inputs are run independently of our test data generator: bugs and limitations are immediately obvious and do not require long and arduous manual code analysis.
- What technology does Mika uses?
- Mika is based on proprietary and public technology.
- I am interested in Midoan's work, how can I help?
- You can help by trying Mika for free, requesting features, giving feedback and ordering Mika.