Recent Changes - Search:



edit SideBar


M[agi]C is a tool for test case generation. Currently it can generate functional test cases written in:

It's available as:

The tool combines model-based testing and combinatorial testing. Models are used to generate test scenarios (test sequences), and combinatorial techniques complement the test scenarios with concrete test input data, minimizing the number of test combinations while maintaining the test data interaction criteria.

For example: you have this test sequence:
select_company, select_car_model, select_year, enter_min_price, enter_max_price, click_search
If there are 10 car companies, 10 models each, 20 years, etc. you may have to consider more than 2000 test cases (infinite number of test cases in theory, because price can be any number). And, that's not interesting,at all!

Instead, with M[agi]C tool, you can specify the range of the price, e.g. < 0, 0 - 10000, > 10000, and let the tool do the magic! You will obtain a minimal set of effective test cases.

The example above considers only one test sequence. In fact, with an input model M[agi]C can generate many test sequences that target different parts of a system under test. The final result with M[agi]C, in few words, is that you can obtain a set of test cases that do both spread and deep testing with minimal effort.

What are the required inputs for M[agi]C:

  • A finite state model. In fact, there are many technique that can produce such models. For example: Synoptic, KLFA.
  • A domain input specification, an XML specification that tells M[agi]C the partitions of the domain inputs. XSD is provided here

Intuitively, the user needs to specify a FSM model, and for each input event (e.g. touch, click, type) an input data partitioning. In the following image, Account has two partitions: Normal, and Saving, and Amount has 3 partitions: amount <= 0, 0 < amount < max, and amount > max. Our XSD allows to effectively specify domain inputs.

Required Inputs

M[agi]C and existing Selenium recorded tests

M[agi]C requires 2 inputs: a FSM model and a domain input classification. Fortunately, now we have Selen2FSM that can generate both of them from Selenium recorded tests. This completes the loop (Selenium/Web for now) with 2 great advantages:

  • If you have legacy Selenium tests, you can leverage them to generate more tests.
  • If you start from scratch, using Selenium IDE you can record some tests, and from that, you can use Selen2FSM and M[agi]C to generate more and more tests that expand your test scenarios.

Here how the 2 tools work together:

Selen2FSM and M[agi]C

See working Examples :

Edit - History - Print - Recent Changes - Search
Page last modified on January 08, 2013, at 03:27 PM