Блог седого тестировщика

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

Обзор техник тест-дизайна

Время на прочтение: 3 мин.
Это заключающая статья по теме техник тест-дизайна. Я долго думал, что можно написать, но решил в итоге поднять тему структуризации техник.

Очень часто мне приходилось сталкиваться с тем, что начинающие тестировщики (да и я сам раньше) путают понятия. Например, исследовательское тестирование — это техника или вид? А функциональное тестирование? Давайте разбираться.

Понятно, что я сам не смогу ответить на этот вопрос, но этого и не нужно. Достаточно обратиться к стандартам и посмотреть, какую же классификацию техник они предлагают. Далеко ходить не стал, посмотрел в сторону ISTQB и вот что получилось.

В первую очередь выделяют три категории методов проектирования тестов:

  1. Методы черного ящика.
  2. Методы белого ящика.
  3. Методы, основанные на опыте.

В чем их различие?

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

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

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

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

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

Итак, если это категории методов, значит они должны включать в себя и сами методы тест-дизайна (проектирования тестов). Давайте посмотрим, какие техники предлагает нам ISTQB.

Методы черного ящика (Black-box Test Techniques)

  1. Эквивалентное разбиение (Equivalence Partitioning). Эта техника говорит нам о том, что тестовые данные необходимо разбивать на некоторые группы, внутри которых результат выполнения тестов идентичен. Группы могут быть как для позитивных, так и для негативных значений.
    Подробнее о методе читаем тут https://vk.com/wall-172009645_386
  2. Анализ граничных значений (Boundary Value Analysis). Является продолжением предыдущего метода и говорит нам о том, что необходимо брать значения, которые лежат на границе классов.
    Подробнее о методе читаем тут https://vk.com/wall-172009645_386
  3. Тестирование с помощью таблицы альтернатив (Decision Table Testing). Это способ компактного представления модели со сложной логикой.
    Достаточно понятно метод описан тут http://blog.rocketbrain.ru/decision-table-test-design/ (если данная ссылка не работает, то читаем о методе тут https://training.qatestlab.com/blog/technical-articles/tables-solutions-and-their-usage-in-testing/)
  4. Тестирование с помощью таблицы переходов (State Transition Testing). Интересная техника, которая позволяет составлять высокоуровневые чек-листы.
    О ней я рассказывал в двух статьях https://vk.com/wall-172009645_515 и https://vk.com/wall-172009645_583
  5. Тестирование с помощью сценариев использования (Use Case Testing). Сценарии использования — это перечень действий, сценарий по которому пользователь взаимодействует с приложением, программой для выполнения какого-либо действия для достижения конкретной цели. Тестирование по сценариям проводится для того, чтобы обнаружить дополнительные логические дыры и баги в приложении, которые сложно найти в тестировании индивидуальных модулей, частей приложения отдельно друг от друга.
    Почитать можно в статье http://software-testing.ru/library/5-testing/78-2008-09-29-07-33-51
  6. Техника попарного тестирования (Pairwise Testing). Она не содержится в перечне техник ISTQB, но я тоже решил ее добавить. Используется, когда необходимо не просто протестировать продукт, а продукт с множеством взаимосвязанных входных данных.
    Подробнее тут https://vk.com/wall-172009645_468

Методы белого ящика

  1. Тестирование и покрытие операторов (Statement Testing and Coverage). Тестирование операторов направлено на проверку исполняемых операторов в коде. Покрытие вычисляется как отношение количества операторов, выполненных тестом, к общему числу операторов в тестируемом коде.
  2. Тестирование и покрытие условий (Decision Testing and Coverage). Тестирование условий направлено на проверку логических условий в коде, а также кода, выполняемого в зависимости от исхода условия. Покрытие вычисляется как отношение числа исходов условий, проверенных тестом, к общему числу исходов тестируемых условий.

Методы, основанные на опыте (Experience-based Test Techniques)

  1. Предположение об ошибках (Error Guessing). Это способ предотвращения ошибок, дефектов и отказов, основанный на знаниях тестировщика.
    Подробнее можно прочитать тут https://vk.com/wall-172009645_640
  2. Исследовательское тестирование (Exploratory Testing). Это достаточно гибкое тестирование, которое говорит нам о том, что тест-кейсы и чек-листы создаются, выполняются, анализируются и оцениваются динамически во время выполнения тестов.
    Исследовательское тестирование лучше всего подходит в ситуациях, когда документация недостаточная, либо вовсе отсутствует, в условиях очень сжатых сроков и как дополнение к другим, более формальным, методам тестирования.
  3. Тестирование на основе чек-листов (Checklist-based Testing). При тестировании по чек-листам тестировщик проектирует, реализует и выполняет тесты, указанные в чек-листе.
    Такие списки могут быть построены на опыте, на исторических данных об ошибках, на информации о приоритетах для пользователей и понимании, как и почему происходят отказы в программе.

***

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

Share on vk
Vkontakte
Share on facebook
Facebook
Share on linkedin
LinkedIn
Share on twitter
Twitter

Автор статьи:

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Ближайшие события