Тестирование инсталляторов

22
Software quality assurance days 19 Международная конференция по вопросам качества ПО sqadays.com Санкт-Петербург. 20–21 мая 2016 Батищев Евгений Аркадия. Санкт-Петербург, Россия Тестирование инсталляторов

Transcript of Тестирование инсталляторов

Page 1: Тестирование инсталляторов

Software quality assurance days19 Международная конференция по вопросам качества ПОsqadays.com

Санкт-Петербург. 20–21 мая 2016

Батищев ЕвгенийАркадия. Санкт-Петербург, Россия

Тестирование инсталляторов

Page 2: Тестирование инсталляторов

Тестирование инсталляторов

Немного о себе

Батищев Евгений

Программист, Аркадия.

• Разработка• Разработка очень быстро• Разработка очень качественно• “Сделайте так, чтобы работало, пожалуйста”

[email protected]

Page 3: Тестирование инсталляторов

Тестирование инсталляторов

Зачем тестировать инсталляторы или немного банальщины

Page 4: Тестирование инсталляторов

Тестирование инсталляторов

«Встречают по одёжке»

• Первое впечатление о Вашем продукте зависит от Вашего инсталлятора

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

поведения установщика

Page 5: Тестирование инсталляторов

Тестирование инсталляторов

Зачем тестировать?Что не получите, если не протестировать свой инсталлятор?•Не получите интересного опыта•Не получите заслуженной похвалы•Не получите заслуженных денег

Что получите, если не протестировать свой инсталлятор?•Проблемы с заказчиками/начальством/пользователями•Вам будут звонить и дышать в трубку те, кто познал всю горечь вашего инсталлятора•В крайнем случае можно получить по лицу от заказчика/начальства/пользователя

Page 6: Тестирование инсталляторов

Тестирование инсталляторов

«Я есть Альфа и Омега»Где всё зависит от

инсталлятора?• Мобильные приложения• Настольные приложения• Игры, офисные приложения, рабочие программы и т.д.

Page 7: Тестирование инсталляторов

Тестирование инсталляторов

Каковы задачи инсталлятора?

• Установка• Обновление• Удаление

Page 8: Тестирование инсталляторов

Тестирование инсталляторов

Что надо тестировать?

• Успешную установку ПО• Настройки установленного ПО• Обновление ПО• Удаление ПО

Page 9: Тестирование инсталляторов

Тестирование инсталляторов

Больше подробностей

• Список файлов в пакете установщика• Работу Installation Wizard’а• Список установленных файлов• Регистрацию приложения в ОС• Права доступа пользователя• Откаты установки в случае отмены установки• И многое-многое другое

Page 10: Тестирование инсталляторов

Тестирование инсталляторов

Как всё это протестировать?

• Ручное тестирование• Составление графа состояний и переходов

• Автоматизированное тестирование• Autoit• Своё, родное

Page 11: Тестирование инсталляторов

Тестирование инсталляторов

Лучшие практики тестирования установщиков

Page 12: Тестирование инсталляторов

Тестирование инсталляторов

Ручное тестирование

• Составление графа состояний и переходов

Page 13: Тестирование инсталляторов

Тестирование инсталляторов

Составление графа состояний и переходов(State-transition diagram)• Выделяем состояния для каждого шага инсталлятора• Выделяем конечные состояния: установка отменена,

установка завершена, аварийное прерывание установки• Строим граф, учитывая кнопки Next, Back, Cancel• Выписываем наборы тестов, учитывая граф• Тестируем• PROFIT!!!

Page 14: Тестирование инсталляторов

Тестирование инсталляторов

Автоматизированное тестирование

• Autoit• Своё, родное

Page 15: Тестирование инсталляторов

Тестирование инсталляторов

Autoit

• Что это такое?• Свободно распространяемый язык для

автоматизации выполнения задач в Microsoft Windows

• Как работает?• Использует симуляцию нажатия клавиш, движений

мыши и манипуляции с окнами, элементами управления

• Что с этим делать?• Писать скрипты и радоваться

Page 16: Тестирование инсталляторов

Тестирование инсталляторов

Своё, родное и любимое

• Очень часто необходимо писать софт для тестирования своих продуктов

• Плюсы• Заточенность под собственный продукт• Возможности изменений тест-кейсов под нужды

каждой новой версии продукта• Минусы

• Заточенность только под конкретный свой продукт• Могут быть свои проблемы с реализацией и

настройкой

Page 17: Тестирование инсталляторов

Тестирование инсталляторов

Личный опыт

Page 18: Тестирование инсталляторов

Тестирование инсталляторов

Короткий опыт разработки на InstallAware

• Предназначен для создания установщиков• Содержит в себе множество готовых расширений

установщиков• Удобная работа с входными параметрами – можно хоть

через консоль запускать установку• Крайне не удобный язык написания скриптов• Невозможность переименовывать файлы и менять их

расположение в списке файлов скриптов• Медленное время работы

Page 19: Тестирование инсталляторов

Тестирование инсталляторов

Что нужно было сделать?

• Установщик, который занимался бы:• Проверкой системных конфигураций• Развёрткой веб-приложение на IIS с заданным

портом и названием• Созданием БД и накатываем миграционных скриптов• Обновлением существующих компонентов• Возможность “тихой” установки

Page 20: Тестирование инсталляторов

Тестирование инсталляторов

История• Во время разработки не было сделано заделов для тестирования

• Сначала проводилось только ручное тестирование без построения графа состояний

• Когда установщик стал разростаться, была создана программа для тестирования установщика с разнообразными настройками

• Программа учитывала как положительные, так и отрицательные сценарии, что позволило увеличить скорость тестирования и качество

• Минусом стало постоянное сопровождение программы тестирования, ибо постоянно добавлялись новые сценарии

• Для самой программы тестирования пришлось переделать многое в скрптах установщика

Page 21: Тестирование инсталляторов

Тестирование инсталляторов

Как бы я это сделал сейчас?

• Создали бы базу кодов ошибок• В автотестере учли бы возможность изменения порядка

шагов тестирования• Заранее закладывали бы больше времени на ручное

тестирование и тестирование на других ОС• Утилита для тестирования писалась бы практически в

одно время с разработкой инсталлятора

Page 22: Тестирование инсталляторов

Тестирование инсталляторов

Вопросы?

• Email: [email protected]• Skype: batonrain