<fat_troll>
он жеж англоязычен, вероятно класс и эквивалентность настолько common, что no explanation required, ну at least в узком кругу образованных людей.
</fat_troll>
Ужель мы англоязычностью не владеем-то?
38 Equivalence Class Testing
This should be called Equivalence partitioning of test cases, but nobody cares.
Don’t pretend that this technique can be used to reduce the number of test cases without lowering the test coverage, because reducing test cases always lower the test coverage level. Automobiles was created for consuming petrol or for carrying human beings from the maternity hospital to the cemetery as fast as possible?
38.1 Class
A class is a group of some items with some common attributes, characteristics, qualities, or traits.
Grouping is useful for science, it helps to discuss as single entities whole classes, not separate items.
Trick is that one item can inherit different characteristics and qualities at the same time. For example, an usual man can be added to several groups (classes) simultaneously:
• human being
• bus driver
• pig
• father
38.2 Equivalence
There are a lot of terms for showing that two items are equal: equal, comparable, identical, correspondent, duplicate, matched, uniform.
Any two things can be called equal, if they have the exactly same attributes.
Example: you have two brand new bottles of whiskey. They exists apart in this Universe, but now they are identical, equal, the same, they duplicate each other. If you will open one bottle, they immediately will become unequal (one is opened, the other is sealed). But once both bottles are opened, they again become equal.
Ok, this bottles cannot be called ’equal’ for real. But they can be declared as ’equal’ only for our convenience.
There is an meta word for such statement: this two bottles are not equal (identical), but for the final result you can act with them like they ARE identical. This is called Equivalence.
Other example: you should use a passenger train for travel in metro. Will matter what kind of train you will have to use? His color, capacity, length, personal number and the manufacturing year, or something like that? No! All those DIFFERENT trains from your route WILL BE equivalent one to others, while your journey.
If you will use one of thousand trains, you can assume, that all other trains can complete the same task.
Again, all those trains are not equal one to others. Each of them has his own number, different colors, different history and brake conditions, they was released in different ages. They are not equal, they are only equivalent.
Warning! Equivalence is not a substitution or something totally equal. ’Equivalence’ is not ’Equality’.
38.3 Equivalence partitioning of test cases
An equivalence class can consists from a set of data that is treated the same by the module or that should produce the same result. Any data value within a class is equivalent, in terms of testing, to any other value. Specifically, we would expect that if one test case in an equivalence class detects a defect, all other test cases in the same equivalence class are likely to detect the same defect.
A group of tests forms an equivalence class if you believe that:
• They all test the same thing.
• If one test catches a bug, the others probably will too.
• If one test doesn’t catch a bug, the others probably won’t either.
This approach assumes, of course, that a specification exists that defines the various equivalence classes to be tested.
And you should clearly understand, that your ’grouping’ of test cases can be formally good, but totally wrong.
The main gap: for example, you get your car from the car service, and the mechanic says: «We had to check all the wheels. Well, we checked only two wheels with brakes. You know, they’re all four are equivalent to each other, so we have checked out those two, they are ok, so we assume that the remaining wheels are ok too. Have a nice day». Will you have a nice day?
Divide into equivalence classes only Test cases, not the Functionality of a product.