Слайд 2
![Программа занятия Автоматизация тестирования: Преследуемые цели Стратегия Авто-тесты и инструменты](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-1.jpg)
Программа занятия
Автоматизация тестирования:
Преследуемые цели
Стратегия
Авто-тесты и инструменты
Слайд 3
![Занятие 7. Часть 1: цели Что значит «автоматизация»? Зачем автоматизировать? Когда не автоматизировать? Что можно автоматизировать?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-2.jpg)
Занятие 7. Часть 1: цели
Что значит «автоматизация»?
Зачем автоматизировать?
Когда не автоматизировать?
Что можно
автоматизировать?
Слайд 4
![Test automation is any use of tools to support testing](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-3.jpg)
Test automation is any use of tools to support testing
Rapid Software
Testing
James Bach
Michael Bolton
Слайд 5
![Это – тоже автоматизация: grep ERROR *.log diff actual.txt expected.txt](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-4.jpg)
Это – тоже автоматизация:
grep ERROR *.log
diff actual.txt expected.txt
Excel – генерация тестовых
данных
NDepend – отбор тестов для выполнения
BTS – поддержка процесса
Vulnerability Scanners
Слайд 6
![Но обычно имеется в виду автоматизация выполнения тестов, то есть:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-5.jpg)
Но обычно имеется в виду
автоматизация выполнения тестов, то есть:
автоматизация воздействий
на тестируемое
приложение
+
автоматизация проверок реакций
на эти воздействия
Слайд 7
![Почему именно это? Это «большая» автоматизация, она может включать в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-6.jpg)
Почему именно это?
Это «большая» автоматизация, она может включать в себя «мелкие»
данные
генерируем «экселем» через COM
проверки выполняем «диффом», сравнивая с заранее заготовленным образцом
Слайд 8
![Почему именно это? Это «полная» автоматизация, без промежуточного участия человека](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-7.jpg)
Почему именно это?
Это «полная» автоматизация, без промежуточного участия человека
ожидание чуда, «синдром
Емели»
увы, чудо очень хрупкое
Слайд 9
![Почему именно это? Это «сложная» автоматизация, требующая внимания, усилий, вложений,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-8.jpg)
Почему именно это?
Это «сложная» автоматизация, требующая внимания, усилий, вложений, навыков
требуются стратегические
решения
не тестирование, а программирование
Слайд 10
![Человек и машина](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-9.jpg)
Слайд 11
![Занятие 7. Часть 1: цели Что значит «автоматизация»? Зачем автоматизировать? Когда не автоматизировать? Что можно автоматизировать?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-10.jpg)
Занятие 7. Часть 1: цели
Что значит «автоматизация»?
Зачем автоматизировать?
Когда не автоматизировать?
Что можно
автоматизировать?
Слайд 12
![Зачем автоматизировать? Должны быть выгоды по сравнению с «не автоматизировать»](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-11.jpg)
Зачем автоматизировать?
Должны быть выгоды
по сравнению с «не автоматизировать»
основные ожидания выгод связаны
с временем
увеличение тестового покрытия
Какие альтернативы?
выполнять вручную
не выполнять совсем
Слайд 13
![Ручное и автоматизированное* * цифры условные, но отражают порядок ** пояснение через два слайда](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-12.jpg)
Ручное и автоматизированное*
* цифры условные, но отражают порядок
** пояснение через
два слайда
Слайд 14
![Выгоды: время Получение результата раньше Прогоны чаще (в идеале –](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-13.jpg)
Выгоды: время
Получение результата раньше
Прогоны чаще (в идеале – непрерывно)
Высвобождается время –
можно выполнить другие тесты – увеличивается покрытие
Слайд 15
![Выгоды: покрытие Увеличение количества тестовых данных Усложнение тестовых сценариев и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-14.jpg)
Выгоды: покрытие
Увеличение количества тестовых данных
Усложнение тестовых сценариев и увеличение их количества
Увеличение
количества окружений
Возможность сосредоточиться на проектировании тестов (да-да!)
Слайд 16
![Как считать «тесты»? Сценарий – 1 Сценарий с данными –](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-15.jpg)
Как считать «тесты»?
Сценарий – 1
Сценарий с данными – 10
Сценарий с данными
в окружении X – 100
Слайд 17
![Выгоды: нематериальные Тестировщикам это нравится больше, чем рутинная работа (что неудивительно ☺) Тестировщики учатся программировать](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-16.jpg)
Выгоды: нематериальные
Тестировщикам это нравится больше, чем рутинная работа (что неудивительно ☺)
Тестировщики
учатся программировать
Слайд 18
![Занятие 7. Часть 1: цели Что значит «автоматизация»? Зачем автоматизировать? Когда не автоматизировать? Что можно автоматизировать?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-17.jpg)
Занятие 7. Часть 1: цели
Что значит «автоматизация»?
Зачем автоматизировать?
Когда не автоматизировать?
Что можно
автоматизировать?
Слайд 19
![Нет выгод Результат раньше не востребован (процесс) Увеличение покрытия не востребовано (цена ошибки невысока)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-18.jpg)
Нет выгод
Результат раньше не востребован (процесс)
Увеличение покрытия не востребовано (цена ошибки
невысока)
Слайд 20
![Не попадаем в «зеленую зону» Часто возникают сбои либо меняются](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-19.jpg)
Не попадаем в «зеленую зону»
Часто возникают сбои
либо меняются требования
либо в программе
много ошибок
либо тесты написаны плохо
Нет специалистов нужной квалификации
Все тесты уникальные, нет «серийности»
Слайд 21
![Не автоматизируется Технологий доступа нет или они сложны тач-скрин, управление](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-20.jpg)
Не автоматизируется
Технологий доступа нет или они сложны
тач-скрин, управление взглядом
Проверки плохо формализуются
удобство
использования, недетерминизм, эстетическая привлекательность, верстка
Слайд 22
![Занятие 7. Часть 1: цели Что значит «автоматизация»? Зачем автоматизировать? Когда не автоматизировать? Что можно автоматизировать?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-21.jpg)
Занятие 7. Часть 1: цели
Что значит «автоматизация»?
Зачем автоматизировать?
Когда не автоматизировать?
Что можно
автоматизировать?
Слайд 23
![Аспекты качества: ISO 9126 Функциональность Надёжность Эффективность Практичность Сопровождаемость Мобильность](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-22.jpg)
Аспекты качества: ISO 9126
Функциональность
Надёжность
Эффективность
Практичность
Сопровождаемость
Мобильность
Слайд 24
![Интерфейсы Пользовательский интерфейс (UI) Программный интерфейс (API) Сетевой протокол Состояние окружения События Таймер](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-23.jpg)
Интерфейсы
Пользовательский интерфейс (UI)
Программный интерфейс (API)
Сетевой протокол
Состояние окружения
События
Таймер
Слайд 25
![Уровни тестирования Модульное Интеграционное Системное](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-24.jpg)
Уровни тестирования
Модульное
Интеграционное
Системное
Слайд 26
![Стратегия и тактика](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-25.jpg)
Слайд 27
![Инструменты](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-26.jpg)
Слайд 28
![Критерии выбора Поддержка интерфейса Переносимость Язык программирования и IDE Расширяемость](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-27.jpg)
Критерии выбора
Поддержка интерфейса
Переносимость
Язык программирования и IDE
Расширяемость
Производительность
Лицензии, цены, выход новых версий
Техсаппорт
Слайд 29
![Не изобретайте велосипед](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-28.jpg)
Слайд 30
![Автоматизированные тесты](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-29.jpg)
Слайд 31
![Базовые принципы дизайна Тесты должны быть простыми, короткими, лёгкими в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-30.jpg)
Базовые принципы дизайна
Тесты должны быть простыми, короткими, лёгкими в сопровождении
Тесты должны
быть изолированы друг от друга
Тесты должны работать с интерфейсом
Тест должен доносить намерение
Слайд 32
![Тесты должны быть изолированы друг от друга Зачем? неважен порядок](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-31.jpg)
Тесты должны быть изолированы друг от друга
Зачем?
неважен порядок выполнения
можно произвольно группировать
Как?
каждый
тест должен «убирать за собой»
фиктивные объекты
каждый тест должен заботиться о себе сам
дельта-проверки
Слайд 33
![Тесты должны работать с интерфейсом Зачем? независимость от реализации, и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-32.jpg)
Тесты должны работать с интерфейсом
Зачем?
независимость от реализации, и как следствие упрощение
сопровождения
Как?
делать адаптеры со стабильным интерфейсом
Слайд 34
![Тесты должны быть короткими Зачем? простота отладки наглядность результатов простота](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-33.jpg)
Тесты должны быть короткими
Зачем?
простота отладки
наглядность результатов
простота локализации багов
Как?
не копировать ручные «один
в один», проектировать тесты специльано
Слайд 35
![Тест должен доносить намерение Зачем? облегчает понимание не требуется документировать тесты Как? понятные имена вспомогательный код](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-34.jpg)
Тест должен доносить намерение
Зачем?
облегчает понимание
не требуется документировать тесты
Как?
понятные имена
вспомогательный код
Слайд 36
![Характеристики качества тестов Сопровождаемость удобно читать удобно вносить изменения Мобильность](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-35.jpg)
Характеристики качества тестов
Сопровождаемость
удобно читать
удобно вносить изменения
Мобильность
тестирование в различных конфигурациях
Оптимизация – не
нужна
сопровождаемость важнее!
Надёжность – средняя
сопровождаемость важнее!
Слайд 37
![Разделение аспектов Данные отделены от кода Конфигурация отделена от кода](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-36.jpg)
Разделение аспектов
Данные отделены от кода
Конфигурация отделена от кода
Код разделён на пакеты
Код
разделён на слои
Инициализация выделена
Воздействия и проверки выделены
Слайд 38
![Базовые шаблоны проектирования Четыре части – ИВПЗ Переиспользуемые фрагменты Адаптеры (изоляция) Слои (тоже изоляция)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-37.jpg)
Базовые шаблоны проектирования
Четыре части – ИВПЗ
Переиспользуемые фрагменты
Адаптеры (изоляция)
Слои (тоже изоляция)
Слайд 39
![Делим тест на четыре части Инициализация Воздействие Проверка результата Завершение](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-38.jpg)
Делим тест на четыре части
Инициализация
Воздействие
Проверка результата
Завершение
Слайд 40
![2. Выделяем части теста](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-39.jpg)
Слайд 41
![3. Выделяем адаптеры Адаптер реализации первого уровня идентификация элементов реализации](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-40.jpg)
3. Выделяем адаптеры
Адаптер реализации первого уровня
идентификация элементов реализации
непосредственное воздействие
непосредственная реакция
Адаптер реализации
второго уровня
навигация
комплексные воздействия
сохранение состояния
Слайд 42
![4. Выделяем слои Слои адаптеров Слои тестов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-41.jpg)
4. Выделяем слои
Слои адаптеров
Слои тестов
Слайд 43
![После выполнения тестов Возвращать систему в исходное состояние Чистка данных Сбор статистики](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/207706/slide-42.jpg)
После выполнения тестов
Возвращать систему в исходное состояние
Чистка данных
Сбор статистики