Уважаемые тестировщики, прочитала по классы эквивалентности и не совсем поняла.
Объясните пожалуйста что это такое и на примерах.
Буду очень благодарна :)
Попробую коротенько объяснить, как я понимаю классы эквивалентности (лень сверятся с книжками, но надеюсь, что ничего сильно не перевру). Грубо говоря, классы эквивалентности - это множества входных данных, каждое значение из которых обрабатывается одинаковым образом и приводит к одному и тому же результату.
Ну, какой-либо самый простой пример: в зависимости от количества покупаемых штук товара, цена за штуку товара будет разной. И нам надо проверить, правильно ли определяется цена в зависимости от введённого количества штук товара. Пусть известно, что при количестве от 1 до 100 штук - цена за штуку будет 10 рублей, больше 100 штук - 9 рублей, а если больше 500 - то 7 рублей. Тут выделяется сразу 3 класса эквивалентности для входного параметра «штуки» относительно выходного «цена за штуку»:
1: от 1 до 100 2: от 101 до 500 3: от 501 до бесконечности
Ну и с точки зрения проверок, нам не надо проверять каждое возможное значение количества товаров, нам надо проверить по одному значению из каждого класса эквивалентности. Допустим, мы возьмём 5, 247 и 624.
На самом деле я описала только классы эквивалентности среди допустимых значений. А по-хорошему, надо ещё рассмотреть классы эквивалентности недопустимых значений. Если значения отрицательные, что для «количества покупаемых штук товара» явно недопустимо, то это тоже отдельный класс:
4: от 0 до минус бесконечности
И мы для теста возьмём, допустим, -184.
В общем-то тут можно ещё поразглагольствовать на тему бесконечностей: вероятно, что наша гипотетическая программа имеет какие-то ограниченная по принимаемым значениям. И это может, допустим, разбить наш 3й класс на два отдельных класса: [от 501 до (максимального корректно обрабатываемого значения)] и [от (максимального корректно обрабатываемого значения)+1 до совсем бесконечности]. А ещё можно поразмышлять над тем, куда включать 0. А когда речь идёт о недопустимых значениях, тут вообще можно начать рассматривать, допустим, не числовые, но и буквенные значения... Над этим стоит поразмышлять, но не факт, что стоит этим загромождать сейчас мой простой примерчик :)
Обычно при использовании классов эквивалентности используется ещё и анализ граничных значений - того, что находится на стыках и на границах классов эквивалентности, потому что это потенциально проблемные места. Чаще всего при этом рассматриваются само граничное значение, -1 и +1 (единицы тут условные). Это в общем-то отдельная тема, но рассматриваются они обычно вместе.
Ну и ещё хочу заметить, что всё выглядит просто на простом примере с числами. Но классы эквивалентности могут применяться и к гораздо более сложным задачам, когда входными параметрами будут не просто числа, но состояния системы, наборы данных и т.п. Мы просто выделяем множества условий, на которые наша система должна реагировать одинаковым образом, и проверяем только один вариант из каждого множества.
Вообще мне кажется, что любой тестер интуитивно использует классы эквивалентности, просто часто не думает о том, что это так называется.
P.S. Вы не описали, что именно вам непонятно, поэтому прошу прощения, если описала что-либо понятно. Если что - уточняйте, будем думать вместе :)
Ох, что-то мне сегодня комментарии как-то плохо удаются. В постскриптуме я имела в виду: "прошу прощения, если описала что-либо [и так уже вам] понятноЕ".
И спрашивайте, если что непонятно - нет лучшего способа с чем-то разобраться, чем попытаться объяснить это кому-либо другому :)
Таня, вопросы задавать лучше не в блогах, а на форумах. Из русскоязычных этот самых приличный: http://it4business.ru/forum/forum192.html
Блоги люди читают и комментируют, а на форумах общаются, отвечают на вопросы и т.д.
При всем при этом, прежде чем задать вопрос аудитории, его следует задать как минимум гуглу или яндексу, и как правильно сказала Лена, спросить что именно не понятно, а не кидать общий вопрос.
Татьяна, мы добавили блог в трансляцию на Software-Testing.Ru
Если хотите -- можете прислать на адрес info@software-testing.ru небольшое описание блога (2-3 абзаца), информацию об авторе -- и мы опубликуем это описание, как это сделано для других блогов: http://www.software-testing.ru/blogs/details
> Алексей Булат. Алексей, спасибо за совет по поводу форума, я поняла, исправлюсь. По поводу классов эквивалентности, то я конечно же первым делом в goole, но мне хотелось именно конкретного примера, благодаря Елене, я его получила :)
Удивительно, что никто не ответил. Может потому, что ваш блог не транслируется вместе с остальными?..
ОтветитьУдалитьА вопрос ещё актуален?
Этот комментарий был удален автором.
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьВ общем актуально или нет, но решила отписаться.
ОтветитьУдалитьПопробую коротенько объяснить, как я понимаю классы эквивалентности (лень сверятся с книжками, но надеюсь, что ничего сильно не перевру). Грубо говоря, классы эквивалентности - это множества входных данных, каждое значение из которых обрабатывается одинаковым образом и приводит к одному и тому же результату.
Ну, какой-либо самый простой пример: в зависимости от количества покупаемых штук товара, цена за штуку товара будет разной. И нам надо проверить, правильно ли определяется цена в зависимости от введённого количества штук товара. Пусть известно, что при количестве от 1 до 100 штук - цена за штуку будет 10 рублей, больше 100 штук - 9 рублей, а если больше 500 - то 7 рублей. Тут выделяется сразу 3 класса эквивалентности для входного параметра «штуки» относительно выходного «цена за штуку»:
1: от 1 до 100
2: от 101 до 500
3: от 501 до бесконечности
Ну и с точки зрения проверок, нам не надо проверять каждое возможное значение количества товаров, нам надо проверить по одному значению из каждого класса эквивалентности. Допустим, мы возьмём 5, 247 и 624.
На самом деле я описала только классы эквивалентности среди допустимых значений. А по-хорошему, надо ещё рассмотреть классы эквивалентности недопустимых значений. Если значения отрицательные, что для «количества покупаемых штук товара» явно недопустимо, то это тоже отдельный класс:
4: от 0 до минус бесконечности
И мы для теста возьмём, допустим, -184.
В общем-то тут можно ещё поразглагольствовать на тему бесконечностей: вероятно, что наша гипотетическая программа имеет какие-то ограниченная по принимаемым значениям. И это может, допустим, разбить наш 3й класс на два отдельных класса: [от 501 до (максимального корректно обрабатываемого значения)] и [от (максимального корректно обрабатываемого значения)+1 до совсем бесконечности]. А ещё можно поразмышлять над тем, куда включать 0. А когда речь идёт о недопустимых значениях, тут вообще можно начать рассматривать, допустим, не числовые, но и буквенные значения... Над этим стоит поразмышлять, но не факт, что стоит этим загромождать сейчас мой простой примерчик :)
Обычно при использовании классов эквивалентности используется ещё и анализ граничных значений - того, что находится на стыках и на границах классов эквивалентности, потому что это потенциально проблемные места. Чаще всего при этом рассматриваются само граничное значение, -1 и +1 (единицы тут условные). Это в общем-то отдельная тема, но рассматриваются они обычно вместе.
Ну и ещё хочу заметить, что всё выглядит просто на простом примере с числами. Но классы эквивалентности могут применяться и к гораздо более сложным задачам, когда входными параметрами будут не просто числа, но состояния системы, наборы данных и т.п. Мы просто выделяем множества условий, на которые наша система должна реагировать одинаковым образом, и проверяем только один вариант из каждого множества.
Вообще мне кажется, что любой тестер интуитивно использует классы эквивалентности, просто часто не думает о том, что это так называется.
P.S. Вы не описали, что именно вам непонятно, поэтому прошу прощения, если описала что-либо понятно. Если что - уточняйте, будем думать вместе :)
Конечно актуален. Спасибо, что ответили.
ОтветитьУдалитьОх, что-то мне сегодня комментарии как-то плохо удаются.
ОтветитьУдалитьВ постскриптуме я имела в виду: "прошу прощения, если описала что-либо [и так уже вам] понятноЕ".
И спрашивайте, если что непонятно - нет лучшего способа с чем-то разобраться, чем попытаться объяснить это кому-либо другому :)
Мне был важен пример, спасибо! Очень подробно, то, что нужно!
ОтветитьУдалитьКак сделать, чтобы транслировался?
Нужно написать письмо на портал software-testing.ru - вот тут вы найдёте информацию http://software-testing.ru/about/blogs
ОтветитьУдалитьТолько сами решайте, готовы ли вы к трансляции своего блога :)
Лена, вопросов у меня много. Буду очень благодарна если Вы дадите свой e-mail.
ОтветитьУдалитьНа всякий случай, оставлю свой - lutner@gmail.com
Спасибо.
Смотрите почту.
ОтветитьУдалитьТаня, вопросы задавать лучше не в блогах, а на форумах. Из русскоязычных этот самых приличный: http://it4business.ru/forum/forum192.html
ОтветитьУдалитьБлоги люди читают и комментируют, а на форумах общаются, отвечают на вопросы и т.д.
При всем при этом, прежде чем задать вопрос аудитории, его следует задать как минимум гуглу или яндексу, и как правильно сказала Лена, спросить что именно не понятно, а не кидать общий вопрос.
Вот.
Татьяна, мы добавили блог в трансляцию на Software-Testing.Ru
ОтветитьУдалитьЕсли хотите -- можете прислать на адрес info@software-testing.ru небольшое описание блога (2-3 абзаца), информацию об авторе -- и мы опубликуем это описание, как это сделано для других блогов: http://www.software-testing.ru/blogs/details
> Алексей Булат.
ОтветитьУдалитьАлексей, спасибо за совет по поводу форума, я поняла, исправлюсь.
По поводу классов эквивалентности, то я конечно же первым делом в goole, но мне хотелось именно конкретного примера, благодаря Елене, я его получила :)
> Алексей Баранцев.
ОтветитьУдалитьСпасибо, что добавили блог.