Тестирование инсталляторов
TRANSCRIPT
![Page 1: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/1.jpg)
Software quality assurance days19 Международная конференция по вопросам качества ПОsqadays.com
Санкт-Петербург. 20–21 мая 2016
Батищев ЕвгенийАркадия. Санкт-Петербург, Россия
Тестирование инсталляторов
![Page 2: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/2.jpg)
Тестирование инсталляторов
Немного о себе
Батищев Евгений
Программист, Аркадия.
• Разработка• Разработка очень быстро• Разработка очень качественно• “Сделайте так, чтобы работало, пожалуйста”
![Page 3: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/3.jpg)
Тестирование инсталляторов
Зачем тестировать инсталляторы или немного банальщины
![Page 4: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/4.jpg)
Тестирование инсталляторов
«Встречают по одёжке»
• Первое впечатление о Вашем продукте зависит от Вашего инсталлятора
• Никто не хочет сидеть и долго разбираться с установкой• Пользователю, в целом, не важны причины плохого
поведения установщика
![Page 5: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/5.jpg)
Тестирование инсталляторов
Зачем тестировать?Что не получите, если не протестировать свой инсталлятор?•Не получите интересного опыта•Не получите заслуженной похвалы•Не получите заслуженных денег
Что получите, если не протестировать свой инсталлятор?•Проблемы с заказчиками/начальством/пользователями•Вам будут звонить и дышать в трубку те, кто познал всю горечь вашего инсталлятора•В крайнем случае можно получить по лицу от заказчика/начальства/пользователя
![Page 6: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/6.jpg)
Тестирование инсталляторов
«Я есть Альфа и Омега»Где всё зависит от
инсталлятора?• Мобильные приложения• Настольные приложения• Игры, офисные приложения, рабочие программы и т.д.
![Page 7: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/7.jpg)
Тестирование инсталляторов
Каковы задачи инсталлятора?
• Установка• Обновление• Удаление
![Page 8: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/8.jpg)
Тестирование инсталляторов
Что надо тестировать?
• Успешную установку ПО• Настройки установленного ПО• Обновление ПО• Удаление ПО
![Page 9: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/9.jpg)
Тестирование инсталляторов
Больше подробностей
• Список файлов в пакете установщика• Работу Installation Wizard’а• Список установленных файлов• Регистрацию приложения в ОС• Права доступа пользователя• Откаты установки в случае отмены установки• И многое-многое другое
![Page 10: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/10.jpg)
Тестирование инсталляторов
Как всё это протестировать?
• Ручное тестирование• Составление графа состояний и переходов
• Автоматизированное тестирование• Autoit• Своё, родное
![Page 11: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/11.jpg)
Тестирование инсталляторов
Лучшие практики тестирования установщиков
![Page 12: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/12.jpg)
Тестирование инсталляторов
Ручное тестирование
• Составление графа состояний и переходов
![Page 13: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/13.jpg)
Тестирование инсталляторов
Составление графа состояний и переходов(State-transition diagram)• Выделяем состояния для каждого шага инсталлятора• Выделяем конечные состояния: установка отменена,
установка завершена, аварийное прерывание установки• Строим граф, учитывая кнопки Next, Back, Cancel• Выписываем наборы тестов, учитывая граф• Тестируем• PROFIT!!!
![Page 14: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/14.jpg)
Тестирование инсталляторов
Автоматизированное тестирование
• Autoit• Своё, родное
![Page 15: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/15.jpg)
Тестирование инсталляторов
Autoit
• Что это такое?• Свободно распространяемый язык для
автоматизации выполнения задач в Microsoft Windows
• Как работает?• Использует симуляцию нажатия клавиш, движений
мыши и манипуляции с окнами, элементами управления
• Что с этим делать?• Писать скрипты и радоваться
![Page 16: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/16.jpg)
Тестирование инсталляторов
Своё, родное и любимое
• Очень часто необходимо писать софт для тестирования своих продуктов
• Плюсы• Заточенность под собственный продукт• Возможности изменений тест-кейсов под нужды
каждой новой версии продукта• Минусы
• Заточенность только под конкретный свой продукт• Могут быть свои проблемы с реализацией и
настройкой
![Page 17: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/17.jpg)
Тестирование инсталляторов
Личный опыт
![Page 18: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/18.jpg)
Тестирование инсталляторов
Короткий опыт разработки на InstallAware
• Предназначен для создания установщиков• Содержит в себе множество готовых расширений
установщиков• Удобная работа с входными параметрами – можно хоть
через консоль запускать установку• Крайне не удобный язык написания скриптов• Невозможность переименовывать файлы и менять их
расположение в списке файлов скриптов• Медленное время работы
![Page 19: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/19.jpg)
Тестирование инсталляторов
Что нужно было сделать?
• Установщик, который занимался бы:• Проверкой системных конфигураций• Развёрткой веб-приложение на IIS с заданным
портом и названием• Созданием БД и накатываем миграционных скриптов• Обновлением существующих компонентов• Возможность “тихой” установки
![Page 20: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/20.jpg)
Тестирование инсталляторов
История• Во время разработки не было сделано заделов для тестирования
• Сначала проводилось только ручное тестирование без построения графа состояний
• Когда установщик стал разростаться, была создана программа для тестирования установщика с разнообразными настройками
• Программа учитывала как положительные, так и отрицательные сценарии, что позволило увеличить скорость тестирования и качество
• Минусом стало постоянное сопровождение программы тестирования, ибо постоянно добавлялись новые сценарии
• Для самой программы тестирования пришлось переделать многое в скрптах установщика
![Page 21: Тестирование инсталляторов](https://reader035.vdocuments.pub/reader035/viewer/2022070521/58ef5ab01a28abaf048b4595/html5/thumbnails/21.jpg)
Тестирование инсталляторов
Как бы я это сделал сейчас?
• Создали бы базу кодов ошибок• В автотестере учли бы возможность изменения порядка
шагов тестирования• Заранее закладывали бы больше времени на ручное
тестирование и тестирование на других ОС• Утилита для тестирования писалась бы практически в
одно время с разработкой инсталлятора