MIRA is a generic test framework.
Based on Ruby and RSpec, MIRA is mainly intended for component/integration/function test of software applications and to integrate into the software development process. A Test-Driven or even Behavior-Driven Development approach is recommended, and MIRA supports them both.
MIRA is highly extendable for customer specific applications, something that is typically done by developers that knows the application.
MIRA core takes care of most things that would be expected from a test framework such as:
• Providing a runner interface.
• Structuring of test objects, test groups and test cases.
• Handling of test suites and test case selection.
• Running tests in random, and repeatable, order.
• Logging with a variety of loggers including real-time casting.
• Verdicts (e.g. pass, fail, pending).
• Exit handling – various exit statuses depending on the cause of exit.
• Collecting additional troubleshooting information automatically in case of failure.
• Issue tracking – to enable full focus on new issues.
• Restrictions – do or don’t run certain tests under certain circumstances.
• Help to make tests isolated from other tests by idle-to-idle checks.
• Usage tracking – keep track of how much MIRA is used.
• API’s for customer-specific extensions.
Writing and running tests should be easy, so should maintaining legacy. MIRA comes with a strategy for why, when and how to make use of it in development and maintenance.
Who says testing is scripting? The test system should be treated equally to or better than the application it is testing. Therefore, programming guidelines and rules like DRY (don’t repeat yourself) and KISS (keep it simple stupid) are as natural as applying unit testing of MIRA itself.