Search This Blog

Friday, January 15, 2010

XStudio 1.2: Refined reordering of tests within a campaign

One of the most complex but valuable interest in using a test manager is to be flexible enough to execute tests in a specific order.

When you create a campaign, the wizard asks you to select some tests in a tree, hence, there is no concept of order at this point. However, after the campaign is created you can select the "Order" tab and enjoy two new buttons:

1) Reorder using dependencies
If you press this button, tests will be ordered so that a test is always executed after ALL his parents. The algorithm is pretty complex and obviously supposes there is no cycle in the dependencies. In case you left some cycling dependencies, XStudio will show you exactly what's wrong by displaying all the cycling dependencies:

Then, you can easily correct your dependencies (in the test tree) and reorder your campaign.

Before pressing the "Reorder using dependencies" button, ensure the checkbox "Execute tests with dependencies first" is correctly set. If this checkbox is not selected, tests without any dependencies will be executed after all the tests having dependencies.

2) Reorder using priorities
If you press this button, tests will be ordered so that tests with higher priorities will be executed before tests with lower priorities. Note that a "priority" column has been added so that it's visually easier to check the priorities of all the tests in the list.

Manual ordering:
Once the system has reordered your tests using one of the 2 methods, you still have the flexibility to manually reorder some of the tests using the usual manual reordering toolbar. As before, multiple selection is available so that you can move several tests at the same time.

Column width persistence:
A recently added feature is the fact that after this table is refreshed, the columns are left at the exact same position. This was a pretty annoying restriction.

1 comment:

  1. I still need to set a parameter in the campaign session that will indicate what to do when:

    A) a test is failing:
    - run the childs
    - set the childs as "not_executed"
    - set the childs as "failed"

    A) a test is in state "unknown":
    - run the childs
    - set the childs as "not_executed"
    - set the childs as "failed"

    ? for now all the childs are still executed...

    ReplyDelete