Разработка тестов (Занятие 6)

Содержание

Слайд 2

Перед вами обыкновенная ручка. Давайте подумаем, как её можно протестировать? Какие бывают тесты it-courses.by

Перед вами обыкновенная ручка. Давайте подумаем, как её можно протестировать?

Какие бывают

тесты

it-courses.by

Слайд 3

Тесты на основе требований (requirements based tests) Тестирование ручки it-courses.by

Тесты на основе требований (requirements based tests)

Тестирование ручки

it-courses.by

Слайд 4

Функциональные тесты (functional test) Вставить в ручку стержень Переключить в рабочее

Функциональные тесты (functional test)
Вставить в ручку стержень
Переключить в рабочее положение
Написать несколько

слов
Переключить в нерабочее положение
Взять ручку в руки
Раскрутить корпус
Извлечь стержень

Тестирование ручки

it-courses.by

Слайд 5

Сценарные тесты (scenario tests). Как ручку может использовать: Секретарь Преподаватель Студент

Сценарные тесты (scenario tests). Как ручку может использовать:
Секретарь
Преподаватель
Студент
Школьник
Прораб
Сантехник
Милиционер
Моряк …

Тестирование ручки

it-courses.by

Слайд 6

Негативные тесты (negative testing) Что произойдёт, если препятствовать выходу стержня в

Негативные тесты (negative testing)
Что произойдёт, если препятствовать выходу стержня в рабочее

положение?
Какое усилие и где надо приложить к ручке, чтобы её сломать?
Если стержень застрял, легко ли его извлечь?
Что произойдёт, если писать по стеклу, асфальту?

Тестирование ручки

it-courses.by

Слайд 7

Тесты интерфейса (interface tests, GUI tests) Измерения: высота, ширина, длина, вес

Тесты интерфейса (interface tests, GUI tests)
Измерения: высота, ширина, длина, вес
Цвет
Читаемость логотипа

фирмы-производителя
Материал

Тестирование ручки

it-courses.by

Слайд 8

Тесты удобства использования (usability tests) Как быстро пользователь понимает, как пользоваться

Тесты удобства использования (usability tests)
Как быстро пользователь понимает, как пользоваться ручкой?
Как

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

Тестирование ручки

it-courses.by

Слайд 9

Тесты документации (packaging/documentation tests) Ясно ли видно на упаковке, что внутри?

Тесты документации (packaging/documentation tests)
Ясно ли видно на упаковке, что внутри?
Легко ли

открыть упаковку?
Есть ли какие-то особые требования к упаковке?
На сайте, в каталоге, на упаковке написано, нарисовано одно и то же?
Текст на упаковке и в гарантийном обязательстве – на одном и том же языке?
На упаковке и в документации нет грамматических ошибок, опечаток и т.д.?

Тестирование ручки

it-courses.by

Слайд 10

Стресс тесты (stress tests) При какой температуре расплавится пластиковая часть ручки?

Стресс тесты (stress tests)
При какой температуре расплавится пластиковая часть ручки?
При какой

температуре потечёт стержень?
При какой температуре ручка перестаёт писать?
Какое воздействие нужно применить к ручке, чтобы сломать её?
Пишет ли ручка под водой? А по мокрой бумаге?
Если ручку уронить в песок – что произойдёт?
А если уронить со стола?
А если из окна офиса?

Тестирование ручки

it-courses.by

Слайд 11

Тесты производительности (performance tests) Сколько текста можно написать ручкой в единицу

Тесты производительности (performance tests)
Сколько текста можно написать ручкой в единицу времени?
Как

быстро ручку можно привести в рабочее положение?
Как много раз ручку можно переключить из нерабочего в рабочее положение, прежде чем её начнёт заедать?

Тестирование ручки

it-courses.by

Слайд 12

Конфигурационные тесты (configuration tests) Какие стержни подходят к нашей ручке? На

Конфигурационные тесты (configuration tests)
Какие стержни подходят к нашей ручке?
На каких

поверхностях она может писать?

Тестирование ручки

it-courses.by

Слайд 13

Чек-лист (checklist) - cписок проверок без описания шагов Упрощенная форма тест-кейса

Чек-лист (checklist) - cписок проверок без описания шагов
Упрощенная форма тест-кейса
у него

нету четкой структуры, вернее их очень много
из важных характеристик – краткость и понятность (простота)
быстрота создания и понимания

Чек-лист

it-courses.by

Слайд 14

Пример чек-листа it-courses.by

Пример чек-листа

it-courses.by

Слайд 15

Тест кейс – (тестовый случай) совокупность шагов, условий и параметров созданных

Тест кейс – (тестовый случай) совокупность шагов, условий и параметров созданных

для проверки работоспособности функции или ее части
A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement
(Набор тестовых входных данных, условий выполнения и ожидаемых результатов, разработанных с конкретной целью, такой как проверка некоторого пути выполнения программы или проверка соответствия некоторому требованию)
Далее «тест-кейс» = «тест»

Определения тест-кейсов

it-courses.by

Слайд 16

Номер (number) или идентификатор (id) Связанное с тестом требование (related requirement)

Номер (number) или идентификатор (id)
Связанное с тестом требование (related requirement)
Модуль (Feature)
Имя

(name)
Предусловия (Preconditions)
Шаги (Steps)
Ожидаемый результат (Expected result)
Статус (Passed, Failed, Blocked)
Приоритет (Priority: smoke, critical…)
Cвязанный с тестом баг (если есть) (related bug)
Постусловия (Postconditions)

Структура тест-кейса

it-courses.by

Слайд 17

Пример тест-кейса it-courses.by

Пример тест-кейса

it-courses.by

Слайд 18

Результатом документирования тестов является тест-кейс Набор тест-кейсов – Test Suite Test

Результатом документирования тестов является тест-кейс
Набор тест-кейсов – Test Suite
Test Suite объединяет

тесты по какому-то принципу:
Модулю
Функционалу
Виду тестирования (функциональные, для регресса …)
Приоритету …

Документирование тестов

it-courses.by

Слайд 19

Требования Здравый смысл Опыт Работающее приложение (приложение-прототип, прототип) На основе чего писать тест-кейсы? it-courses.by

Требования
Здравый смысл
Опыт
Работающее приложение (приложение-прототип, прототип)

На основе чего писать тест-кейсы?

it-courses.by

Слайд 20

Тест-кейсы могут быть: Специфичными или общими (степень детальности) Простыми или сложными

Тест-кейсы могут быть:
Специфичными или общими (степень детальности)
Простыми или сложными
Независимыми или связанными

друг с другом
Позитивными или негативными

Свойства тест-кейсов

it-courses.by

Слайд 21

Тест-кейсы – хороший способ хранения проектной информации Написание тест-кейсов – один

Тест-кейсы – хороший способ хранения проектной информации
Написание тест-кейсов – один из

способов протестировать проектную документацию ещё до выхода первого билда
Наличие тест-кейсов ускоряет регрессионное тестирование
Тест-кейсы – прекрасный способ быстро ввести в курс дела новичка или сотрудника, только что подключившегося к проекту
Имея тест-кейсы, мы можем в любой момент «вспомнить», что мы делали месяц, полгода, год назад.
Тест-кейсы позволяют легко отслеживать прогресс (X% тестов выполнено, Y% тестов прошло (завалилось), Z% требований покрыто тестами)

Зачем нужны тест-кейсы

it-courses.by

Слайд 22

Когда все детали прописаны до мелочей, тест легко воспроизводить Когда тест

Когда все детали прописаны до мелочей, тест легко воспроизводить
Когда тест прописан

очень детально снижается вероятность обнаружить ошибку (меньше будем исследовать)
Слишком общий тест-кейс сложно выполнять (особенно новичку)

Детальность

it-courses.by

Слайд 23

Если в тесте прописано много мелких деталей, возрастает время его создания

Если в тесте прописано много мелких деталей, возрастает время его создания

и поддержки
Однако недостаток деталей может усложнить работу новичка
Интеграционные тесты обычно более общие

Детальность

it-courses.by

Слайд 24

Рассмотрим на примере. Где в ниже перечисленном простые тест-кейсы, а где

Рассмотрим на примере. Где в ниже перечисленном простые тест-кейсы, а где

- сложные?
Тест 1:
Откройте файл «1.txt». Файл открыт
Введите слово «Дом». Появляется слово «Дом»
Сохраните файл
Тест 2:
В документе размером более 100 Мб создайте таблицу 100×100
В ячейку 50×50 вставьте картинку размером 30 Мб,
Примените к ней функцию «Авторасположение»

Простота или сложность

it-courses.by

Слайд 25

Каковы преимущества простых тест-кейсов? Их легко выполнять Они понятны новичкам Они

Каковы преимущества простых тест-кейсов?
Их легко выполнять
Они понятны новичкам
Они упрощают диагностику ошибки
Они

делают наличие ошибки очевидным

Простота или сложность

it-courses.by

Слайд 26

Каковы преимущества сложных тест-кейсов? Больше шансов что-то сломать Пользователи, как правило,

Каковы преимущества сложных тест-кейсов?
Больше шансов что-то сломать
Пользователи, как правило, используют сложные

сценарии
Программисты сами редко проверяют такие варианты
Следует постепенно повышать сложность тестов

Простота или сложность

it-courses.by

Слайд 27

Каковы преимущества независимого самостоятельного тест-кейса? Его легко и просто выполнить Такие

Каковы преимущества независимого самостоятельного тест-кейса?
Его легко и просто выполнить
Такие тесты можно

выполнять даже после краха других тестов
Такие тесты можно группировать любым образом и выполнять в любом порядке
Каковы преимущества наборов тесно связанных тестов?
Они имитируют работу реальных пользователей
Они удобны для разбиения на части тестов с большим количеством шагов
Следующий в наборе тест использует данные и состояние приложения, подготовленные предыдущим

Независимость или связанность

it-courses.by

Слайд 28

Принято считать хорошим тестом - независимый тест Хороший тест it-courses.by

Принято считать хорошим тестом - независимый тест

Хороший тест

it-courses.by

Слайд 29

Позитивные тесты проверяют, что приложение делает ТО, на ЧТО оно РАСЧИТАНО

Позитивные тесты проверяют, что приложение делает ТО, на ЧТО оно РАСЧИТАНО

(т.е. такие тесты используют корректные данные и условия выполнения). Нацелены подтвердить Негативные тесты проверяют работу приложения в нестандартных условиях (с некорректными данными или командами или при работе в некорректных условиях). Нацелены сломать

Позитивность или негативность

it-courses.by

Слайд 30

Используйте активный залог (open, paste, click) В русском языке используйте безличную

Используйте активный залог (open, paste, click)
В русском языке используйте безличную

форму: открыть, нажать, загрузить (вместо откройте, нажмем, загружаю)
Пишите короткими пунктами (одно действие = один шаг)
Используйте простой технический стиль
Обязательно указывайте точные названия элементов

Язык написания тест-кейсов

it-courses.by

Слайд 31

Начинайте с простых очевидных тестов Затем переходите к более сложным тестам

Начинайте с простых очевидных тестов
Затем переходите к более сложным тестам
Выделяйте

классы эквивалентности
Помните о граничных условиях
Организуйте сценарий логично и последовательно
Используйте один тест для ОДНОЙ проверки
Используйте средства форматирования (выделяйте, добавляйте картинки)

Рекомендации

it-courses.by

Слайд 32

Не выполняет ненужных действий Не является избыточным по отношению к другим

Не выполняет ненужных действий
Не является избыточным по отношению к другим тестам
Исследует

соответствующую (ту, которую надо) область приложения
Позволяет легко диагностировать ошибку
Независим (каждый тест-кейс – это индивидуальный сценарий с точкой входа и точкой выхода)

Критерии хорошего тест-кейса

it-courses.by

Слайд 33

Класс эквивалентности (equivalence class) - набор тестов, со схожими входными данными,

Класс эквивалентности (equivalence class) - набор тестов, со схожими входными данными,

шагами воспроизведения и одним ожидаемым результатом
Класс эквивалентности – множество, все элементы которого программа обрабатывает одинаково

Классы эквивалентности

it-courses.by

Слайд 34

Несколько тестов эквивалентны, если: Они направлены на поиск одной и той

Несколько тестов эквивалентны, если:
Они направлены на поиск одной и той же

ошибки
Если один из тестов обнаруживает ошибку, другие её тоже, скорее всего, обнаружат (и наоборот, не обнаружит один, не обнаружат все)
Тесты используют одни и те же наборы входных данных
Для выполнения мы совершаем одни и те же действия
Тесты генерируют одинаковые выходные данные или приводят приложение в одно и то же состояние (например, открытие валидных файлов одного типа и схожего объема, но с разным содержанием)
Все тесты приводят к срабатыванию одного и того же блока обработки ошибок («error handling block»)

Признаки эквивалентности

it-courses.by

Слайд 35

Граничные условия (границы) - это те места, в которых один класс

Граничные условия (границы) - это те места, в которых один класс

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

Граничные условия

it-courses.by

Слайд 36

Проверить, как работает поле, в которое можно ввести целое число от

Проверить, как работает поле, в которое можно ввести целое число от

1 до 99
Классы эквивалентности здесь:
Любое целое число начиная с 2 и по 98. Как правило, это будет середина числового отрезка (Позитивный тест)
Граничные значения 1 и 99 (Позитивный тест)
Любое число меньше 1 (Негативный тест)
Любое число больше 99 (Негативный тест)
Другой класс - буква (Негативный тест)
Другой класс – спецсимвол ~`!”@’#$;%:^&?*()[]{},.\/+=-_ (Негативный тест)

Эквивалентность и границы

it-courses.by

Слайд 37

Пример для обсуждения it-courses.by Какие тесты нужно провести?

Пример для обсуждения

it-courses.by

Какие тесты нужно провести?

Слайд 38

Файл фото формата (jpg. png…) и НЕ фото формата (txt., mov.,)

Файл фото формата (jpg. png…) и НЕ фото формата (txt., mov.,)
Граничный

формат - pdf
Пустой файл / не пустой файл
Уже открытый файл (использует др. приложение) и файл «в покое»
Поврежденный файл и не поврежденный
Файл неверного формата (По расширению и/или реальному содержимому)

Пример для обсуждения

it-courses.by

Слайд 39

Тестовый набор (Test Suite) – a set of related tests, usually

Тестовый набор (Test Suite) – a set of related tests, usually

pertaining to a group of features or software component (module) (набор связанных тестов, как правило, относящихся к группе функций или программного компонента)
Хороший тестовый набор всегда следует некоторой логике, например: типичному использованию приложения, удобству тестирования, распределению функций по модулям…

Тестовые набор (Test Suite)

it-courses.by

Слайд 40

Пишите набор для отдельной части приложения (модуля) Помните, что заголовки тестов

Пишите набор для отдельной части приложения (модуля)
Помните, что заголовки тестов отражают

их суть. Правильно формулируйте и оформляйте заголовки
Помните о необходимых приготовлениях к тесту. Описывайте их (preconditions)
Не повторяйте в нескольких тестах одни и те же шаги, выносите их в preconditions
Четко формулируйте Expected result

Рекомендации

it-courses.by

Слайд 41

Copy-paste Если по ходу разработки тестов возникают вопросы, пишите их прямо

Copy-paste
Если по ходу разработки тестов возникают вопросы, пишите их прямо в

документ с тестами, помечая цветом
Используйте «косметику» (жирный, подчёркнутый, наклонный шрифт, разные цвета) Это повышает читаемость документа
По-максимуму используйте возможности ПО, в котором вы разрабатываете тесты (группировки, фильтры, ссылки)
Обязательно прописывайте в файле историю изменения, исправления выделяйте цветом

Когда пишете тесты

it-courses.by

Слайд 42

Сбор информации (требования, мок-апы…) Делим приложение на модули, выделяем функции Пишем

Сбор информации (требования, мок-апы…)
Делим приложение на модули, выделяем функции
Пишем чек-листы
Детализируем чек-листы

в тест-кейсы

Как прийти к тест-кейсу

it-courses.by

Слайд 43

Начинайте как можно раньше, ещё до выхода первого билда Разбивайте приложение

Начинайте как можно раньше, ещё до выхода первого билда
Разбивайте приложение на

отдельные части/модули
Для каждой области/модуля пишите чек-лист
Пишите вопросы, уточняйте детали, добавляйте «косметику» используйте copy-paste
Обновляйте тесты, как только обнаружили ошибку или изменилась функциональность

Работа с тест-кейсами

it-courses.by

Слайд 44

Первый тест-кейс. Notepad it-courses.by Пункты грамотно сформированного чек-листа - готовые заголовки тест-кейсов

Первый тест-кейс. Notepad

it-courses.by

Пункты грамотно сформированного чек-листа - готовые заголовки тест-кейсов

Слайд 45

it-courses.by

it-courses.by

Слайд 46

Задача о треугольнике it-courses.by

Задача о треугольнике

it-courses.by