Слайд 3Что такое техника тест-дизайна?
минимум усилий
максимум результата
Слайд 4Соотношение усилий и результата
усилия
результат
Слайд 5Тесты – сеть для ловли багов
Слайд 6Когда остановиться?
Когда собрана полная коллекция чего-нибудь
Слайд 7Разбиение на подобласти
Чтобы избежать ненужного тестирования, разбейте область входных значений на группы
эквивалентных тестов
Два теста считаются эквивалентными если они настолько похожи, что проверять оба бессмысленно
Выберите одно входное значение из каждого класса эквивалентности в качестве представителя целой группы значений
Парафраз Myers, Art of Software Testing
Слайд 8Пример
Доменное имя должно содержать от двух до 63 символов, начинаться и заканчиваться
буквой латинского алфавита или цифрой.
Промежуточными символами могут быть буквы латинского алфавита, цифры или дефис.
Доменное имя не может содержать дефисы одновременно в 3-й и 4-й позициях.
Правила регистрации доменных имен в домене RU, http://www.cctld.ru/ru/docs/RU-2.php
Слайд 9Пример
Длина имени:
0-1, 2-63, 64-∞
Символы:
буквы латинского алфавита,
цифры, дефис, все остальные
Структура
в начале/конце стоит дефис/не
дефис,
в 3 и 4 позиции дефисы/не дефисы
Слайд 11Покрытие и разбиение
буквы
цифры
дефис
Слайд 14Примеры «чисел»
(границы встречаются)
перечисления (enumeration)
символы (character)
количество (разрешённых установок (пароль мин 3 раза), записей
в БД, строк в файле, цветов, …)
длина (строки, имени файла, пути, текста в файле, слова, абзаца, …)
размер/объём (файла, памяти, экрана, окна, шрифта, пакета, …)
номер (версии), время (интервал), скорость (ввода данных, перемещения мыши), …
Слайд 15Мы – нарушители границ!
На входе (то, что пользователь вводит)
На выходе (то, что
пользователь видит)
Где-то глубоко внутри
Слайд 17Границы добра и зла
Физические (не может существовать)(строка -1 длинны)
Логические (не подходит по
смыслу)(при покупке кол. товара -1)
Технологические (не получается)(не описаны, память переполнена, ограничения ресурсов, в базе данных)
Произвольные (нельзя потому что нельзя)(длинна поля не >20символов)
Слайд 19Сколько тестов внутри?
буквы
цифры
дефис
Слайд 24Paint
1.Изменить размер изо. (-1, больше 99999, скопировать -1)
2. Файл – свойства (вводим
больше 9999, -1, буквы)
3. Изменить размер изо (сохранить размер 99999 и потом увеличить в процентах)
Слайд 25Неизвестные зависимости
Случайные комбинации
Неслучайные комбинации
полный перебор (10 checkbox = 2^10 тестов)
покрытие комбинаций меньшей
размерности
Слайд 272. Зависимость одного от другого
Слайд 283. Неизвестные зависимости
Случайные комбинации
Неслучайные комбинации
полный перебор
покрытие комбинаций меньшей размерности
Слайд 30Сокращение перебора: пример
Три переменные:
«Что» - строка
«С учётом регистра» - булевская
«Направление» - перечислимый
тип
Зависимости:
«Что» и «С учётом регистра»
Слайд 31Сокращение перебора: пример
Тестовые значения:
«Что»
“нижний” (L), “ВЕРХНИЙ” (U), “ВпЕрЕмЕшКу” (M)
«С учётом регистра»
Да (Y),
Нет (N)
«Direction»
Вверх (U), Вниз (D)
Слайд 33Сокращение перебора: пример
Перебор:
полный – все комбинации
все значения хотя бы по разу
все пары
– каждый с каждым
все n-ки
Слайд 36Сокращение перебора: пример
Четыре переменные:
«Что» - строка
«С учётом регистра» - булевская
«Направление» - перечислимый
тип
«Есть в тексте» - булевская
Слайд 38Сокращение перебора: пример
Пять переменных:
«Что» - строка
«С учётом регистра» - булевская
«Направление» - перечислимый
тип
«Есть в тексте» - булевская
«Регистр совпадает» - булевская
Слайд 40Сокращение перебора: пример
Зависимости:
«Что» и «С учётом регистра»
«Что» и «Есть в тексте»
«Есть в
тексте» и «Регистр совпадает»
Слайд 41Все пары (каждый с каждым)
пар «Есть в тексте» (N) + «Рег.совп.» (*)
не существует
нет пары «Что» (L) + «Регистр совпадает» (N)
Слайд 43Сокращение перебора: пример
Шесть переменных:
«Что» - строка
«С учётом регистра» - булевская
«Направление» - перечислимый
тип
«Есть в тексте» - булевская
«Регистр совпадает» - булевская
«Направление совпадает» - булевская
Слайд 45Ограничения подхода
Хорошо работает для независимых переменных
Но если переменные независимы, зачем проверять комбинации???
Слайд 46Инструменты тестирования
Сайт http://pairwise.org/