From: Anaconda on
I do have a program that I am going to make a test plan for. The
program has many input variables, and each variable may have many
values. Altogether there are 203 values to be tested. The values can
occur in combinations. I want to design test cases for pariwise
testing, so that each value occurs in combination with any other value
just once. This design is said to be efficient, because it is a
practical way to reduce the amount of combinations without loosing too
much of the chance to detect error in the program.

I imagine a suitable result would be a dataset with a variable for
each value to test, and an 'X' for instance as field value for the
values that are choosen for each testcase. The records in the dataset
will then represent the testcases.

Alternatively, the values could be in the left bar, and the column
represent the testcases? Can these be interchanged by using proc
transpose? I don't know which layout I prefer.

Has anyone done a similar thing before? Could you show me a solution
for how to write the code if we try to keep it simle by limiting the
number of values to be tested to 8? If I am not mistaken, I thing that
should give 4 testcases.

Regards, Anaconda
From: Anaconda on
Since I have got no response to this posting, I will explain it a
little more by visualizing it.
In this example, there are 3 input variables which are going to be
tested: S_ds_A, S_ds_B and S_ds_C.
Each of these variables has two values. The values within each
variable exclude each other mutually.



The following is the situation for the design when a cartesian product
is followed:

Variable name S_ds_A S_ds_A | S_ds_B S_ds_B | S_ds_C
S_ds_C
Variable value S_ds_AA S_ds_AB | S_ds_BA S_ds_BB | S_ds_CA
S_ds_CB
-----------------------------------------------------------------------------------------------------------------------------------
Testcase 1 X |
X | X
Testcase 2 X |
X | X
Testcase 3 X
| X | X
Testcase 4 X
| X | X
Testcase 5 X |
X | X
Testcase 6 X |
X | X
Testcase 7 X
| X | X
Testcase 8 X
| X | X
--------------------------------------------------------------------------------------------------------------------------------------

And this is how the testdesign will look like when pairwise testing is
used:

Variable name S_ds_A S_ds_A | S_ds_B S_ds_B | S_ds_C
S_ds_C
Variable value S_ds_AA S_ds_AB | S_ds_BA S_ds_BB | S_ds_CA
S_ds_CB
-----------------------------------------------------------------------------------------------------------------------------------
Testcase 1 X |
X | X
Testcase 2 X
| X | X
Testcase 5 X |
X | X
Testcase 8 X
| X | X
--------------------------------------------------------------------------------------------------------------------------------------

We see that by using pairwise testing, the number of testcases are
reduced from 8 to 4.
The challenge is to create a table like the last as a SAS table.
The solution should not be hard-coded. SAS need to know which input
variables are going to be tested, and what values (options) which are
possible within each variable. May be the dictionary tables can be
used to tell SAS these things.

For me this looks like one of the hardest programming nuts I have ever
posted to this group.

Thanks in advance,
- Anaconda




From: Anaconda on
The drawing doesn't look quite easy in the web, but then try to move
the text so that the bars ('|') are placed right below each other.

- Anaconda

On Mar 19, 4:50 pm, Anaconda <r...(a)fastlane.no> wrote:
> Since I have got no response to this posting, I will explain it a
> little more by visualizing it.
> In this example, there are 3 input variables which are going to be
> tested: S_ds_A, S_ds_B and S_ds_C.
> Each of these variables has two values. The values within each
> variable exclude each other mutually.
>
> The following is the situation for the design when a cartesian product
> is followed:
>
> Variable name           S_ds_A  S_ds_A  |  S_ds_B          S_ds_B         |  S_ds_C
> S_ds_C
> Variable value          S_ds_AA S_ds_AB |  S_ds_BA  S_ds_BB  |  S_ds_CA
> S_ds_CB
> --------------------------------------------------------------------------- --------------------------------------------------------
> Testcase 1                    X                          |
> X                        |       X
> Testcase 2                    X                          |
> X                        |                        X
> Testcase 3                    X
> |                         X      |       X
> Testcase 4                    X
> |                         X      |                         X
> Testcase 5                                     X         |
> X                        |       X
> Testcase 6                                     X         |
> X                        |                         X
> Testcase 7                                     X
> |                         X      |       X
> Testcase 8                                     X
> |                         X      |                         X
> --------------------------------------------------------------------------- -----------------------------------------------------------
>
> And this is how the testdesign will look like when pairwise testing is
> used:
>
> Variable name           S_ds_A  S_ds_A  |  S_ds_B          S_ds_B         |  S_ds_C
> S_ds_C
> Variable value          S_ds_AA S_ds_AB |  S_ds_BA  S_ds_BB  |  S_ds_CA
> S_ds_CB
> --------------------------------------------------------------------------- --------------------------------------------------------
> Testcase 1                    X                          |
> X                        |       X
> Testcase 2                    X
> |                         X      |                         X
> Testcase 5                                     X         |
> X                        |       X
> Testcase 8                                     X
> |                         X      |                         X
> --------------------------------------------------------------------------- -----------------------------------------------------------
>
> We see that by using pairwise testing, the number of testcases are
> reduced from 8 to 4.
> The challenge is to create a table like the last as a SAS table.
> The solution should not be hard-coded. SAS need to know which input
> variables are going to be tested, and what values (options) which are
> possible within each variable. May be the dictionary tables can be
> used to tell SAS these things.
>
> For me this looks like one of the hardest programming nuts I have ever
> posted to this group.
>
> Thanks in advance,
> - Anaconda