Поговорим о фундаментальных подходах к созданию тест-кейсов. Это базовые вещи для каждого QA.
Методики создания тест-кейсов
Иногда еще называется «техники тест-дизайна». Это методика/техника, применяемая при написании тест-кейсов; цель этой деятельности — улучшить тестовое покрытие кода.
Какие бывают методики:
- Предугадывание ошибок.
- Классы эквивалентности.
- Анализ граничных значений
- Таблица решений
- Диаграмма перехода состояний
Теперь рассмотрим каждую детально.
1. Предугадывание ошибок
В этой простейшей методике пытаются «предугадать» возможные ошибки и прописать сценарии под них. Успешность такого угадывания зависит от наличия определенного опыта и зачатков аналитического мышления у тестировщика. В примере будем тестировать только некорректный ввод (некорректные введенные значения), и пытаться угадать сообщение об ошибке в приложении.
Пример: есть какое-то поле «Количество», оно измеряется в штуках, стало быть оно должно иметь только позитивные целые значения.
Негативные/некорректные вводы | Сообщение об ошибке |
156.45 | Допускаются только целые числа |
Сто | Допускаются только цифры, а здесь буквы! |
2. Разделение по классам эквивалентности
Или, как иначе называют иногда, «эквивалентное разбиение».
Правило Пресмана
Правило 1: если ввод представляет собой диапазон значений («от и до»), то создается один тест-кейс для одного валидного (корректного) значения, и два для невалидных.
Пример: есть поле ввода текста, диапазон допустимых значений от 100 до 5000.
Тест-кейс: с валидным значением 2000, плюс два невалидных 90 и 6000.
Правило 2. Если на ввод подается набор значений («перечисление»), то тест-кейсы делаются (тоже) с 1 валидным значением и с 2-мя невалидными.
Пример: Есть поле ввода для поиска продуктов в базе. Номера продуктов (ID-шки) должны иметь только следующие значения: 27, или 51, или 68.
Тест-кейс: Валидное 51, невалидные 23, 69.
Правило 3. Если ввод булевый (true или false), то создаются тест-кейсы для обоих значений, и true и false.
Пример: есть радио-кнопки в анкете на сайте, для выбора мужского и женского пола, и здесь должны быть протестированы обе кнопки.
Если ввод ожидается в диапазоне значений, то надо разделить (разбить) диапазон на так называемые «эквивалентные части» (не обязательно две, может быть и больше), и протестировать значения в этих частях; плюс, надо протестировать (как минимум) два некорректных значения.
Такая методика применяется, исходя из того что какое значение не введи в допустимом диапазоне, это будет как бы «эквивалентно» с точки зрения тестирования; то же и с невалидными значениями. Методика позволяет сократить количество тестов, при этом ничего не теряя в покрытии.
Пример: Есть поле ввода. Корректные значения должны быть такие: -100, 1000, 2000, 3000, 4000, 5000
Тест-кейс:
Валидные значения: -100, 1000, 2000, 3000, 4000, 5000
Невалидные значения: -90, 6000
3. Анализ граничных значений (BVA)
Очень интуитивная методика. Если ввод представляет собой диапазон значений от А до В, то создаются тест-кейсы на, условно: (А, А+1, А-1), и (В, В+1, В-1).
Пример: текстовое поле должно содержать числа от 100 до 5000
Тест-кейс:
с валидными: 100, 101, 4999, 5000
с невалидными: 99, 5001
Выбираем эту технику из-за того, что разработчики могут случайно ошибаться в коде условных операторов. Шансы найти баги высоки где-то около “границ” диапазона, поэтому такие тест-кейсы почти что обязательны.
4. Таблица решений
Работая по этой методике, проверяем сразу несколько условий, точнее их комбинации, на соответствия каким-то требованиям (условиям).
Формула: 2n [где n это количество условий] = количество тестовых сценариев в таблице.
Пример: покупатель показывает кредитную карту банка и претендует на скидку; он может быть новым или старым клиентом; также у него есть (или может быть) промокод.
Описание требований: если покупатель является «новым» для банка, и ему недавно выдали кредитную карту, то банк дает 15% скидки на первую покупку. Если покупатель “старый” и он участник «программы лояльности» и предъявляет соответствующую карту, то скидка должна быть 10%. Если у него есть промокод, то скидка должна быть 20%.
Дополнительно: промокод не может применяться одновременно со скидкой для новых зарегистрированных покупателей; если есть одновременно два условия, то применяется бОльшая скидка из двух (см. таблицу).
Итак, у нас есть 3 скидки, которые будут комбинироваться:
- Скидка новому клиенту
- Скидка старому клиенту
- Скидка по промокоду
Итого, получается 2 в 3-ей степени = 8 правил/сценариев.
Количество условий | Правило 1 | Правило 2 | Правило 3 | Правило 4 | Правило 5 | Правило 6 | Правило 7 | Правило 8 |
---|---|---|---|---|---|---|---|---|
Скидка новому клиенту (15%) | + | + | + | + | — | — | — | — |
Скидка старому клиенту (10%) | + | + | — | — | + | + | — | — |
Скидка по промокоду (20%) | + | — | + | — | + | — | + | — |
Итоговая скидка, % | нет скидки | нет скидки | 20% | 15% | 30% | 10% | 20% | нет скидки |
Имея такую таблицу, пишем тестовые сценарии по каждому из условий.
5. Диаграмма перехода состояний
И, совсем кратко, о методике, построенной на так называемых «диаграммах перехода состояний». В этой методике проверяем различные состояния страниц (или экранов приложения), на предмет корректности отображения/выполнения.
Пример: операции с банкоматом.
На диаграмме изображен упрощенный алгоритм по работе клиента с банкоматом, по которому можно писать тестовые сценарии.
На этом пока все! Прямо сейчас можешь проверить свои знания блиц-тестом по основам ISTQB (всего 8 вопросов — проходится за 1 минуту), или пробовать (необходимый для получения сертификата) более обширный тест на английском.
А еще у нас есть специальный раздел, посвященный процессам и методологии тестирования.