Перейти к содержимому

Фотография

Переосмысление классов эквивалентности, часть 1


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 14

#1 baranceva

baranceva

    Профессионал

  • Admin
  • PipPipPipPipPipPip
  • 4 150 сообщений
  • ФИО:Баранцева Наталья


Отправлено 01 марта 2017 - 07:34

Автор: Джеймс Бах (James Bach)

Оригинал статьи: http://www.satisfice...g/archives/1669

Перевод: Ольга Алифанова

 

Статья в Википедии о классах эквивалентности – это отличный пример бедности мышления, обучения и письма, который часто прокатывает за мудрость в кругах тестировщиков. Это узкое, неверно направляющее людей определение, подразумевающее, что тестирование – это такая игра, в которую мы играем с ПО, а не открытое исследование сложного феномена.

(Нет, я не буду редактировать эту статью в википедии. Я не считаю забавным или полезным предлагать свой опыт в обмен на аргументы анонимных любителей. Википедия очень важна, потому что служит всеобщей справкой, если нужно покритиковать популярное знание, но как и само популярное знание, она неисправима. Популярное всегда побеждает, а народ не особо любит размышлять).

 

В этой статье я прокомментирую одну часть статьи в Википедии. В следующей статье я опишу классы эквивалентности так, как вижу их я, и вы сами сможете решить, чье определение лучше – мое или Википедии.

 

"Классы эквивалентности – это техника тестирования ПО, которая делит вводимые данные на классы эквивалентных друг другу значений, на базе которых создаются тест-кейсы".

 

Не совсем. Нет никаких оснований полагать, что классы эквивалентности ограничиваются "вводимыми данными". Мыслительный процесс деления на классы эквивалентности может применяться к выходным данным, версиям продукта, тестовым окружениям, или кейсам как таковым. Классы эквивалентности применимы к чему угодно, где вариативность может повлиять на результат теста.

 

Читать статью полностью...


  • 0
Наталья Баранцева
Тренинги по тестированию ПО

#2 astenix

astenix

    Специалист

  • Members
  • PipPipPipPipPip
  • 906 сообщений
  • ФИО:Лёша Лупан
  • Город:Кишинев


Отправлено 01 марта 2017 - 11:18

Да бляха, почему Бах тоже не начинает с очевидного: сперва внятно определи, что такое «класс» и «эквивалентность», затем уже трынди про то, что «Классы эквивалентности – это процесс [да ничуть не процесс!], которым все мы неформально занимаемся, не только в тестировании, но и в повседневной жизни».


  • 0

Software Testing Glossary - простыми словами о непростых словах.


#3 Freiman

Freiman

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 01 марта 2017 - 11:36

затем уже трынди про то, что «Классы эквивалентности – это процесс [да ничуть не процесс!], которым все мы неформально занимаемся

Это неточный перевод.
В статье - "Деление на классы эквивалентности - это процесс.."
  • 0

#4 astenix

astenix

    Специалист

  • Members
  • PipPipPipPipPip
  • 906 сообщений
  • ФИО:Лёша Лупан
  • Город:Кишинев


Отправлено 01 марта 2017 - 11:44

В статье - "Деление на классы эквивалентности - это процесс.."

 

Ок, деление — процесс.

 

Но основная претензия остаётся гештальтически незакрытой.


  • 0

Software Testing Glossary - простыми словами о непростых словах.


#5 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 01 марта 2017 - 13:23

 

 

сперва внятно определи, что такое «класс» и «эквивалентность»

Бах просто в целом согласен с этими определениями, вот и не считает нужным каждое определение самому тоже описывать


  • 0

#6 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 01 марта 2017 - 13:49

Да бляха, почему Бах тоже не начинает с очевидного: сперва внятно определи, что такое «класс» и «эквивалентность», затем уже трынди про то, что «Классы эквивалентности – это процесс [да ничуть не процесс!], которым все мы неформально занимаемся, не только в тестировании, но и в повседневной жизни».

<fat_troll>
он жеж англоязычен, вероятно класс и эквивалентность настолько common, что no explanation required, ну at least в узком кругу образованных людей.
</fat_troll>
  • 1

#7 astenix

astenix

    Специалист

  • Members
  • PipPipPipPipPip
  • 906 сообщений
  • ФИО:Лёша Лупан
  • Город:Кишинев


Отправлено 01 марта 2017 - 14:10

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


  • 0

Software Testing Glossary - простыми словами о непростых словах.


#8 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 01 марта 2017 - 14:28

Леша, я тебе твой redbick testing цитирую.
А ты мне что, кстати?

Мне у Баха вполне понравилось определение:
"An equivalence class is simply a set. It is a set of things that share some property. The property of interest in ECP is utility for exploring a particular product risk. In other words, an equivalence class in testing is an assertion that any member of that particular group of things would be more or less equally able to reveal a particular kind of bug if it were employed in a particular kind of test."

с моей кочки зрения вполне бьется с своей цитатой.
  • 0

#9 astenix

astenix

    Специалист

  • Members
  • PipPipPipPipPip
  • 906 сообщений
  • ФИО:Лёша Лупан
  • Город:Кишинев


Отправлено 01 марта 2017 - 15:05

Леша, я тебе твой redbick testing цитирую.
А ты мне что, кстати?

Мне у Баха вполне понравилось определение:
"An equivalence class is simply a set. It is a set of things that share some property. The property of interest in ECP is utility for exploring a particular product risk. In other words, an equivalence class in testing is an assertion that any member of that particular group of things would be more or less equally able to reveal a particular kind of bug if it were employed in a particular kind of test."

с моей кочки зрения вполне бьется с своей цитатой.

А я цитирую Software_Testing_Glossary.


  • 0

Software Testing Glossary - простыми словами о непростых словах.


#10 astenix

astenix

    Специалист

  • Members
  • PipPipPipPipPip
  • 906 сообщений
  • ФИО:Лёша Лупан
  • Город:Кишинев


Отправлено 01 марта 2017 - 16:07

Вопще, применение классов эквивалентности тест-кейсов в тестировании не надо переосмысливать, его надо просто изучить с нуля правильно, а не «как всегда»...


  • 1

Software Testing Glossary - простыми словами о непростых словах.


#11 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 02 марта 2017 - 08:20

избитый пример про интервал целых чисел от 5ти до 10ти

 

некоторые применят классы эквивалентности, создадут минимально требуемые для покрытия тесты 4 5 10 11, и посчитают что этого достаточно, ну может ещё один тест в серединку добавят

 

а Бах имеет ввиду что классы - это только одна из техник, и что только вот она одна "в вакууме" не гарантирует что всё будет работать


  • 0

#12 astenix

astenix

    Специалист

  • Members
  • PipPipPipPipPip
  • 906 сообщений
  • ФИО:Лёша Лупан
  • Город:Кишинев


Отправлено 02 марта 2017 - 13:15

Но ведь «4 5 10 11» — это пограничные значения, а не классифицирование эквивалентных тест-кейсов.
  • 0

Software Testing Glossary - простыми словами о непростых словах.


#13 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 02 марта 2017 - 13:40

 

 

Но ведь «4 5 10 11» — это пограничные значения, а не классифицирование эквивалентных тест-кейсов. 

я и не говорю про классификацию

 

имею ввиду что Бах говорит что одних интервалов и границ не хватает для тестирования (хотя многие думают что хватает)


  • 0

#14 astenix

astenix

    Специалист

  • Members
  • PipPipPipPipPip
  • 906 сообщений
  • ФИО:Лёша Лупан
  • Город:Кишинев


Отправлено 02 марта 2017 - 15:13

Понял.

Да, очевидность того, что «недостаточно» неочевидна. Даже для взрослых тестировщиков.

Решением был бы перенос упомянутого глагола «избитый» в отношении недогоняющих, но Заратустра же не позволяет.
  • 0

Software Testing Glossary - простыми словами о непростых словах.


#15 Valerko

Valerko

    Новый участник

  • Members
  • Pip
  • 1 сообщений
  • ФИО:БВВ

Отправлено 28 августа 2017 - 13:45

Очень режут глаз примеры, использованные автором статьи:

В примере с дверью, где "Все места, которые можно толкнуть, эквивалентны" .советую автору попробовать толкать ее каждый день поближе к петлям. 

В примере с вводом длинного значения,  "что при печати на экране он выходит за его границы", такое ощущение, что смешались кони и люди, классы эквивалентности и граничные условия

А так статья неплохая, есть над чем поразмыслить.


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных