Поиск по этому блогу

понедельник, 5 апреля 2010 г.

Вопрос.

Уважаемые тестировщики, прочитала по классы эквивалентности и не совсем поняла.
Объясните пожалуйста что это такое и на примерах.
Буду очень благодарна :)

14 комментариев:

  1. Удивительно, что никто не ответил. Может потому, что ваш блог не транслируется вместе с остальными?..
    А вопрос ещё актуален?

    ОтветитьУдалить
  2. Этот комментарий был удален автором.

    ОтветитьУдалить
  3. Этот комментарий был удален автором.

    ОтветитьУдалить
  4. В общем актуально или нет, но решила отписаться.

    Попробую коротенько объяснить, как я понимаю классы эквивалентности (лень сверятся с книжками, но надеюсь, что ничего сильно не перевру). Грубо говоря, классы эквивалентности - это множества входных данных, каждое значение из которых обрабатывается одинаковым образом и приводит к одному и тому же результату.

    Ну, какой-либо самый простой пример: в зависимости от количества покупаемых штук товара, цена за штуку товара будет разной. И нам надо проверить, правильно ли определяется цена в зависимости от введённого количества штук товара. Пусть известно, что при количестве от 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. Вы не описали, что именно вам непонятно, поэтому прошу прощения, если описала что-либо понятно. Если что - уточняйте, будем думать вместе :)

    ОтветитьУдалить
  5. Конечно актуален. Спасибо, что ответили.

    ОтветитьУдалить
  6. Ох, что-то мне сегодня комментарии как-то плохо удаются.
    В постскриптуме я имела в виду: "прошу прощения, если описала что-либо [и так уже вам] понятноЕ".

    И спрашивайте, если что непонятно - нет лучшего способа с чем-то разобраться, чем попытаться объяснить это кому-либо другому :)

    ОтветитьУдалить
  7. Мне был важен пример, спасибо! Очень подробно, то, что нужно!


    Как сделать, чтобы транслировался?

    ОтветитьУдалить
  8. Нужно написать письмо на портал software-testing.ru - вот тут вы найдёте информацию http://software-testing.ru/about/blogs

    Только сами решайте, готовы ли вы к трансляции своего блога :)

    ОтветитьУдалить
  9. Лена, вопросов у меня много. Буду очень благодарна если Вы дадите свой e-mail.
    На всякий случай, оставлю свой - lutner@gmail.com
    Спасибо.

    ОтветитьУдалить
  10. Таня, вопросы задавать лучше не в блогах, а на форумах. Из русскоязычных этот самых приличный: http://it4business.ru/forum/forum192.html

    Блоги люди читают и комментируют, а на форумах общаются, отвечают на вопросы и т.д.

    При всем при этом, прежде чем задать вопрос аудитории, его следует задать как минимум гуглу или яндексу, и как правильно сказала Лена, спросить что именно не понятно, а не кидать общий вопрос.

    Вот.

    ОтветитьУдалить
  11. Татьяна, мы добавили блог в трансляцию на Software-Testing.Ru

    Если хотите -- можете прислать на адрес info@software-testing.ru небольшое описание блога (2-3 абзаца), информацию об авторе -- и мы опубликуем это описание, как это сделано для других блогов: http://www.software-testing.ru/blogs/details

    ОтветитьУдалить
  12. > Алексей Булат.
    Алексей, спасибо за совет по поводу форума, я поняла, исправлюсь.
    По поводу классов эквивалентности, то я конечно же первым делом в goole, но мне хотелось именно конкретного примера, благодаря Елене, я его получила :)

    ОтветитьУдалить
  13. > Алексей Баранцев.
    Спасибо, что добавили блог.

    ОтветитьУдалить