Техники тест-дизайна — это набор правил, которые помогают создавать грамотные тест-кейсы в соответствии с определёнными критериями качества и целями тестирования. С помощью этих техник мы можем провести максимум проверок, приложив минимальное количество усилий.
В этой статье тестировщик ВКонтакте Алан Зайнашов расскажет о наиболее популярных техниках тест-дизайна и их применении на практике.
Диаграмма вариантов использования
Это техника, в ходе которой строится диаграмма, описывающая, какая функциональность программы доступна каждой группе пользователей. Представьте перед собой закрытое сообщество ВКонтакте. В нём мы можем встретить администратора, редактора, подписчика и желающего подписаться пользователя. Каждый из них имеет уникальный набор прав, которого нет у представителей других групп.
Изобразим наших героев на схеме, а рядом с ними добавим доступные им действия. От действий проводим стрелочки к тем полям, к которым для ролей имеется доступ. И не будем забывать про негативные кейсы — проверки, которые выполняются с теми тестовыми данными, которые программа не ожидает. Конечный результат должен выглядеть так:
Тестирование. Тест-дизайн
Диаграмма ролей и действий в закрытом сообществе
Когда перед глазами такая диаграмма, тест-кейсы выстраиваются очень легко. Берём любую роль и сперва проверяем наличие доступа к разрешённым разделам. После этого смотрим на то, чтобы человек без прав не мог выполнять иные действия. Превышение прав — довольно серьёзный кейс. Но следуя такой схеме, мы ничего не забудем проверить.
Диаграмма перехода состояний
Следующая диаграмма немного проще. В кружочках обозначаем состояние объекта, а стрелочкой описываем причину его изменения. Простой пример:
Попробуем что-то сложнее: давайте представим, что пользователь хочет отправить свой пост в предложку сообщества. Какой путь он пройдёт, перед тем как будет опубликован? После того как пользователь создаст запись, она появится в предложке и будет там оставаться до того момента, пока до неё не доберётся редактор, а он, в свою очередь, вынесет решение, публиковать её или нет.
Такая схема позволяет нам визуализировать техническое задание и понять, что вообще нужно тестировать. По сути, одна стрелочка — один тест-кейс.
Попарное тестирование
Попарное тестирование — ещё одна техника тест-дизайна, которая обеспечит нам полное тестовое покрытие. Её суть — создавать тест-кейсы таким образом, чтобы проверить все комбинации каждой пары входных параметров. Имеет смысл использовать этот метод, когда мы сталкиваемся с большим количеством входных данных и ограниченными ресурсами. Попробуем составить таблицу вместе:
Для начала определим все переменные и их значения. Представим, что для заказа из лавки у нас было бы специальное приложение со следующими переменными:
- Тип товара: физический, виртуальный;
- Тип доставки: отправка по России, отправка за границу, самовывоз;
- Стоимость заказа: >200 баллов,
- Бонус за Колесо Олега;
- Подарок за ивент: да, нет.
Колесо Олега — это ивент в закрытом сообществе бета-тестирования ВКонтакте, приуроченный к Новому году — 2022, в ходе которого у тестировщиков была возможность выиграть огромное количество призов, начиная от значков, заканчивая 500 баллами.
Если мы захотим проверить все возможные комбинации, то нам потребуется 48 тест-кейсов, и это будет огромным числом для тестирования формы. Когда мы определились с переменными, отсортируем их так, чтобы сначала шли те, что содержат наибольшее количество значений:
Поочерёдно начинаем заполнять таблицу: в «Тип доставки» пишем каждую переменную дважды, так как следующий столбец содержит два возможных варианта. Сразу же заполняем «Тип товара», вписывая туда оба значения для каждого набора из первого столбца.
При заполнении следующих полей нужно обратить внимание на то, чтобы у нас везде были уникальные комбинации между столбцами, поэтому меняем некоторые поля местами. Если бы мы оставили всё как есть, то тогда остались без таких кейсов как «Физический200Виртуальный» и«Нет
Дизайнер VK. Что делает продуктовый дизайнер.
Чтобы составить таблицу, по горизонтали указываем комбинацию всех условий и в самом низу результат, происходящий при определённом наборе тестовых данных, в нашем случае — размер скидки. По вертикали — пишем количество тест-кейсов, которые потом наполнятся входными данными. Всего у нас четыре условия, каждое из которых имеет два возможных варианта. Возводим двойку в четвёртую степень и получаем 16 возможных пересечений, следовательно, делаем 16 столбцов. Это кажется небольшим числом, однако, если держать эти кейсы в голове, можно что-то упустить.
Теперь можно создать наши тест-кейсы. Если условие выполняется — ставим в клетку 1, если нет — 0. Чтобы каждый кейс был уникальным, воспользуемся дискретной математикой. При заполнении первой строки берём количество ячеек, то есть 16 и делим его на 2, получаем 8. Первые восемь клеток заполняем нулями, вторые — единицами. При заполнении второй строки делим 8 на 2 и пишем сначала 4 нуля, затем 4 единицы. Следующие строки заполняем аналогично: делим последнее полученное число на 2 и чередуем нули и единицы в таком порядке.
Источник: dzen.ru
Тестовое задание на стажировку VK Департамент дизайна
Внеплановая публикация, которой я хочу поделиться в этот понедельник. В этой записи я расскажу немного о своем тестовом задании на стажировку VK 2022. Как мы знаем из прошлой записи, тема тестового задания была: записи со сроком жизни или по-другому исчезающие публикации с бомбочкой.Сразу я представил интерактивные публикации в которых друзьях и подписчики автора могут содействовать: поздравлять с праздником, следить за отсчетом, слушать голосовое сообщение или вовсе автор решил создать цепочку интерактива.
Данную функцию я назвал «Момент», точка входа в данный раздел расположилась через новое меню публикации контента на главной странице мобильного приложения. Также при первом входе, ВКонтакте дает знать о том, что появилась новая возможность, которой пользователь может воспользоваться уже сейчас.
На старте появится специальная заглушка с экскурсией о новой функции и её возможностях. При нажатии на кнопку «Попробовать» пользователь увидит возможные форматы для публикации контента, среди них есть: Голосовое сообщение, фотографии в моменте, короткая фраза или цитата, стикер, интерактив или обратный отсчет.
После выбора необходимого формата, появляется следующий этап — заполнение формы и публикация. В данном случае выбран интерактив и автору необходимо заполнить: текст публикации, загрузить изображение, текст на кнопке, а снизу расположилась информация о том, что такая запись живет всего 24 часа.
После нажатия на кнопку «Опубликовать» запись появляется на стене автора и в ленте друзей и подписчиков. Возле фотографии пользователя отображается специальная метка бомбочки, а возле даты отображается формат контента. При нажатии на который отображается информация о данной записи и формате в целом.
Так как рассматриваем интерактив, то здесь у друзей и подписчиков есть возможность просмотреть выставленную фотографию и кнопка обратной связи — после отправки автору придет уведомление в колокольчик.
Также например у голосового сообщения есть кнопка прослушивания, а у обратного отсчета кнопка напоминания — так подписчик или друг не забудет о предстоящем событии автора.
Что касаемо исчезания записи, она исчезает автоматически, но если автор или другой пользователь находился в это время в ленте или на своей стене, то увидит специальную плашку с информацией о том, что жизнь данной записи закончилась и от нее осталось «собстна» ничего и ее можно скрыть.
Источник: vc.ru
Шпаргалка по техникам тест дизайна
Ежедневной задачей инженера по контролю качества (QA Engineer) является создание тест-кейсов для проверки требований продукта. В этой статье я собрал для вас техники проектирования тестов, которые помогут оптимизировать ваш набор тестов.
#1 Классы эквивалентности
Является основной техникой проектирования тестов, которую должен использовать каждый инженер по контролю качества.
Смысл этого подхода заключается в выборе значений, представляющих различные классы тестовых данных, чтобы мы могли проверить требования к продукту.
Пример
У меня есть калькулятор инвестиций, который содержит поле процента прибыли, которое мне необходимо указать. Разрешенные значения находятся в диапазоне от 1 до 100 по требованию заказчика.
Шаг 1: Определите эквивалентные классы:
Шаг 2: Выберите одно значение для каждого класса. И у нас есть следующие тест-кейсы для проверки: 50, -10, 146, aBc, !
Где использовать?
Везде! При тестировании пользовательского интерфейса (UI) — это поля, даты, конкретные кнопки. При тестировании API нам нужно проверить все возможные параметры в теле запроса (body), заголовках (headers), пути (path) или параметрах запроса (query parameters).
#2 Граничные значения
Эта техника является «братом» разбиения на классы эквивалентности.
Смысл этого подхода заключается в выборе значений на границах эквивалентных классов с минимальным шагом.
Пример:
Интернет-магазин предоставляет скидку 10%, если сумма покупки превышает $100.
Шаг 1: Определите эквивалентные классы и границы каждого из них:
- Сумма покупки
- Сумма покупки > $100
Шаг 2: Выберите значения, находящиеся на границе этих классов с минимальным отклонением, а также само граничное значение:
- Сумма покупки = $99.99: скидка не применяется
- Сумма покупки = $100: скидка не применяется
- Сумма покупки = $100.01: скидка применяется
Где использовать?
Ответ тот же, что и для разбиения на классы эквивалентности — везде.
#3 Причинно-следственный анализ
Каждое приложение ведет себя схоже — производит определённый отклик на каждое действие пользователя.
Этот подход заключается в систематизации карты влияния на приложение. Знание того, какое условие должно привести к какому-либо отклику, может помочь нам оптимизировать количество тест-кейсов и обеспечить соответствующее покрытие.
Пример:
Как пользователь, я заполняю поля логина и пароля и нажимаю кнопку OK. Я ожидаю, что мои данные пользователя будут сохранены в базе данных. Это простой пример, чтобы помочь вам понять технику. Более сложные случаи могут быть рассмотрены в будущем.
- Шаг 1: Определите карту причин и откликов.
- Шаг 2: Создайте таблицу принятия решений на основе этой карты.
Где использовать?
Эта техника может быть использована в случаях, когда у нас есть неочевидные зависимости и сложные условия для принятия решения. Она также может быть применена, когда наши действия влияют на хранение данных или другие внешние сервисы. Стоит отметить, что эта техника хорошо сочетается с диаграммами состояний и последовательности.
#4 Прогнозирование ошибок
Этот подход основан на вашем предыдущем опыте использования других аналогичных приложений / платформ. Предполагается, что вы знаете некоторые ситуации, которые могут вызвать ошибки и запутать пользователя с неожиданными результатами.
Пример
В предыдущем сценарии мы можем не предоставлять данные вообще, предоставлять специальные символы в качестве имени пользователя, только цифры и т. д.
- Шаг 1: Определите отрицательные случаи для функциональности, которую нужно протестировать на основе каждой техники проектирования тестов.
- Шаг 2: Определите, что ожидается для каждого отрицательного сценария из шага #1.
Где использовать?
Везде, где пользователь может предоставлять данные. Для UI это могут быть формы, флажки, кнопки и т. д. Для API-сервисов — параметры запроса, параметры пути, параметры тела.
#5 Попарное тестирование
Этот подход основан на большом количестве входных параметров. Чем больше параметров, тем больше вероятность ошибки. Наша цель как специалиста по тестированию — сократить количество тест-кейсов до оптимального. Подход парного тестирования поможет нам в этом.
Суть его заключается в том, чтобы рассмотреть все возможные комбинации каждой пары входных параметров.
- Шаг 1: Определите возможные параметры и их значения для функциональности, которую необходимо протестировать.
- Шаг 2: Создайте тест-кейсы, чтобы включить все возможные пары между каждыми 2 параметрами. Вы можете использовать инструменты, такие как https://pairwise.teremokgames.com/, чтобы облегчить свою работу.
Где использовать?
Когда у вас большое количество входных параметров и большое количество возможных значений параметров. Это может быть применено к приложениям с графическим интерфейсом и API-приложениям.
Ее стоит использовать в том случае, когда входные данные связаны друг с другом. Точнее результат выполнения теста напрямую зависит от того, какие комбинации данных будут подаваться на входе.
#6 Диаграмма состояний
Тестирование приложения связано с последовательностью экранов (страниц), созданием/чтением/обновлением/удалением разных типов объектов. Диаграммы состояний могут помочь нам охватить все ветви для таких объектов и экранов.
Смысл данного подхода заключается в создании карты переходов для каждого типа объекта и создании набора тестов, охватывающих все переходы между состояниями.
Пример:
Пользователь имеет возможность написать комментарий к посту. Затем он может изменить или удалить этот комментарий. У комментариев есть несколько состояний: создан, изменен, удален. Каждое из этих состояний может быть характеризовано набором уникальных свойств.
- Шаг 1: Определите объект, который мы хотим протестировать.
- Шаг 2: Нарисуйте прямоугольник для каждого состояния, определенного для объекта.
- Шаг 3: Создайте переходы между состояниями и отметьте каждый из них связанным действием.
- Шаг 4: Вы готовы создавать положительные и отрицательные тест-кейсы.
Где использовать?
Прежде всего, при тестировании моделей объектов домена. Этот метод можно применять и к части пользовательского интерфейса, как уже упоминалось ранее. Мы можем охватить все переходы между экранами (страницами) пользовательского интерфейса и создать тестовые случаи, проверяющие переключение между ними.
#7 Таблица принятия решений
Эта техника помогает наглядно изобразить комбинаторику условий из требований. Это помогает нам сократить количество ненужных тестов и предоставить наиболее эффективный набор тестов.
Этот подход помогает нам увидеть зависимости между тестовыми данными и конечным результатом и увидеть, действительно ли нужны ли нам некоторые сценарии, потому что они могут быть покрыты другими.
Пример
Водитель хочет купить страховку. Цена зависит от общего опыта и прошлых инцидентов. Допустим, если у меня есть 5 лет опыта, я могу получить скидку 10% от базовой цены (100 долларов), а если у меня не было аварий за последний год, то я могу получить еще 10%.
- Шаг 1: Подготовьте список входных параметров с возможными доступными значениями:
- Шаг 2: Создайте строки с каждым именем параметра в первом столбце.
- Шаг 3: Создайте тестовую таблицу на основе всех возможных комбинаций параметров и заполните эти данные в следующих столбцах таблицы.
- Шаг 4: Попробуйте найти тестовые примеры, которые «дублируются», например, где результаты зависят от 1 параметра, а остальные параметры не имеют значения. Эти тестовые случаи могут быть исключены из окончательного набора тестов.
См. такую таблицу ниже. Там мы не могли исключить ни одного теста, потому что пример очень простой и понятный, но в реальных задачах мы можем иметь 20 параметров со сложной логикой:
Где использовать?
Таблица решений может описывать сложные правила/требования. Условия — это входные данные, действия — это ожидаемый результат, а столбцы — тестовые примеры.
Заключение
В этой статье я создал для вас шпаргалку по техникам тест дизайна. Каждую из них, конечно, следует рассмотреть более подробно. В любом случае, эта шпаргалка поможет вам запомнить шаги для разработки набора тестов, если вы по каким-то причинам забудете их.
Вот список техник, которые я упомянул:
- Классы эквивалентности
- Граничные значения
- Причинно-следственный анализ
- Прогнозирование ошибок
- Попарное тестирование
- Диаграмма состояний
- Таблица принятия решений
Желаю удачи и не останавливайтесь тестировать!
Источник: habr.com