Short answer: Yes.

The current pairwise algorithm only supports pairs, but it is just one of 3
join strategies currently offered out of the box.  You can implement your
own join strategies as you like.

Here's how:

1. Implement Gallio.Framework.Data.IJoinStrategy.  The implementation should
take a list of data providers and some bindings and emit a list of data
items in the desired combinations.

You may find it helpful to look at the implementation of
CombinatorialJoinStrategy, PairwiseJoinStrategy and SequentialJoinStrategy.

2. Implement a custom join attribute.  Here's the one for Pairwise.

    [AttributeUsage(PatternAttributeTargets.Test, AllowMultiple = false,
Inherited = true)]
    public class PairwiseJoinAttribute : JoinAttribute
    {
        /// <inheritdoc />
        protected override IJoinStrategy GetJoinStrategy()
        {
            return PairwiseJoinStrategy.Instance;
        }
    }

3. If you like, contribute your new strategies back to the project,
including some unit tests.  ;-)

Jeff.

-----Original Message-----
From: [email protected] [mailto:[email protected]] On
Behalf Of Martin Vyuga
Sent: Monday, March 23, 2009 3:01 AM
To: [email protected]
Subject: MbUnit Re: Combinatorial Testing (3-way or higher)


Hi Jeff
Thank you, that actually gives me shows me some light in the end of the
tunnel.

 However, from what you telling me I get that:
in situations where I for example have 4 factors  where each factor may have
let say 3 values then MBUnit gives following options:

1) Either use full cartesian product of tests which 3^4=81 comparisons
 2) or run pairwise comparison of of factors which will probably give
smaller number

As far as I know, pairwise testing is not a silver bullet, so in some cases
one would need a comparison of higher strength lets say 3.

So, what I am curious about is: can I for example compare in MBUnit not just
a pair of factors but for example a 3-tuple of factors?
If not then:
1)Is there any way to extend that CombinatorialTest mechanism to use other
algorithms?
2) can MbUnit's pairwise tests be extended to use a custom algorithm for
example, simmulated annealing or  density based algotrithm for pairwise
comparison?

I hope it clarifies what sort of information I am looking after.

Thank you.

Best regards,
Martin

On Sun, Mar 22, 2009 at 8:41 PM, Jeff Brown <[email protected]> wrote:
>
> MbUnit v3 does a cross product by default when performing 
> combinatorial tests.  Pairwise is also available as an option just by 
> adding an attribute. Pairwise actually refers to the manner in which 
> combinations are selected rather than the number of parameters 
> involved. In fact the difference is only meaningful when you have 3 or 
> more factors involved. A pairwise test covers all paired variations of 
> factors which is a smaller (but highly representative) subset of the 
> cross product so you get meaningful results with fewer tests normally.
>
> Please take a look at some of the older MbUnit v3 release notes for 
> some examples of different styles of combinatorial tests.
>
> Jeff.
>
>
>
> On Mar 22, 2009, at 10:07 AM, Martin ex-MS <[email protected]> wrote:
>
>>
>> Hello
>> I am starting on a project where I want to implement combinatorial 
>> testing with 3-way interactions of parameters or possibly even higher 
>> . Basically based on heuristic search and simulated annealing 
>> algorithms described here:http://cse.unl.edu/~myra/papers/mbcdiss.pdf
>>
>> And I think that MbUnit is just mega cool framework for implementing 
>> this. I am very new to it though, however I have rather big 
>> experience with MSTEST and NUNIT/JUNIT and some other xUnit like test
frameworks.
>>
>>   I am wondering if anyone has already  tried implementing 
>> combinatorial testing of higher stregth than 2 on some other projects?
>> I know that MBUnit is by default using PairWise testing, how would 
>> you extend it to use higher strength algorithms?
>>
>> Some hints would be absolutley TREMENDOUS.
>>
>> Thank you very much for any hints in advance.
>>
>> /Martin
>> >
>
> >
>



--
Martin Vyuga



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"MbUnit.User" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/MbUnitUser?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to