Анализ работы инсталляторов доклад

Обновлено: 05.07.2024

Являясь обычной программой, инсталлятор обладает рядом особенностей, среди которых стоит отметить следующие:

И многое другое

Тестирование мастера установки (Installation Wizard)

План тестирования инсталляционного визарда:

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

Забудьте про GUI. Постарайтесь описать тест-кейзы без привязки к интерфейсным элементам. К примеру, GUI контролы checkbox/radiobutton или меню из двух пунктов это просто выбор между true и false, важно то, на что он влияет в конечном счете.

Если по результатам прохождения визарда получается какой либо проперти файл (файл, описывающий свойства в виде списка: свойство=значение), который потом передается дальше в процедуру экспорта. В этом случае можно разделить проверки на два этапа — первый, создавать (генерировать) такие проперти файлы и проверять, что экспорт работает правильно. Второй — проверять, что через GUI получаются правильные проперти файлы.

Не забудьте заняться таким рутинным видом тестирования визардов, как ходить туда-обратно по страницам:

Убедитесь, что визард адекватно реагирует на неправильные ответы и не дает ходить дальше.

Кнопка Cancel (Close) должна работать всегда и на всех страницах визарда.

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

Выделите те опции, которые не влияют ни на какие другие, и на которые другие не оказывают влияния. Работу этих опций можно будет тестировать изолированно от других.

Сравнительный анализ архиваторов

Архиватор — программа, осуществляющая сжатие и/или упаковку одного и более файлов в архив или серию архивов, для удобства переноса или хранения, а также распаковку архивов. На сегодняшний день количество архиваторов насчитывается около 50… Некоторые из них устарели и практически не используются. Каждый архиватор обладает своими достоинствами и недостатками, такими как скорость сжатия и степень сжатия. Эти характеристики — обратно зависимые величины. То есть, чем больше скорость сжатия, тем меньше степень сжатия, и наоборот. В настоящее время архивирование (сжатие) данных является трудоемкой задачей. Дело в том, что большинство пользователей или владельцев (авторов) информации хранят различную информацию в сжатом виде (в архивах), что уменьшает размер и в некоторой степени защищает ее. Защита подразумевает собой защиту от некоторых вирусов, т.к. сжатие данных – это есть кодирование информации в некоторой степени. А само сжатие данных обычно происходит значительно медленнее, чем обратная операция (разархивирование)…

image

Тестирование установки ПО направленно на проверку успешной инсталляции и настройки, а также обновления или удаления программного обеспечения.
В настоящий момент наиболее распространена установка ПО при помощи инсталляторов (специальных программ, которые сами по себе так же требуют надлежащего тестирования.

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

В распределенных системах, где приложение разворачивается на уже работающем окружении, простого набора инструкций может быть мало. Для этого, зачастую, пишется план установки (Deployment Plan), включающий не только шаги по инсталляции приложения, но и шаги отката (roll-back) к предыдущей версии, в случае неудачи. Сам по себе план установки также должен пройти процедуру тестирования для избежания проблем при выдаче в реальную эксплуатацию. Особенно это актуально, если установка выполняется на системы, где каждая минута простоя — это потеря репутации и большого количества средств, например: банки, финансовые компании или даже баннерные сети. Поэтому тестирование инсталляторов можно назвать одной из важнейших задач по обеспечению качества программного обеспечения.

Именно такой комплексный подход с написанием планов, пошаговой проверкой установки и отката инсталляции, полноправно можно назвать тестированием установки или Installation Testing.

Под катом много текста о том, что следует помнить при тестировании.

image
Особенности тестирования инсталляторов:

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

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

image
Что тестировать в Инсталляционных программах?

image
Как тестировать Инсталляции?

Практически для любой ОС важна регистрация рабочих библиотек и служебных записей. Например, в ОС Windows вам необходимо будет проверить системный реестр на предмет корректной записи новых данных и регистрации новых/нового приложения.
Если при открытии документа, на работу с которым рассчитана ваша программа, вы получите в результате диалог выбора программы для открытия файлов данного типа или же он будет открыт другим приложением, то налицо будет ошибка регистрации расширения в ОС.

image
Обновление

Проверка обратной совместимости включает следующие шаги:
● После установки обновления, все ранее созданные приложением объекты, такие как документы, формы, сохранения (если это игра) должны открываться и работать без ошибок. Такое поведение называется обратная совместимость (backward compatibility). Пользовательские настройки должны остаться прежними, конечно если обновления не затрагивали именно их изменение.
● Созданные в новой версии однотипные документы должны корректно открываться в старых версиях, конечно если целью обновления не стояло изменение формата и структуры файлов. Если же был внедрен новый формат, то в новой версии должна быть реализована возможность сохранения документа в старом формате.
● В случае, если обновляемое приложение запущено, пользователь должен получить предупреждение о том, что обновление невозможно, при работающем приложении.

Заметим, что процесс обновления может быть остановлен в любой момент, при этом исходное приложение должно остаться не изменённым и в рабочем состоянии. Допустим у вас установлено приложение версии 1, вы пытаетесь обновить его до версии 2, но в процессе установки передумали и прервали установку. В этом случае инсталлятор должен вернуть все уже сделанные изменения, почистить использованные для обновления временные файлы и завершить свою работу. При этом приложение версии 1 остается в рабочем состоянии.

image
Удаление (Деинсталляция)

image
Тестирование мастера установки (Installation Wizard)

В большинстве случаев инсталлятор представляет собой приложение в виде мастера (Wizard), которое может обладать специфическими требованиями, рекомендации по тестированию которых рассмотрены ниже:

image
Кросс-платформенное тестирование инсталляторов

Отдельным пунктом хочется выделить кросс-платформенное тестирование инсталляторов, которое обязательно должно проводиться для всех трех функций — установка, обновление и удаление:
● Корректность работы инсталлятора с различными версиями ОС, Сервиспаков (ServicePack) и установленных обновлений.
● Проверка файлов, драйверов и библиотек при установке под разные ОС.
● Проверка прав на доступа к файлам, папкам и к системным записям для разных ОС.
● Проверка установленных на файлы приложения разрешений (Permissions).

image


Идея моего друга dartos.

· Инсталлятору категорически запрещается брать с Клиента деньги и другие материальные вознаграждения за выполнение работ.

Инсталлятор осуществляет

· Звонок Клиенту при помощи сервиса C2C в ЦМ (Приложение 2) за час до назначенного времени (временной интервал, указанный в наряде) для подтверждения проведения Инсталляционных работ и времени инсталляции;

· При опоздании Инсталлятор передает заявку своему координатору для поиска ресурса, если ресурс не найден, координатор передает заявку в ЦПП. В случае отсутствия Клиента в согласованное время - Инсталлятор ожидает его не менее 30 минут на адресе инсталляции. В случае отсутствия Клиента, Инсталлятор в реальном времени сообщает об отсутствии Клиента Диспетчеру ОКИ ЦПП для переназначения Наряда. Инсталлятор покидает адрес Клиента только после согласования с Диспетчером ОКИ ЦПП;

· Перед началом работ Инсталлятор должен убедиться в достаточности инструмента и оборудования для проведения работ, наличии Клиента или его представителя на объекте, наличии доступа во все помещения и ко всему оборудованию, необходимому для проведения работ. В случае отсутствия доступа к СКС, Инсталлятор сообщает в реальном времени эту информацию Диспетчеру ОКИ ЦПП, который в свою очередь должен организовать доступ. Инсталлятор покидает адрес Клиента только после согласования с Диспетчером ОКИ ЦПП.

· Выполнение работ последовательно, согласно инструкции, оптимально быстро и максимально эффективно;

· Монтажные работы по проводке оптического кабеля от ОРК/РК/абонентского отвода/патч-панели до помещения Клиента, ввод кабеля в помещение Клиента и проводке кабеля внутри квартиры Клиента;

· Подключение, настройку оборудования, необходимого для предоставления Клиенту заказанных им услуг, активацию/деактивацию услуг;

· Настройку Wi-Fi при подключении услуги Интернет, а также разъяснение Клиенту принципов работы беспроводной технологии, оборудования;

· Замер скорости доступа к сети Интернет по Wi-Fi в ЦМ (Приложение 2) и по кабелю;

· Проверку качества предоставленных услуг;

· Демонстрацию Клиенту предоставленных услуг;

· Информирование Клиента о ЕЛК и способах оплаты услуг;

· Информирование Клиента об услугах общества, в том числе о Гарантии плюс, Антивирусе и т.д.;

· Информирование о справочно-информационных службах обслуживания;

· Инсталлятор передает Клиенту на подписание Клиентский пакет документов п.3. (в бумажной или электронной форме). После подписания бумажной формы - каждый из документов заполняется в 2-х экземплярах (один экземпляр каждого из документов остаётся у Клиента, второй экземпляр передается посредством ССДЕСУЗ работнику ОПП ЦПП и в течение 3-х рабочих дней оригиналы предоставляются в ОПП ЦПП). Инсталлятор несет ответственность за корректность заполнения Клиентского пакета документов, несоответствие указанных в нем тарифных планов актуальным и действительным на момент подписания;

· Инсталлятор предоставляет справочную печатную продукцию (памятки, инструкции и т.д.), если таковая будет предусмотрена;

· Закрытие Наряда на выполнение работ в ЦМ (Приложение 2) по завершении работ;

· В случае отличия выполненных работ от работ, указанных в Наряде ЦМ (Приложение 2), Инсталлятор обязан довести до Диспетчера СКЛТП перечень выполненных работ во избежание отсутствия работ в WFM. Перечень выполненных работ должен полностью совпадать с актом выполненных работ, подписанным Клиентом;

· С согласия Клиента фото фиксацию результатов выполнения работ в ЦМ (Приложение 2). Фото/видео/аудио материалы, подтверждающие выполнение работ, согласно требованиям (Приложение 2), прикрепляет к наряду в ЦМ (Приложение 2). Если Клиент отказывается от фиксации результата выполнения работ, данный факт необходимо указать в акте выполненных работ, подписываемый Клиентом.


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

Что такое инсталлятор?

  • операционных систем;
  • драйверов;
  • программ.

А вообще, такое разделение можно назвать достаточно условным, поскольку и операционные системы со встроенными в них приложениями, и управляющие работой оборудования драйверы, можно отнести именно к категории программ. Разница только в методах установки такого ПО и наличии на компьютере необходимых компонентов для его дальнейшего функционирования.

Установщик Windows

Наверняка любой пользователь, хоть раз устанавливавший Windows самостоятельно, замечал, что на одной из стадий в окне установки указывается, что в данный момент производится настройка оборудования. Это как раз и есть та самая инсталляция драйверов.

Однако говоря о том, что такое инсталлятор Windows, не стоит забывать, что сюда же можно включить и программные компоненты, отвечающие за интегрирование в систему специальных пакетов обновлений. По сути своей, такие файлы (чаще всего формата MSI), если они скачаны пользователем в ручном режиме, тоже можно отнести к этой категории.

Установщик программы

Теперь следует остановиться на установке программных апплетов, что знакомо каждому пользователю. Инсталлятор файлов приложений обычно имеет формат EXE (реже встречаются устаревшие DOS-форматы), но использовать его без предварительно установленной операционной системы не представляется возможным ни при каких обстоятельствах. В случае с Windows это связано с тем, что в процессе установки любого программного обеспечения, если только оно не представлено в виде портативной версии, производится регистрация всех компонентов приложения, для чего именно в Windows используется так называемый системный реестр. Его назначение состоит еще и в том, что тут находятся и регистрационные ключи самой системы, и ее настроек, и драйверов, и пользовательских данных, и вообще всего того, что связано с софтверной частью компьютера.

Запуск инсталлятора от имени администратора

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

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

Инсталлятор драйвера

Теперь давайте поговорим о том, что такое инсталлятор драйвера. Конечно, установщик может быть представлен в виде самого обычного исполняемого EXE-файла, но зачастую они поставляются в виде информационных объектов формата INF. Действия с такими файлами отличаются.

Установка драйвера из INF-файла

Поиск драйверов для обновления

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

Можно ли сделать инсталлятор самому?

Теперь поговорим о создании инсталлятора самим пользователем. Сейчас речь, конечно же, не идет о том, чтобы использовать какой-то язык программирования. Благо сегодня для таких целей создано достаточно много программ от сторонних разработчиков. При этом включать в пакеты таких установщиков можно любые составляющие. Например, ни для кого не секрет, что на дисках с дистрибутивами Windows частенько присутствуют утилиты для работы с жесткими дисками от Acronis или оффлайн-наборы драйверов DriverPack Solution. Все это включается в инсталляционные наборы не посредством программирования, а как раз с использованием стороннего ПО.

Как включить дополнительные компоненты в состав установочного пакета?

Создание инсталлятора в программе Actual Installer

Достаточно просто отметить доступные для загрузки приложения и использовать кнопку загрузки с последующей установкой или объединением в один пакет. Одной из самых сильных сторон первого (платформенного) приложения является то, что установить изначально программу можно даже на съемный носитель в виде самой обычной флешки.

Что такое деинсталлятор?

Программа iObit Uninstaller

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

Послесловие

Это вкратце и все, что касается понимания того, что собой представляют инсталляторы и деинсталляторы, для чего они нужны и как работают. Здесь не делался упор на создание таких установщиков путем использования языков программирования, что рядовому пользователю и не нужно. Достаточно применять простейшие приложения, позволяющие объединить несколько программ в один установочный пакет. Кстати сказать, из такого набора в программах вроде UltraISO можно создать специальные загрузочные образы, которые можно запускать еще до загрузки Windows и уже из них инсталлировать и операционные системы, и дополнительное ПО.







Что пишут в блогах

Подписаться

Онлайн-тренинги

Конференции

Heisenbug 2022 Spring
Большая техническая конференция по тестированию
12-14 апреля 2022, онлайн

Что пишут в блогах (EN)

  • Aginext Conference 2022 Global
  • This content. " target="_blank" rel="nofollow">How far should you go in your investigation of a defect?
  • Is there such a thing as an Evil Tester? Poking holes is good.
  • 5 Software Testing Trends in 2022
  • Why Speak at conferences? write blogs? - To get your message out.
  • I’m independent!
  • How My Team Tests for Now
  • Lesson Learned - I'm not ready for that vs I could do but choose not.
  • Two Ways of Solo Programming
  • The Positive Negative Split Leads Us Astray

Разделы портала

Про инструменты

Тестирование установки направленно на проверку успешной инсталляции и настройки, а также обновления или удаления программного обеспечения.

В настоящий момент наиболее распространена установка ПО при помощи инсталляторов (специальных программ, которые сами по себе так же требуют надлежащего тестирования, описание которого рассмотрено ниже в разделе "Особенности тестирования инсталляторов.").

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

В распределенных системах, где приложение разворачивается на уже работающем окружении, простого набора инструкций может быть мало. Для этого, зачастую, пишется план установки (Deployment Plan), включающий не только шаги по инсталляции приложения, но и шаги отката (roll-back) к предыдущей версии, в случае неудачи. Сам по себе план установки также должен пройти процедуру тестирования для избежания проблем при выдаче в реальную эксплуатацию. Особенно это актуально, если установка выполняется на системы, где каждая минута простоя - это потеря репутации и большого количества средств, например: банки, финансовые компании или даже баннерные сети. Поэтому тестирование установки можно назвать одной из важнейших задач по обеспечению качества программного обеспечения.

Именно такой комплексный подход с написанием планов, пошаговой проверкой установки и отката инсталляции, полноправно можно назвать тестированием установки или Installation Testing.

Особенности тестирования инсталляторов

Инсталлятор - это "обычная" программа, основные функции которой - Установка (Инсталляция), Обновление и Удаление (Деинсталляция) программного обеспечения.

Всем известна народная мудрость: "Встречают по одежке, а провожают по уму". Инсталляционное приложение и есть та самая одежка, по которой создается первое впечатление о Вашем продукте. Именно поэтому тестирование установки - это одна из важнейших задач.

Являясь обычной программой, инсталлятор обладает рядом особенностей, среди которых стоит отметить следующие:

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

  • риск потери пользовательских данных
  • риск вывода операционной системы из строя
  • риск неработоспособности приложения
  • риск некорректной работы приложения

В тоже время, как и на любую программу, на инсталлятор накладываются некоторые функциональные требования. Объединив их со списком особенностей, мы получим более полную картину, показывающую объем предстоящих работ по тестированию. Далее, исходя из списка требований, Вам надо будет ответить на вопросы: "Что тестировать?", и только затем - "Как тестировать?".

В большинстве случаев инсталлятор представляет собой приложение в виде мастера (Wizard), которое может обладать специфическими требованиями, рекомендации по тестированию которых рассмотрены разделе: "Тестирование мастера установки (Installation Wizard)"

С современным изобилием персональных компьютеров, серверов и операционных систем, возникла потребность в установки одного и того же программного обеспечения на разные платформы. Для этого инсталляторы должны понимать что и куда они устанавливают в зависимости от окружения. Некоторые рекомендации по этому виду тестирования рассмотрены ниже в разделе "Кросс-платформенное тестирование инсталляторов"

Что тестировать в Инсталляционных программах?

Распишем подробнее, "Что?" необходимо проверить, для оценки правильности работы инсталлятора:

Как тестировать Инсталляции

Воспользовавшись рекомендациями по тому "Что тестировать в инсталляционных программах?", рассмотрим "Как тестировать Инсталляции?".

Тестирование мастера установки (Installation Wizard)

Умные люди писали: "Визарды - это зло". С этим можно соглашаться или нет, но тестировать их все равно приходится. Предлагается следующий план тестирования инсталляционного визарда:

Кросс-платформенное тестирование инсталляторов

Отдельным пунктом хочется выделить кросс-платформенное тестирование инсталляторов, которое обязательно должно проводиться для всех трех функций - установка, обновление и удаление:

  1. Корректность работы инсталлятора с различными версиями ОС, Сервиспаков (ServicePack) и установленных обновлений
  2. Проверка файлов, драйверов и библиотек при установке под разные ОС
  3. Проверка прав на доступа к файлам, папкам и к системным записям для разных ОС
  4. Проверка установленных на файлы приложения разрешений (Permissions)

Для упрощения процедуры тестирования рекомендуется создать таблицу, где колонками будут идти требуемые конфигурации, а строками - тестовые случаи (test cases) или тестируемые функции. В процессе тестирования на пересечении колонок и строк заполняйте результат, что сможет визуально показать прогресс тестирования и соответствие "кросс-платформенным" требованиям. Теперь перейдем непосредственно к описанию тестирования:

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

Читайте также: