develooper Front page | perl.qa | Postings from February 2007

Test script with hierarchy

Thread Next
From:
Gabor Szabo
Date:
February 1, 2007 23:24
Subject:
Test script with hierarchy
Message ID:
d8a74af10702012323x26b073fag9e54374729c956b@mail.gmail.com
hi,

In a project I am working on there is a separate automation team.
This team gets test descriptions from the manual QA people
including steps how to implement each step:

Test A
   Step 1 - Setup a smadge and set it to operation Blue
   Step 2 - Setup another smadge and set it to operation Black
   Step 3 - Put a table between the two smadges
   Step 4 - Launch a zbong from each smadge towards the table at level 10
   Step 5 - Check if the table is full of food
     Step 5.1 - Check if there are at least 3 types of eggs
     Step 5.2 - Check if there are at least 4 types of bread
     ...
     Step 5.19 - Check if there are both blue and black berries
   Step 6 - Launch a zbong from each smadge towards the table at level 1
   Step 7 - Check if the table is empty now

Steps might have an arbitrary depth of sub steps.
Once I get such description I implement each step. Usually each step breaks
down into several "technical" steps. Such as

   Step 1 - Setup a smadge and set it to operation Blue
     TS 1 - Setup an empty smadgeholder
     TS 2 - Put an empty smadge on the smadgeholder
     TS 3 - Copy the blue smadge definition file to the smadgeholder
     TS 4 - Load the smadge definition file
     ...

These technical steps could also have a hierarchy of arbitrary depth of
sub steps. We write functions (later maybe methods) to implement
each step and each "technical step".

The people who run the tests expect to get some HTML report that says
"Test A is successful" though they would also settle if sometimes it says
"Test A failed".
Then they want to be able to click on the link "Test A" and see the Steps
and drill down all the way to the lowest level of technical steps.
It is important for them as they want to "debug" the test runs and
tell if a failure was due to bad test implementation,
temporary network failure, broken smadgeholder, or a real bug in the
implementation of a smadge. Occasionally they event want to execute the
test manually step by step. Having such a drilldown will help them create
the test.

Can I use TAP for this? Can TAP be used to represent such hierarchy?
Is there a module already doing something like this even without the HTML
report?

Am I missing something in the concept?

I thought of creating something I could call MyTest::Hierarchy that would do

    $t = MyTest::Hierarchy->new;

    $t->start_test("Test A");
    $t->start_step("Step 1");
    $t->start_ts("TS 1");
    ...
    $t->ok(1);                        # call to Test::Builder
    $t->is_num($received, $expected); # call to Test::Builder
    $t->end_ts();                     # marks the end of the latest
Technical Step

The TAP representation might be simple indentation of the output
(both the diag messages and the ok 1 prints).


In addition on each ok() call they might want to print several values,
as if there were several titles. I am not sure if an xml output would
not be better than TAP to represent all this.

Gabor

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About