Upload
-
View
76
Download
5
Embed Size (px)
Citation preview
Тестирование черного и белого ящиков
Подготовил студент группы 1372Растопшин Роман Александрович
Черное или белое?
Тестирование по спецификации. Может применяться как к отдельным
модулям так и к программе в целом. Основная цель подобрать входные данные
таким образом (тест-кейсы), чтобы полностью исследовать, протестировать внутреннюю структуру программы.
Внутренняя структура программы не известна и не важна.
Тестирование по стратегии Черного ящика:
Принцип работы стратегии
Software under Test (SUT)
Входные данные
Результат работы программы
Тест-кейc (Test Case)
Название Описание Предусловия (pre-condition) Действия (steps) Постусловия (post-condition) Ожидаемый результат
Тест кейс (Test case)
Примеры тест-кейсов
Название Действия Ожидаемый результат
Фактический результат
Pass/Fail
Навигация по “TAB”
1. Установить фокус ввода на поле “Login”2. Нажать клавишу “TAB”
Фокус ввода переместился на поле “Password”
Скрытие символов пароля
1. Ввести любую строку в поле “Password”
Введенные символы заменяются на *
Факториал числа
Факториал числа10 3628800
N, N>0, только целые
Factorial(N)
0 11 12 23 64 245 1206 720
Количество всех возможных тестов огромное!
Есть ли возможнось выбрать только малое количество тестов и провести их?
Какие тесты выбрать?
Сколько тестов нужно?
Классы эквивалентности
Допустимые НедопустимыеЦелые положительные числа и 0
Все не целые и отрицательные
Факториал числаN N!
Граничные условия
-5 -4 -3 -2 -1 0 1 2 3
На границах классов эквивалентности меняется поведение системы
анализ проводится с точки зрения пользователя, а не дизайнера;
тестировщику сайта или ПО не требуются знания каких-либо специальных языков программирования;
тестирование является объективным, так как дизайнер и тестировщик ПО независимы друг от друга;
тест кейсы могут быть разработаны сразу после подготовки спецификаций.
Преимущества тестирования «черного ящика»
Стратегия белого ящика
покрытие операторов покрытие решений покрытие условий покрытие решений и условий комбинаторное покрытие условий
Методы белого ящика
Чтобы выполнить каждый оператор не менее одного раза, нужно составить единственный тест со следующими значениями входных данных:
(a = 2; b = 0; x = 3)
Покрытие операторов
void func(int a, int b, float x) { if ((a > 1) && (b == 0)) x = x/a;
if (a == 2 || x > 1) x++;
}
Можно покрыть двумя тестами со входами:(а=3 ,b=0, x=3)(a=2 ,b=1, x=1)
Покрытия решений
void func(int a, int b, float x) { if ((a > 1) && (b == 0)) x = x/a;
if (a == 2 || x > 1) x++;
}
Необходимо реализовать ситуацию, где а>1, a<=1;b=0, b!=0; a==2, a!=2; x>1 ,x<=1.
Тесты , удовлетворяющие этому условию:(a=2, b=0, x=4)(a=1, b=1, x=1)
Покрытие условий
void func(int a, int b, float x) { if ((a > 1) && (b == 0)) x = x/a;
if (a == 2 || x > 1) x++;
}
Направленность тестирования Полный охват кода Отслеживание целостности данных Тестирование, определяемое внутренним
алгоритмом (сортировка, преобразование матрицы)
Преимущества тестирования белого ящика
Спасибо за внимание!!!