Что такое эквивалентность что такое класс эквивалентности

говориМ о тестировании
простым языком

Что такое эквивалентность что такое класс эквивалентности. Смотреть фото Что такое эквивалентность что такое класс эквивалентности. Смотреть картинку Что такое эквивалентность что такое класс эквивалентности. Картинка про Что такое эквивалентность что такое класс эквивалентности. Фото Что такое эквивалентность что такое класс эквивалентности

Что такое эквивалентность что такое класс эквивалентности. Смотреть фото Что такое эквивалентность что такое класс эквивалентности. Смотреть картинку Что такое эквивалентность что такое класс эквивалентности. Картинка про Что такое эквивалентность что такое класс эквивалентности. Фото Что такое эквивалентность что такое класс эквивалентности

Тест-дизайн. Классы эквивалентности и граничные значения

В этой статье мы разберем одну из самых известных и фундаментальных техник, технику выделения классов эквивалентности и граничных значений.

В чем суть техники?

Основная задача определения классов эквивалентности и граничных значений — «уйти» от дублирующих проверок. Таким образом, мы сократим количество однотипных тестов до необходимого минимума. Как это можно представить?

Предположим, у нас много-много разных булок, сделаны они по одному рецепту, а вот форма у них немного разная. А теперь представьте, что вам необходимо определить вкус каждой булки. Что вы будете делать? Попробуете все или возьмете только одну, потому что остальные сделаны аналогично? Я думаю второй вариант будет более оптимальным)

В тестировании ситуация аналогичная. Только вместо булок наши тесты. И все немного сложнее.

Классы эквивалентности

Сначала дадим определение классам эквивалентности.

Эквивалентная область (equivalence partition) —часть области входных или выходных данных, для которой поведение компонента или системы, основываясь на спецификации, считается одинаковым.

Скорей всего было не очень понятно…

Что такое эквивалентность что такое класс эквивалентности. Смотреть фото Что такое эквивалентность что такое класс эквивалентности. Смотреть картинку Что такое эквивалентность что такое класс эквивалентности. Картинка про Что такое эквивалентность что такое класс эквивалентности. Фото Что такое эквивалентность что такое класс эквивалентности

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

Например, у нас есть 10 тестов из одного класса. Если один из этих тестов проходит корректно, и то все остальные пройдут корректно. И наоборот, если один из тестов приведет к падению системы, то и все остальные тесты, также приведут к падению.

Пока все еще абстрактно, давайте конкретизируем. Предположим, у нас планируется акция «Скидка 10% на покупку от 5 товаров». Нам необходимо проверить функционал скидки в зависимости от количества товаров. Что будем делать? Есть два варианта проверки:

Что такое эквивалентность что такое класс эквивалентности. Смотреть фото Что такое эквивалентность что такое класс эквивалентности. Смотреть картинку Что такое эквивалентность что такое класс эквивалентности. Картинка про Что такое эквивалентность что такое класс эквивалентности. Фото Что такое эквивалентность что такое класс эквивалентности

Тестов получается очень много.

2. Попробовать выделить классы эквивалентности и оптимизировать проверки.

Пойдем по второму варианту, он более эффективный. У нас всего два разных результата выполнения теста — со скидкой и без скидки. Логично предположить, что класса эквивалентности тоже будет два. В одном тесты будут проверять наличие скидки в 10%, в другом ее отсутствие.

Графически это можно представить следующим образом:

Что такое эквивалентность что такое класс эквивалентности. Смотреть фото Что такое эквивалентность что такое класс эквивалентности. Смотреть картинку Что такое эквивалентность что такое класс эквивалентности. Картинка про Что такое эквивалентность что такое класс эквивалентности. Фото Что такое эквивалентность что такое класс эквивалентности

Т.е. какой бы мы тест не взяли из первого класса, мы получим скидку в 0%, аналогично для второго класса эквивалентности.

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

Но теперь вопрос, какие тесты брать? Есть ли разница между ними, может быть все-таки есть небольшие отличия?

Граничные значения

Путем долгого времени наблюдения за разработкой и анализа багов, специалисты пришли к выводу, что большинство ошибок возникает именно на границах между классами эквивалентности. Т.е. нам в первую очередь важно проверить переходы на стыке границ каждого класса, так как именно там велик риск возникновения ошибок.

Поэтому для эффективного тестирования нам необходимо выделить у каждого класса граничные значения. Давайте попробуем сделать на нашем примере:

Что такое эквивалентность что такое класс эквивалентности. Смотреть фото Что такое эквивалентность что такое класс эквивалентности. Смотреть картинку Что такое эквивалентность что такое класс эквивалентности. Картинка про Что такое эквивалентность что такое класс эквивалентности. Фото Что такое эквивалентность что такое класс эквивалентности

Итого, 4 теста вместо 100 с учетом сохранения тестового покрытия.

Наша задача, как тестировщика, уметь правильно определить и работать с классами эквивалентности и граничными значениями. Выше мы рассмотрели пример с позиции черного ящика. У него есть существенные минус, мы не знаем как реализована работа функционала с точки зрения кода. Следовательно, не можем со 100% уверенностью правильно выделить классы эквивалентности.

Давайте рассмотрим пример посложней. Нам необходимо проверить корректность бокового меню на сайте из 10 страниц. Вот такое:

Страницы сами по себе одинаковые и отличаются только содержанием, боковое меню зрительно полностью идентично.

Только что пройденный материал подсказывает нам, что есть один класс эквивалентности и он включает в себя все 10 страниц. Но на практике есть как минимум два варианта:
1. Если сайт сделан на HTML, в том числе и боковое меню, то необходимо проверять КАЖДУЮ страницу, так как на каждой странице боковое меню работает отдельно от остальных.
2. Если сайт сделан с помощью, например, шаблонизаторов, то тогда выделить 10 страниц в класс эквивалентности можно, так как код меню хранится отдельно.

Т.е. в зависимости от реализации, классы будут разные. Как это определить? Если вы знаете языки программирования и у вас есть доступ в репозиторий, то посмотреть в код. Если вы не поняли, что я сейчас написал, то подойдет и второй вариант) Поговорите с программистом, который делал эту функциональность и уточните у него, правильно ли вы делаете.

Источник

Разговоры о тестировании

четвер, 9 січня 2014 р.

Классы эквивалентности и Граничные значения

На практике классы эквивалентности практически обязательны при тестировании всевозможных форм и полей ввода. Но Если заглянуть немного в глубь реализации функционала то эта техника может стать полезной не только для тестирования форм и полей ввода.

Приведем еще один пример (не такой классический как предыдущий, но не менее полезный):

У нас есть система работы с файлами. В системе возможны четыре типа файлов А, В, С, D. Каждый файл может находиться в одном из пяти состояний: Created, Edited, Loaded, Saved, Deleted.

Файл типа А может быть удален только в состоянии Created;
Файл типа В может быть удален только в состоянии Edited;
Файл типа C может быть удален только в состоянии Loaded;
Ну а файл типа D можно удалить только в состоянии Saved.
Это громоздкое условие можно неплохо иллюстрирует следующая таблица:

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

Если же у вас достаточно времени на проведение 20ти тестов, то следует провести эти 20 тестов и спать спокойно. Жаль что времени почти всегда не хватает.

Граничные значения

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

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


Граничными значениями как видно являются 1 и 1000. Поскольку эта техника подразумевает проверку не только граничного значения но и двух соседних то к нашему набору тестов прибавятся еще 6 проверок (0, 1, 2, 999, 1000, 1001).

Сами диапазон допустимых значений и особенно их границы за частую не так тривиальны как в нашем примере, но если вы можете их выделить и скомбинировать с классами эквивалентности то вы получите хорошее (качественное) покрытие тестами вашей функциональности.

Эпилог

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

Источник

MT1102: Линейная алгебра (введение в математику)

Классы эквивалентных элементов и их свойства

Пусть %%R%% — отношение эквивалентности на множестве %%M%% и %%a%% — некоторый элемент из %%M%%. Рассмотрим множество всех элементов из %%M%%, находящихся в отношении %%R%% к элементу %%a%%.

Классом эквивалентности %%M_a%%

называется множество всех элементов %%M%%, находящихся в отношении %%R%% к элементу %%a%%, то есть множество

Пример

Пусть %%M%% — множество всех жителей России и %%R%% — отношение эквивалентности «проживать в одном городе». Найти классы эквивалентных элементов %%M_a%% для %%a \in M%%.

В зависимости от элемента %%a%% получаем несколько классов эквивалентности. Например, класс эквивалентности жителей Москвы или Санкт-Петербурга.

Свойства классов эквивалентности

Пусть %%R%% — отношение эквивалентности на множестве %%M%% и %%M_a, M_b, \dotsc, M_z, \dotsc%% — все классы эквивалентности для отношения %%R%%. Тогда эти классы имеют следующие свойства.

Свойство 1

Действительно, по определению, класс %%M_a = \

a\>%%. Тогда для элемента %%a%% должно выполняться условие %%a \in M_a \leftrightarrow a

a%%, которое выполняется в связи с тем, что отношение %%R%% рефлексивно по определению отношения эквивалентности. Следовательно, %%a \in M_a%%.

Как следствие этого свойства можно сказать, что всякий класс %%M_a%% является непустым множеством.

Свойство 2

Свойство 3

Свойство 4

Разбиение множества

Совокупностью подмножеств %%M_i%%, где %%i \in I%% (множеству индексов), множества %%M%% называется разбиением множества %%M%% если выполняются следующие условия:

Теорема. Пусть %%R%% — отношение эквивалентности на множестве %%M%%. Тогда совокупность классов эквивалентности множества %%M%% образует его разбиение.

Действительно, если в качестве подмножеств %%M_i%% взять классы эквивалентности %%M_a%%, то все три условия выполняются:

Все условия определения разбиения выполнены. Следовательно классы эквивалентности есть разбиение множества %%M%%.

Примеры

Пусть дано множество %%M = \<1, 2, 3, 4, 5, 6, 7, 8, 9, 0 \>%%, тогда разбиением этого множества могут быть следующие совокупности множеств:

Но следующие совокупности не являются разбиением:

Совокупность множеств %%C_i%% не является разбиением, т.к. оно не удовлетворяет условию 3 разбиения множеств: множества %%C_1%% и %%C_3%% имеют общий элемент %%3%%.

Совокупность множеств %%D_i%% не является разбиением, т.к. оно не удовлетворяет условию 1 разбиения множеств: множество %%D_4%% пусто.

Совокупность множеств %%E_i%% не является разбиением, т.к. оно не удовлетворяет условию 2 разбиения множеств: объединение множеств %%E_1, E_2%% и %%E_3%% не образует множество %%M%%.

Источник

Техника тест-дизайна: Классы эквивалентности (equivalence partitioning)

Что такое эквивалентность что такое класс эквивалентности. Смотреть фото Что такое эквивалентность что такое класс эквивалентности. Смотреть картинку Что такое эквивалентность что такое класс эквивалентности. Картинка про Что такое эквивалентность что такое класс эквивалентности. Фото Что такое эквивалентность что такое класс эквивалентности

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

Отдельно о каждой технике тест-дизайна можно почитать:

Содержание:

Введение в классы эквивалентности

В интернете полно примеров, подобных этому: «А давайте разобьём от 1 до 100 на классы эквивалентности!». А смысл, когда человек, читающий и ищущий ответ, в 100-й раз натыкается на один и тот же пример? Это знаете, как научить считать первоклассника до десяти, а на контрольной дать вариант – «Вычислите интеграл».

Если не читали, то классы в данном случае будут:

Разобрались? А теперь задание «Найдите классы эквивалентности у поля логин и пароль и напишите тест-кейсы, чек-листы для проверки». Яркий пример, не так ли?

Техника анализа классов эквивалентности

Начнем с определения классов эквивалентности. Что же это такое?

Классы эквивалентности (equivalence partitioning) – это разбиение функционала(модуля) на наборы данных, которые ведут себя в пределах этих наборов одинаково.

С помощью данной техники анализа классов, тестировщики сокращают количество необходимых тестов, сохраняя достаточное тестовое покрытие.

Например, мы знаем, система должна вести себя на 1000-ти значениях одинаково. Зачем проверять всю 1000, если можно проверить самые необходимые места, сократив тестирование до 10 кейсов?

В каждом из правил, есть исключения и не факт, что на 567 значении система или модуль не даст сбой. Мы можем только догадываться об этом. С обратной стороны, тестируя медицинское или сверхточное оборудование, необходимо проверить каждое из значений. Зависит от требований бизнеса.

Вы спросите: «Как возможно такое, когда мы проверили 500 значений из 1000, а ошибка будет на 501?»

Предположим, у нас интернет магазин, продающий кроссовки «Nike», «Adidas», «Puma» с разной ценой, имеющий в полном ассортименте 10000 наименований товара.

Поступило требование, говорящее: «Кроссовки «Nike» с параметром в БД «Сезонный Nike» в ноябре 2021 года будут продаваться со скидкой в 15%».

Что делаем мы? Не проверяем все кроссовки фирмы «Nike», делаем выборочно по определенным параметрам, дабы несколько тысяч тестов превратить в 10. По итогу, так и получится, мы 10-ю кейсами проверим 99,99% требований, убедившись, что кроссовки фирмы «Nike» продаются с 15% скидкой. Молодцы? Но не учитываем человеческий фактор, где сотрудник в пятницу вечером, запаренный делами(да и домой хочется), один товар кроссовок «Nike» не обозначил как «Сезонный Nike». Получаем соответствующий результат, показывающий наглядно, что к данным кроссовкам не применится скидка в 15%. Чтобы это выявить, нам бы пришлось перебрать ассортимент в несколько тысяч товаров. Неуверен, что подобный расклад оценит руководство, когда вы положите на стол отчет о трудозатратах подобного исключения из правил.

Исходя из вышесказанного, можно выделить следующие тезисы признаков эквивалентности:

— в случае выявления ошибки одним из тестов набора, то остальные, скорее всего, её тоже выявят;

— в случае не выявления ошибки одним из тестов набора, то остальные, скорее всего, её тоже не выявят;

— «разбивают» модуль на операции и соответствующее поведение при заданных параметрах;

— использование схожих данных для получения одинакового результата из набора классов.

Для применения техники, достаточно следовать действиям:

*Не стоит следовать правилу «Возьму, как в книге, по одному значению, так правильнее». Смотрите по обстоятельствам, порой бывает лучше потратить на 5 минут больше, взяв несколько значений, необходимых для лучшего покрытия возможных проблемных мест, нежели потерять ресурсы и времени в 10 раз больше.

Существует 2 типа класса эквивалентности:

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

Пример классов эквивалентности для времени (распорядка дня)

Весь ваш день можно разбить на классы эквивалентности. Смотрите, как это просто:

Видите сколько классов выделили? И взяв значение из любого набора, например, 9:01-18:00, что в 9:02 мы на работе, что в 12:58, в 16:00, неважно. В данном наборе(диапазоне) мы на работе. И нет смысла проверять каждую минуту, ибо это не целесообразно, трудоемко и затратно. Нам достаточно взять пару значений, удостовериться в их одинаковом поведении, и вынести вердикт – да, протестировано и работает корректно «Passed».

В зависимости от типа поля для ввода, последующие тесты будут варьироваться: ввод символов, отличных от цифр, отрицательные значения, ввод спецсимволов, ввод больше 23 часов, ввод больше 59 минут и так далее.

Никто не спорит, что в наборе могут быть такие значения, при которых система даст другой результат. Помните, вам необходимо отловить грубые и явные нарушения, а единичные случаи не всегда удаётся поймать.

Чек-лист для проверки распорядка дня, согласно классов эквивалентности:

Действие Результат Комментарий
Проверить статус «Пробуждение»Passed
Проверить статус «Зарядка»Passed
Проверить статус «Завтрак»Passed
Проверить статус «Умывание»FailedОтображается «Сбор на работу»
Проверить статус «Сбор на работу»Passed
Проверить статус «Дорога на работу»Passed
Проверить статус «Работа»Passed
Проверить статус «Дорога домой»Passed
Проверить статус «Душ, отдых, ужин»Passed
Проверить статус «Личные дела»Passed
Проверить статус «Сон»Passed

*Добавил провалившийся тест для примера.

Тест-кейс для проверки распорядка дня, согласно классов эквивалентности:

Название: Проверка статуса «Умывание» на странице распорядка дня

Предусловие: Пользователь user_test 566passw0rd должен быть зарегистрирован в системе

Data:

Шаги:

Действие Ожидаемый результат Фактический результат
#Перейти на страницу распорядка дня /page/timesetСтраница загружена. Блок распорядка присутствуетPassed
#Раскрыть блок распорядка дняБлок раскрыт. В нем отображаются поля для ввода времени.Passed
#Ввести поочередно данные из DataОтображается статус «Умывание»Failed

Комментарий: При вводе 7:20 выдает «Сбор на работу», вместо «Умывание»

Пример классов эквивалентности для шумомера

Предположим, вас взяли в компанию на должность тестировщика. Организация в свою очередь занимается производством и продажей шумомеров(Прибор для измерения шума). Вам дали требования к доработке (ТЗ) и попросили протестировать прибор.

Идея: При увеличении шума, индикатор cz-221(смотрите инструкцию) на приборе должен менять цвет.

П.1. Прибор измеряет в диапазоне от 0 до 130 ДБ. При низком уровне шума, индикатор горит зеленым, среднем желтым, высоком красным. Допускается погрешность в +-1 Дб.

Нам остаётся только разбить на классы эквивалентности и составить необходимую документацию для тестирования.

Выделенные классы(Уровень шума взят произвольно):

По требованиям допускается погрешность в +-1 Дб, логично выделить это в отдельный класс для проверки переходных состояний. Если мы выделим класс от 0-30 с цветом зеленый, а на 30 выдаст желтый, то не факт, что и на 29 не будет желтого. В принципе, можно и исходить из сложившихся обстоятельств, критичным ли является это для бизнеса.

Получив классы эквивалентности, пишем документацию.

Пример чек листа, используя классы эквивалентности:

Действие Ожидаемый результат Результат Комментарий
Проверить индикатор на уровне шума 0-29 дБИндикатор горит зеленым цветомPassed
Проверить индикатор на уровне шума 30-31 дБИндикатор горит либо зеленым, либо желтым цветомPassed
Проверить индикатор на уровне шума 32-59 дБИндикатор горит желтым цветомPassed
Проверить индикатор на уровне шума 60-61 дБИндикатор горит либо желтым, либо красным цветомPassed
Проверить индикатор на уровне шума 62-130 дБИндикатор горит красным цветомPassed
Проверить индикатор на уровне свыше 130 дБИндикатор горит красным цветомPassed

Пример тест-кейса для проверки индикатора cz-221, используя классы эквивалентности

Название: Проверка индикатора cz-221 на средний уровень шума

Предусловие: Получить шумоизолирующие наушники на складе. Получить разрешение на запуск генератора шума.

Data:

Показатель уровня шума Ожидаемый результат
30 дБИндикатор горит либо зеленым, либо желтым цветом
31 дБИндикатор горит либо зеленым, либо желтым цветом
32 дБИндикатор горит желтым цветом
45 дБИндикатор горит желтым цветом
59 дБИндикатор горит желтым цветом
60 дБИндикатор горит либо желтым, либо красным цветом
61 дБИндикатор горит красным цветом

Шаги:

Действие Ожидаемый результат Фактический результат
# Надеть наушникиНаушники плотно надеты, посторонних звуков не слышноPassed
# Включить шумомер cxRG-200Прибор включен, индикатор cz-221 горит зеленымPassed
# Включить генератор шумаГенератор включен, исправенPassed
# Настроить генератор на показатели с уровнем DataГенератор настроенPassed
# Запустить генераторГенератор запущен, на его панели отображается уровень шума согласно DataPassed
# Поднести шумомер cxRG-200 к генератору на расстоянии приблизительно 20 смИндикатор cz-221 шумомера cxRG-200 горит согласно ожидаемого результата DataPassed

Пример классов эквивалентности текстового поля «Имя пользователя»

Подошли к более приближенному примеру. И так, день вы разбили на классы эквивалентности, для шумомера сделали тестовую документацию. Организация решила сделать сайт и вас просят протестировать новое текстовое поле для ввода, предположим, имени пользователя.

П.1. Поле «Имя пользователя» должно иметь возможность вводить от 1 до 50 символов. Пользователь может ввести кириллицу и латиницу, пробелы и дефис между именем. Спецсимволы, отличные от дефиса, запрещены. Имя не должно состоять только из пробелов, до и между словами не должно быть больше 1-ого пробела, все лишние пробелы должны удаляться после отправки. Если есть дефис, то имя должно состоять минимум из 3-х символов

П. 2. Поле находится на странице проверки имени

Требования для текстового поля получили. Приступим на разбивку классов эквивалентности.

Нам известно, что длина должна быть от 1 до 50 символов. Разбив на классы эквивалентности, подводим итоги: 0, 1-50, 51-+бесконечность.

Составляем кейсы на длину поля 0, 1, 3, 25, 50, 51, 60.

3 выделили отдельно, исходя из полученных требований бизнеса, где указано минимальное количество символов с дефисом должно быть равным 3-ём.

Следующим этапом будет проверка на спецсимволы, пробелы, кириллицу, латиницу, дефис. Здесь комбинирование будет зависеть от вашего опыта и требований. Главное, максимально эффективнее найти и покрыть модуль, при меньшем количестве тестов.

Добавим от себя в тесты параметр «Метод ввода», включающий в себя «Ручной ввод», «Копипаст».

В итоге, получаем список выделенных классов эквивалентности:

Длина строки Язык/Кодировка/Ввод Метод ввода
0СпецсимволыРучной ввод
1ПробелыКопипаст
2Дефис
3Кириллица + Латиница + Дефис
25Кириллица + Латиница + Дефис + пробелы
50Пустое поле
51Кириллица + Латиница + спецсимволы
60Кириллица + Латиница

*Красным цветом помечены негативные сценарии

Получили набор классов для текстового поля. Он легко может варьироваться от нужд бизнеса, например, добавлением проверки иероглифов. Впоследствии использовать технику попарного тестирования(pairwise testing). Но как говорилось в начале, данная техника тест-дизайна в другой статье.

После всех манипуляций, можно получить примерно подобный набор проверок:

Длина строки Язык/Кодировка/Ввод Метод ввода
0Пустое поле
1СпецсимволыКопипаст
1ПробелыРучной ввод
3Кириллица + Латиница + ДефисРучной ввод
25Кириллица + Латиница + Дефис + пробелыРучной ввод
50Кириллица + Латиница + Дефис + пробелыКопипаст
50Кириллица + Латиница + Дефис + пробелыРучной ввод
25Кириллица + Латиница + спецсимволыКопипаст
51Кириллица + ЛатиницаКопипаст
60Кириллица + ЛатиницаРучной ввод
60Кириллица + Латиница + пробелыКопипаст

И на основании данных проверок, вы можете составлять чек-листы и тест-кейсы. Помните, покрывайте и делайте свои тесты наиболее эффективными.

Чек-лист для проверки модуля, основываясь на классах эквивалентности:

Действие Ожидаемый результат Результат Комментарий
Оставить поле для имени пустымПоявляется сообщение об ошибке «Введите имя»Passed
Ввести в поле для имени «Кириллица + Латиница + Дефис + пробелы»В поле символы введены, на сервер отправляютсяPassed
Ввести в поле для имени пробелыПоявляется сообщение об ошибке «Введите имя»Passed

Тест-кейс для проверки модуля, основываясь на классах эквивалентности:

Название: Проверка ввода и отправки текстовго поля «Имя пользователя» на странице для проверки имени

Data:

Исходные данные Метод ввода Ожидаемый результат
Пустое полеКопипастОшибка «Введите имя пользователя»
Ручной вводОшибка «Введите имя пользователя»
(Пробел)Ручной вводОшибка «Введите имя пользователя»
Я-vРучной вводПоле успешно отправлено на сервер
Кириллица-Латиница- ДефисРучной вводПоле успешно отправлено на сервер
Кириллица Латиница Defis пробелы а дальшеNamКопипастПоле успешно отправлено на сервер
Барняби Мармадюк Алоёзий Бенджи Kobveb Дартаньян ЕРучной вводПоле успешно отправлено на сервер
#П)н,(ью*лл_а%;\СеXstтон/$КопипастОшибка «Имя пользователя может содержать только кириллицу, латиницу и дефис»
Пабло Диего Hose Франциско де Паула Хуан НепомусеноКопипастОшибка «Поле может содержать максимум 50 символов»
Axe Секстon Теddи Апвqд Виватма Уэйленд Ксилон ЯрдлиR ЗакариРучной вводОшибка «Поле может содержать максимум 50 символов»
Axe Секстon Теddи Апвуд Виватма Уэйленд Ксилон FioКопипастПоле успешно отправлено на сервер

Шаги:

Действие Ожидаемый результат Фактический результат
# Зайти на страницу для проверки имени /name/proofСтраница открыта, поле для имени присутствует, активно для ввода, фокус на нёмPassed
#Ввести данные из таблицы DataПолучить ожидаемый результат из таблицы DataPassed

Заключение

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

В статье, по большому счету, мы разбивали числа на классы эквивалентности. Помимо них есть и другие варианты разбиения:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *