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
-~----------~----~----~----~------~----~------~--~---