Тестирование черного ящика: виды и методики (21.12.2009)
В этой статье мы поговорим про тестирование черного ящика (Black-box testing/BBT): его преимущества, недостатки и методики тестирования черного ящика.
При тестировании черного ящика система рассматривается как "черный ящик", поэтому явным образом знание внутренней структуры или кода не применяется. Другими словами, инженеру-тестировщику не требуется знание внутренней работы "черного ящика", или приложения.
В одной из статей я уже рассказывал, что представляет собой тестирование белого ящика. В этой статье мы поговорим про тестирование черного ящика (Black-box testing/BBT): его преимущества, недостатки и методики тестирования черного ящика.
При тестировании черного ящика система рассматривается как "черный ящик", поэтому явным образом знание внутренней структуры или кода не применяется. Другими словами, инженеру-тестировщику не требуется знание внутренней работы "черного ящика", или приложения.
При тестировании черного ящика мы проверяем функциональность системы в целом. BBT также иногда называют ‘поведенческим тестированием (behavioral testing)’, а тестирование белого ящика - ’структурным тестированием (structural testing)’. Разработка тестов для поведенческого тестирования несколько отличается от разработки тестов для тестирования черного ящика, поскольку применение знаний о внутренней структуре не запрещено, хотя все же нежелательно.
У каждого метода тестирования есть свои преимущества и недостатки. Существуют ошибки, которые невозможно выявить, применяя только метод черного ящика или только метод белого ящика. Большинство приложений тестируются методом черного ящика. Чтобы при тестировании черного ящика выявить большое число дефектов, необходимо обеспечить покрытие большинства тест кейсов.
Тестирование черного ящика проводится на всех стадиях разработки программного обеспечения и его жизненного цикла тестирования, то есть на этапах модульного, интеграционного, системного, приемочного и регрессионного тестирования.
Инструменты тестирования черного ящика:
Инструменты тестирования черного ящика, как правило, используют средства записи и воспроизведения. Такие инструменты применяются для регрессионного тестирования, чтобы проверить, не появились ли дефекты в имеющейся функциональности при выходе нового билда. Такие инструменты записывают тест-кейсы в виде скриптов TSL, VB, Java, Perl и т.д.
Достоинства тестирования черного ящика
- Тестировщик может не обладать глубокими техническими знаниями
- Применяется для выявления несоответствий в системе и спецификациях
- Тест кейсы можно писать сразу после создания функциональной спецификации
Недостатки тестирования черного ящика
- Входные данные теста должны быть из большого пространства выборок
- Затруднительно определить все возможные входные данные за ограниченное время тестирования, поэтому написание тестов превращается в долгий и сложный процесс
- Во время такого тестирования могут быть пропущены некоторые пути тестирования из-за незнания влияющих на тестирование факторов
Методики тестирования черного ящика:
- Методики с использованием графов:
Каждое приложение состоит из нескольких объектов. Все эти объекты выявляются и составляется граф. По такому графу определяются взаимосвязи между всеми объектам, и в соответствии с этим пишутся тест кейсы для выявления ошибок.
Такая методика полностью основана на опыте тестировщика и его мышлении. Угадывание ошибок – это искусство. Для этой методики нет специальных инструментов, которые покрыли бы все пути приложения.
- Анализ граничных значений
Ошибки во многих системах возникают при работе с граничными значениями, поэтому важно тестировать граничные значения в приложении. Анализ граничных значений (Boundary Value Analysis/BVA) относится к методикам функционального тестирования. Для такого анализа выбирают предельные граничные значения. Граничные значения бывают максимальные, минимальные, только для внутренних/внешних границ, типичные значения и ошибочные значения.
Расширяйте эквивалентное разбиение Проверяйте обе стороны каждой границы Смотрите также на внешние связи для каждого тест кейса Тестируйте min, min-1, max, max+1 и обычные значения
Методики анализа граничных значений:
- Число переменных Для n переменных: АГЗ дает 4n+1 тест кейсов.
- Разновидности диапазонов На обобщение диапазонов влияет природа и тип переменных.
Достоинства анализа граничных значений
- Устойчивость тестирования - анализ граничных значений плюс значения, которые превышают пределы
- Min - 1, Min, Min +1, Номинальное, Max -1, Max, Max +1
- Усиленное внимание к работе в исключительных ситуациях.
Применимость анализа граничных значений
Тестирование граничных значений эффективно только для переменных с фиксированными значениями, т.е. границ. Пример: Тестируемое Вами приложение обрабатывает введённое значение возраста и определяет, достиг ли пользователь системы совершеннолетия. В таком случае граничными значениями будут 17, 18 и 19 лет.
- Тестирование классов эквивалентности:
Эквивалентное разбиение – методика тестирования черного ящика, когда набор вводимых в программу значений разделяется на классы данных, из которых можно получить тест кейсы.
Как выполнить такое разбиение во время тестирования:
Если программа принимает значения из какого-либо диапазона, то для тестирования определяется один класс позитивных проверок и два класса негативных проверок.
Если программа принимает одно входящее значение, то определяется одна позитивная и одна негативная проверка.
Если программа принимает входящее булевое значение (ИСТИНА или ЛОЖЬ), то одна позитивная и одна негативная проверка могут быть произведены. На примере программы с вводом возраста, можно выделить классы «до 18» и «после 18». Так как все значения «до 18» для нас являются равноценными, нам необязательно тестировать со всеми из них. Таким образом, «до 18» является классом эквивалентности, и нам достаточно выбрать одну проверку из этого диапазона. Тестирование по классам эквивалентности обычно совмещается с тестированием граничных значений: из класса «до 18» нам нужно выбрать всего одно значение, которое в соответствии с тестированием граничных значений будет равно 17.
- Сравнительное тестирование:
В этой методике различные независимые версии одинакового ПО используются для сравнения друг с другом.
Статья написана по материалам Vijay
|