Razrabotka_testov_i_testovykh_stsenariev_Q1_AT_2020 (1)

Содержание

Слайд 3

ОПРЕДЕЛЕНИЯ

Разработка тестов и тестовых сценариев

ОПРЕДЕЛЕНИЯ Разработка тестов и тестовых сценариев

Слайд 4

Определения

Чек-лист (check-list) – набор идей тестов.

Тест-кейс (test case) – набор входных

Определения Чек-лист (check-list) – набор идей тестов. Тест-кейс (test case) – набор
данных, условий выполнения и ожидаемых результатов, разработанный с целью проверки того или иного свойства или поведения программного средства.

Тестовый сценарий, тест-сьют (test scenario, test-suite) – набор тест-кейсов, собранных в группу (последовательность) для достижения некоторой цели.

Слайд 5

РАЗРАБОТКА ТЕСТОВ

Разработка тестов и тестовых сценариев

РАЗРАБОТКА ТЕСТОВ Разработка тестов и тестовых сценариев

Слайд 6

Разработка тестов

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

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

Слайд 7

Разработка тестов. Тесты на основе требований

Извлекается и вставляется ли в ручку стержень?
Присутствует

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

(requirements based tests)

Слайд 8

Разработка тестов. Функциональные тесты

Вставить в ручку стержень.
Переключить в рабочее положение.
Написать несколько слов.
Переключить

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

(functional test)

Слайд 9

Разработка тестов. Сравнительные тесты

Что мы можем сказать об этой ручке в сравнении

Разработка тестов. Сравнительные тесты Что мы можем сказать об этой ручке в
с другими ручками, которые выпускает наша фирма?
Что мы можем сказать об этой ручке в сравнении с ручками, которые выпускают конкуренты?
В чём преимущества именно этой модели ручек?

 (parallel test)​

Слайд 10

Разработка тестов. Тесты ошибочных ситуаций

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

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

Scenario-based tests

Слайд 11

Разработка тестов. Тесты интерфейса

Измерения: высота, ширина, длина, вес.
Цвет.
Читаемость логотипа фирмы-производителя.

GUI tests

Разработка тестов. Тесты интерфейса Измерения: высота, ширина, длина, вес. Цвет. Читаемость логотипа фирмы-производителя. GUI tests

Слайд 12

Разработка тестов. Тесты удобства использования

Есть ли у нас какие-либо замечания по юзабилити

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

usability tests

Слайд 13

Разработка тестов. Тесты упаковки и документации

Вложена ли в упаковку копия текста о

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

packaging/documentation tests

Слайд 14

Разработка тестов. Стрессовые тесты

При какой температуре расплавится пластиковая часть ручки?
При какой температуре

Разработка тестов. Стрессовые тесты При какой температуре расплавится пластиковая часть ручки? При
потечёт стержень?
При какой температуре ручка перестаёт писать?
Какое воздействие необходимо применить к ручке, чтобы сломать её?

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

stress tests

Слайд 15

Разработка тестов. Тесты производительности

Сколько текста можно написать ручкой в единицу времени?
Как быстро

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

performance tests

Слайд 16

Разработка тестов. Конфигурациионные тесты

Какие стержни подходят к нашей ручке?
На каких поверхностях она

Разработка тестов. Конфигурациионные тесты Какие стержни подходят к нашей ручке? На каких
может писать?

configuration tests

Слайд 17

Разработка тестов. Законодательные тесты

Подлежит ли этот продукт какому-то виду лицензирования?
Необходима ли какая-то

Разработка тестов. Законодательные тесты Подлежит ли этот продукт какому-то виду лицензирования? Необходима
особая сопроводительная документация?
Ясно ли из документации ручки видно, в какой стране она произведена?
Существуют ли какие-то законодательные особенности, препятствующие распространению нашего продукта?

regulation tests

Слайд 18

Внимание!

Без записанного чек-листа уже через несколько минут идеи начинают дублироваться, теряться, искажаться

Внимание! Без записанного чек-листа уже через несколько минут идеи начинают дублироваться, теряться, искажаться и т.п.
и т.п.

Слайд 19

ТЕХНИКИ ТЕСТ ДИЗАЙНА

Разработка тестов и тестовых сценариев

ТЕХНИКИ ТЕСТ ДИЗАЙНА Разработка тестов и тестовых сценариев

Слайд 20

Наиболее распространенные техники тест дизайна

Эквивалентное Разделение (Equivalence Partitioning - EP). Как пример, у

Наиболее распространенные техники тест дизайна Эквивалентное Разделение (Equivalence Partitioning - EP). Как
вас есть диапазон допустимых значений от 1 до 10, вы должны выбрать одно верное значение внутри интервала, скажем, 5, и одно неверное значение вне интервала - 0.
Анализ Граничных Значений (Boundary Value Analysis - BVA). Если взять пример выше, в качестве значений для позитивного тестирования выберем минимальную и максимальную границы (1 и 10), и значения больше и меньше границ (0 и 11). Анализ Граничный значений может быть применен к полям, записям, файлам, или к любого рода сущностям имеющим ограничения.
Причина / Следствие (Cause/Effect - CE). Это, как правило, ввод комбинаций условий (причин), для получения ответа от системы (Следствие). Например, вы проверяете возможность добавлять клиента, используя определенную экранную форму. Для этого вам необходимо будет ввести несколько полей, таких как "Имя", "Адрес", "Номер Телефона" а затем, нажать кнопку "Добавить" - эта "Причина". После нажатия кнопки "Добавить", система добавляет клиента в базу данных и показывает его номер на экране - это "Следствие".

Слайд 21

Наиболее распространенные техники тест дизайна
Предугадывание ошибки (Error Guessing - EG). Это когда тестировщик

Наиболее распространенные техники тест дизайна Предугадывание ошибки (Error Guessing - EG). Это
использует свои знания системы и способность к интерпретации спецификации на предмет того, чтобы "предугадать" при каких входных условиях система может выдать ошибку. Например, спецификация говорит: "пользователь должен ввести код". Тестировщик, будет думать: "Что, если я не введу код?", "Что, если я введу неправильный код? ", и так далее. Это и есть предугадывание ошибки.
Исчерпывающее тестирование (Exhaustive Testing - ET) - это крайний случай. В пределах этой техники вы должны проверить все возможные комбинации входных значений, и в принципе, это должно найти все проблемы. На практике применение этого метода не представляется возможным, из-за огромного количества входных значений.

Слайд 22

Эквивалентное Разделение. Классы эквивалентности

Класс эквивалентности (equivalence class) – набор тестов, полное выполнение которого

Эквивалентное Разделение. Классы эквивалентности Класс эквивалентности (equivalence class) – набор тестов, полное
является избыточным и не приводит к обнаружению новых дефектов.

Слайд 23

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

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

Слайд 24

Граничные условия (border conditions) – это те места, в которых один класс

Граничные условия (border conditions) – это те места, в которых один класс
эквивалентности переходит в другой.

Классы эквивалентности. Граничные условия

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

Слайд 25

Классы эквивалентности. Пример 1

Проверить реакцию приложения на ввод слишком короткого (менее трёх

Классы эквивалентности. Пример 1 Проверить реакцию приложения на ввод слишком короткого (менее
символов) или слишком длинного (более 20-ти символов) имени пользователя, которое может содержать только английские буквы, цифры и знак подчёркивания.

Классы эквивалентности:
Позитивный тест: строка допустимых символов длиной от трёх до 20-ти символов.
Негативный тест: строка короче трёх символов.
Негативный тест: строка длиннее 20-ти символов.
Негативный тест: строка длиной от трёх до 20-ти символов, содержащая недопустимые символы.

Тесты:
ABC, ABCDEFGHIJKLMNOPQRST, abc_12_def
AA, {пустая строка}
AAAAAAAAAAAAAAAAAAAAA (21 символ)
Abcd#23456%@#&#%^#

Слайд 26

Классы эквивалентности. Пример 2

«Чтобы добавить файл в свою фотогалерею на сайте, пользователь

Классы эквивалентности. Пример 2 «Чтобы добавить файл в свою фотогалерею на сайте,
должен кликнуть по кнопке Открыть, выбрать файл и кликнуть по кнопке OK».

Давайте абстрагируемся от пользовательского интерфейса и подумаем о файле. Какие случаи нам надо будет проверить?

Слайд 27

Классы эквивалентности. Пример 3

Есть вопросы? ☺
Какие здесь классы эквивалентности?
Допустимая дата, недопустимая дата.
Какая

Классы эквивалентности. Пример 3 Есть вопросы? ☺ Какие здесь классы эквивалентности? Допустимая
дата является допустимой?

m/dd/yy

Слайд 28

Классы эквивалентности. Пример 3

Классы эквивалентности. Пример 3

Слайд 29

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

Классы эквивалентности не всегда очевидны.
Как правило, негативных тестов получается

Классы эквивалентности. Вывод Классы эквивалентности не всегда очевидны. Как правило, негативных тестов
больше, чем позитивных.
Принадлежность теста к позитивным или негативным зависит от требований.

Слайд 30

РЕКОМЕНДАЦИИ ПО РАЗРАБОТКЕ ТЕСТОВ

Разработка тестов и тестовых сценариев

РЕКОМЕНДАЦИИ ПО РАЗРАБОТКЕ ТЕСТОВ Разработка тестов и тестовых сценариев

Слайд 31

Рекомендации по разработке тестов

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

Рекомендации по разработке тестов Начинайте с простых очевидных тестов. Затем переходите к
сложным тестам.
Помните о граничных условиях.
Если остаётся время, занимайтесь исследовательским тестированием.

Последовательность разработки и выполнения тестов
Простые позитивные.
Простые негативные.
Сложные позитивные.
Сложные негативные.

Слайд 32

ОФОРМЛЕНИЕ ТЕСТ-КЕЙСОВ

Разработка тестов и тестовых сценариев

ОФОРМЛЕНИЕ ТЕСТ-КЕЙСОВ Разработка тестов и тестовых сценариев

Слайд 33

Оформление. Тест-кейсы в Excel

Идентификатор

Приоритет
Smoke
Critical Path
Extended

Связанное с тестом требование

Модуль и подмодуль

Заглавие (суть) теста

Исходные

Оформление. Тест-кейсы в Excel Идентификатор Приоритет Smoke Critical Path Extended Связанное с
данные, необходимые для выполнения теста

Шаги

Ожидаемый результат по каждому шагу

Слайд 34

Оформление тест-кейсов

Краткое описание (summary) – предельно сжатое изложение сути теста.
Пререквизиты (preconditions) –

Оформление тест-кейсов Краткое описание (summary) – предельно сжатое изложение сути теста. Пререквизиты
ситуация и/или условие, предшествующее тесту.
Данные (test data) – информация, необходимая для выполнения теста.
Ссылка на требования (bind to requirement) – ссылка на требования, которые покрывает данный тест.

Описание (Test description/Test Steps) – описание действия, выполняемого на данном шаге.
Ожидаемый результат (expected result) – результат выполнения действия, который будет получен в случае корректной работы приложения.

Слайд 35

СВОЙСТВА ХОРОШЕГО ТЕСТА

Разработка тестов и тестовых сценариев

СВОЙСТВА ХОРОШЕГО ТЕСТА Разработка тестов и тестовых сценариев

Слайд 36

Специфичность или общность?

Оба тест-кейса делают одну и ту же проверку.
Какой из них

Специфичность или общность? Оба тест-кейса делают одну и ту же проверку. Какой
лучше?

Оказывается, оба варианта – плохие. Почему?

Слайд 37

Специфичность или общность?

Когда все детали прописаны до мелочей:
при повторных выполнениях теста всегда

Специфичность или общность? Когда все детали прописаны до мелочей: при повторных выполнениях
будут выполняться строго одни и те же действия, что снижает вероятность обнаружить ошибку;
возрастает время создания и поддержки теста.

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

Слайд 38

Специфичность или общность?

Здесь мы не привязаны к конкретным значениям.
Мы знаем, как проверить

Специфичность или общность? Здесь мы не привязаны к конкретным значениям. Мы знаем,
результат.
Мы сокращаем время написания и поддержки теста ссылкой на шаги 1-4.
Мы перечислили значения, представляющие для нас особый интерес.

Слайд 39

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

Простые тесты:
1. Откройте файл «1.txt». Файл открыт.
2. Введите слово «Дом».

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

Преимущества простых тестов:​
Их легко выполнять.​
Они понятны новичкам.​
Они упрощают диагностику ошибки.​
Они делают наличие ошибки очевидным.

Преимущества сложны тестов:​
Больше шансов что-то сломать.​
Пользователи, как правило, используют сложные сценарии.​
Программисты сами редко проверяют такие варианты.

Слайд 40

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

Независимые тесты не ссылаются ни на какие другие.
Cвязанные тесты явно

Независимость или связанность? Независимые тесты не ссылаются ни на какие другие. Cвязанные
или неявно (в рамках сценария) ссылаются на другие (как правило, на предыдущий).

Слайд 41

Независимость или связанность? Преимущества

Независимость или связанность? Преимущества

Слайд 42

Язык написание теста

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

Язык написание теста Используйте активный залог: («open», «paste», «click»). В русском языке
безличную форму: «открыть» (вместо «откройте»).
Описывайте поведение системы: «появляется окно…», «приложение закрывается».
Используйте простой технический стиль.
ОБЯЗАТЕЛЬНО указывайте ТОЧНЫЕ названия всех элементов приложения.
Не объясняйте базовые понятия работы с ОС.

Слайд 43

И ЕЩЕ ПАРА СЛОВ О ХОРОШИХ ТЕСТАХ

Разработка тестов и тестовых сценариев

И ЕЩЕ ПАРА СЛОВ О ХОРОШИХ ТЕСТАХ Разработка тестов и тестовых сценариев

Слайд 44

Каким должен быть хороший тест?

Каким должен быть хороший тест?

Слайд 45

Каким должен быть хороший тест?

Каким должен быть хороший тест?

Слайд 46

Каким должен быть хороший тест?

Каким должен быть хороший тест?

Слайд 47

Каким должен быть хороший тест?

Каким должен быть хороший тест?

Слайд 48

ПРОЦЕСС РАЗРАБОТКИ ТЕСТОВ

Разработка тестов и тестовых сценариев

ПРОЦЕСС РАЗРАБОТКИ ТЕСТОВ Разработка тестов и тестовых сценариев

Слайд 49

Процесс разработки тестов

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

2.

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

3. Для каждой области/модуля пишите чек-лист.

4. Пишите вопросы, уточняйте детали, добавляйте «косметику», используйте copy-paste.

5. Получите рецензию коллег-тестировщиков, разработчиков, заказчиков.

6. Обновляйте тесты, как только обнаружили ошибку или изменилась функциональность.

Слайд 50

ТЕСТОВЫЕ СЦЕНАРИИ

Разработка тестов и тестовых сценариев

ТЕСТОВЫЕ СЦЕНАРИИ Разработка тестов и тестовых сценариев

Слайд 51

Тестовый сценарий. Определение

Тестовый сценарий (test scenario) – набор тестов (тест-кейсов), собранных

Тестовый сценарий. Определение Тестовый сценарий (test scenario) – набор тестов (тест-кейсов), собранных
в последовательность для достижения некоторой цели. Может быть составлен из связанных или независимых тестов.

Хороший тестовый сценарий всегда следует некоторой логике, например: типичному использованию приложения, удобству тестирования, распределению функций по модулям и т.д.

Слайд 52

Рекомендации по оформлению

Используйте группировку

Используйте фильтры

Используйте отдельные листы

Рекомендации по оформлению Используйте группировку Используйте фильтры Используйте отдельные листы

Слайд 53

Тестовый сценарий. Общие рекомендации

Пишите сценарий для отдельной части приложения.
Пишите отдельно сценарии для

Тестовый сценарий. Общие рекомендации Пишите сценарий для отдельной части приложения. Пишите отдельно
Smoke и Critical Path тестов.
Постепенно повышайте сложность тестов.
Организуйте сценарий логично.

Слайд 54

ТЕСТОВОЕ ПОКРЫТИЕ

Разработка тестов и тестовых сценариев

ТЕСТОВОЕ ПОКРЫТИЕ Разработка тестов и тестовых сценариев

Слайд 55

Тестовое покрытие

Тестовое Покрытие (Test Coverage) - это одна из метрик оценки качества тестирования,

Тестовое покрытие Тестовое Покрытие (Test Coverage) - это одна из метрик оценки
представляющая из себя плотность покрытия тестами требований, либо исполняемого кода.

Traceability matrix — Матрица соответствия требований — это двумерная таблица, содержащая соответсвие функциональных требований (functional requirements) продукта и подготовленных тестовых сценариев (test cases).

 В заголовках колонок таблицы расположены требования, а в заголовках строк — тестовые сценарии. На пересечении — отметка, означающая, что требование текущей колонки покрыто тестовым сценарием текущей строки.

Слайд 56

ПРИМЕР РАЗРАБОТКИ ТЕСТОВ

Разработка тестов и тестовых сценариев

ПРИМЕР РАЗРАБОТКИ ТЕСТОВ Разработка тестов и тестовых сценариев

Слайд 57

Пример разработки тестов

Что такое Notepad?
Какие функции для него наиболее важны?

Пример разработки тестов Что такое Notepad? Какие функции для него наиболее важны?

Слайд 58

Пример разработки тестов

Итак, вот наш Smoke test:

Перенесём его в шаблон для разработки

Пример разработки тестов Итак, вот наш Smoke test: Перенесём его в шаблон для разработки тестов.
тестов.

Слайд 59

Пример разработки тестов

Фактически, это – чек-лист. И сами пункты грамотно сформированного чек-листа

Пример разработки тестов Фактически, это – чек-лист. И сами пункты грамотно сформированного
– (почти) готовые заголовки тест-кейсов.

Слайд 60

Пример разработки тестов

Когда мы распишем наши тесты по правилам, Smoke Test примет

Пример разработки тестов Когда мы распишем наши тесты по правилам, Smoke Test примет следующий вид:
следующий вид:

Слайд 61

Пример разработки тестов

Аналогичным образом начинаем и продолжаем работать с тестом критического пути:

Пример разработки тестов Аналогичным образом начинаем и продолжаем работать с тестом критического пути:

Слайд 62

Пример разработки тестов

Детализируем чек-лист:

Пример разработки тестов Детализируем чек-лист:

Слайд 63

Пример разработки тестов

Продолжаем детализацию до тех пор, пока не получим логичный и

Пример разработки тестов Продолжаем детализацию до тех пор, пока не получим логичный
достаточный набор тестов. После этого переносим его в шаблон и работаем аналогично тому, как мы делали это при разработке Smoke Test.