Что представляет собой установка программы какие действия выполняет установщик в процессе установки

Windows, обеспечивающая установку программ (инсталлятор). Является компонентом Windows, начиная с Windows 2000; может доустанавливаться и на более ранние версии Windows. Вся необходимая для установки информация (иногда и вместе с устанавливаемыми файлами) содержится в установочных пакетах (installation packages), имеющих расширение .msi.

  • 1 История
  • 2 Логическая структура пакета
  • 3 Физическая структура пакета
  • 4 Процесс установки
  • 4.1 Действия
  • 4.2 Сбор информации
  • 4.3 Выполнение
  • 4.4 Откат
  • 5.1 Анонсирование и установка по требованию
  • 5.2 Журнал установки

История [ ]

Windows Installer был разработан в 1995—1998 годах и имел вначале кодовое название Darwin. Ранние версии назывались Microsoft Installer, отсюда стандартное расширение файла инсталляционного пакета — .msi. [1]

Первая версия Installer’а вышла в начале 1999 в качестве инсталлятора Microsoft Office 2000. В конце того же года Installer стал частью Windows 2000. Майкрософт всячески поощрял переход разработчиков на новый инсталлятор, включив в список требований к программам, желающим получить так называемый знак Windows 2000 Logo, требование устанавливаться с помощью Windows Installer.

НУЖНО ЗНАТЬ! 5 ошибок при УСТАНОВКЕ Windows 10, 7

Windows Installer оказался значительным шагом вперёд по отношению к предыдущему инсталлятору Microsoft — Setup API (ACME Setup): в нём были введены возможности Логическая структура пакета [ ]

Инсталляционный пакет описывает установку одного продукта и имеет свой Физическая структура пакета [ ]

Файл .msi представляет собой Microsoft Word, Excel и т. д.), в котором содержится небольшая реляционная база данных — набор из нескольких десятков взаимосвязанных таблиц, содержащих различную информацию о продукте и процессе установки. При этом все строковые данные в базе хранятся вместе в отдельном потоке документа, а в таблицах базы на них имеются ссылки; таким образом избегают дублирования строк, что значительно уменьшает размер базы.

Кроме базы, структура файла .msi предусматривает помещение туда пользовательских Процесс установки [ ]

Процесс установки состоит из нескольких этапов — сбора информации, выполнения (собственно установки), а также, возможно, отката (в случае ошибки или отмены установки пользователем).

Действия [ ]

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

Большая часть действий — это стандартные действия, характерные для типичного процесса сбора информации и установки. Все эти действия документированы, кроме них, пользователь может определить и свои действия (custom actions).

Действия, определённые пользователем, могут быть либо написаны на одном из JScript или VBScript так же и Eclipse, побочный язык от C++), либо размещаться в специально созданной Сбор информации [ ]

На этапе сбора информации Windows Installer собирает инструкции (либо путём взаимодействия с пользователем, либо программным путём) установить или удалить одну или несколько возможностей, входящих в продукт. Эти инструкции в дальнейшем формируют на основе базы данных внутренний сценарий, детально описывающий последующий этап выполнения.

Этот этап называют также непосредственным режимом (immediate mode).

Выполнение [ ]

К началу этого этапа инсталлятор генерирует внутренний сценарий, предназначенный для выполнения без вмешательства пользователя. Этот сценарий выполняется инсталлятором в привилегированном режиме службы NT (конкретно — под Откат [ ]

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

Прочие возможности [ ]

Анонсирование и установка по требованию [ ]

Журнал установки [ ]

Другие системы инсталляции [ ]

  • Примечания [ ]

Источник: windows.fandom.com

Home

Авторы: Алексей Булат, Василий Касимов, Владимир Антонов, Алексей Лянгузов
Особая благодарность за помощь в работе над материалом Сергею Вороновичу и Андрею Осипенко
Информация получена: Из блога Про Тестинг (статья Тестирование Инсталляций (Installation Software Testing) и сайта ProTesting.ru (раздел Тестирование Установки (Installation Testing))

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

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

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

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

Читайте также:
Как написать программу в turbo

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

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

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

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

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

  • Глубокое взаимодействие с операционной системой и зависимость от неё (файловая система, реестр, сервисы и библиотеки)
  • Совместимость как родных, так и сторонних библиотек, компонент или драйверов, с разными платформами
  • Удобство использования: интуитивно понятный интерфейс, навигация, сообщения и подсказки
  • Дизайн и стиль инсталляционного приложения
  • Совместимость пользовательских настроек и документов в разных версиях приложения
  • И многое другое

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

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

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

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

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

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

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

  • Установка (Инсталляция)
    1. Корректность списка файлов в инсталляционном пакете:
      1. при выборе различных типов установки, либо установочных параметров список файлов и пути к ним также могут отличаться.
      2. отсутствие лишних файлов (проектные файлы, не включенные в инсталляционный пакет, не должны попасть на диск пользователя)
      3. Регистрация приложения в ОС
      4. Регистрация расширений для работы с файлами:
        1. для новых расширений
        2. для уже существующих расширений
        3. Права доступа пользователя, который ставит приложение:
          1. права на работу с системным реестром
          2. права на доступ к файлам и папкам, например %Windir%system32
          3. Корректность работы мастера установки (Installation Wizard)
          4. Инсталляция нескольких приложений за одни заход
          5. Установка одного и того же приложения в разные рабочие директории одной рабочей станции
          6. Обновление
            1. Правильность списка файлов, а так же отсутствие лишних файлов:
              1. проверка списка файлов при разных параметрах установки
              2. отсутствие лишних файлов
              3. Обратная совместимость создаваемых данных
                1. сохранность и корректная работа созданных до обновления данных
                2. возможность корректной работы старых версий приложения с данными, созданными в новых версиях
                3. Обновление при запущенном приложении
                4. Прерывание обновления
                5. Удаление (Деинсталляция)
                  1. Корректное удаление приложения:
                    1. удаление из системного реестра установленных в процессе инсталляции библиотек и служебных записей
                    2. удаление физических файлов приложения.
                    3. удаление/восстановление предыдущих файловых ассоциаций.
                    4. сохранность файлов созданных за время работы с приложением
                    5. Удаление при запущенном приложении
                    6. Удаление с ограниченным доступом к папке приложения
                    7. Удаление пользователем без соответствующих прав

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

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

                    • Установка (Инсталляция)
                      1. Получение списка файлов должно проводиться До, а проверка самих файлов — После установки!
                        1. самое правильное — это попытаться получить список файлов от сборщика инсталляционного пакета. Фраза: «Возьмите и составьте список после установки ПО, там все верно» — это провокация и на нее лучше не поддаваться.
                        2. если программа содержит файлы подписанные сертификатом от MS, то не исключено, что могут попадаться временные файлы, которые уже не нужны для работы приложения (*.tmp и т.д.). Обратите внимание, что один и тот же инсталляционный пакет может устанавливать под разные ОС разные наборы файлов. Поэтому тестировать надо делать под каждую ОС отдельно.
                        3. Практически для любой ОС важна регистрация рабочих библиотек и служебных записей. Например, в ОС Windows вам необходимо будет проверить системный реестр на предмет корректной записи новых данных и регистрации новых/нового приложения.
                        4. После установки приложения необходимо проверить правильность регистрации расширений для рабочих файлов установленной программы в ОС. Сделайте двойной щелчок по документу, в результате он должен открыться вашим приложением. Если же вы получите в результате диалог выбора программы для открытия файлов данного типа или же он будет открыт другим приложением, то налицо будет ошибка регистрации расширения в ОС.
                        5. По-хорошему инсталляционная программа должна при старте проверять учетную запись пользователя и сразу корректно сообщать о каких-либо проблемах с правами. Но не исключен вариант, что на какие-нибудь служебные папки будут установлены дополнительные ограничения. Можно попытаться самим смоделировать ситуации когда какая-нибудь из папок закрыта для записи, например «Program Files», «Windows», «%Windir%system32», а также проверить как будет себя вести приложение при невозможности записать какие-нибудь из файлов по нужному пути. Не исключен вариант, что без некоторых файлов работоспособность всего приложения не будет нарушена. В этом случае достаточно указать о проблеме с копированием файла(ов) в лог, и НЕ выводить сообщение об ошибке.
                        6. Необходимо провести полное Тестирование мастера установки (Installation Wizard) приложения
                        7. Достаточно часто встречаются ситуации, когда приложение помимо себя самого ставит еще какой-нибудь продукт. Это может быть, как отдельное стороннее приложение, так и демонстрация своего же продукта. В процессе установки обычно это будет не еще один набор шагов мастера установки, а просто небольшое сообщение, что мол ставится такой-то продукт. При тестировании необходимо будет обратить особое внимание на то, что мы имеем последовательную установку нескольких продуктов. Если первый из них требует перезагрузку после своей установки, то второй может инсталлироваться некорректно, особенно если и там и там ставятся драйвера вглубь системы. Интерес представляют ошибки, возникающие именно на стыке установки двух приложений.
                        8. Встречаются приложения, которые можно установить в разные рабочие директории одной и той же рабочей станции, и при этом они будут работать независимо друг от друга, не создавая никаких конфликтных ситуаций. Но это не всегда так. Могут возникать конфликты с доступам к общим ресурсам на диске, в памяти и/или в системе. Все это должно быть протестировано тщательнейшим образом.
                        9. Обновление
                          1. По аналогии с пунктом 1 раздела «Установка (Инсталляция)».
                          2. Проверка обратной совместимости включает следующие шаги:
                            1. после установки обновления, все ранее созданные приложением объекты, такие как документы, формы, сохранения (если это игра) должны открываться и работать без ошибок. Такое поведение называется обратная совместимость (backward compatibility). Пользовательские настройки должны остаться прежними, конечно если обновления не затрагивали именно их изменение.
                            2. созданные в новой версии однотипные документы должны корректно открываться в старых версиях, конечно если целью обновления не стояло изменение формата и структуры файлов. Если же был внедрен новый формат, то в новой версии должна быть реализована возможность сохранения документа в старом формате.
                            3. В случае, если обновляемое приложение запущено, пользователь должен получить предупреждение о том, что обновление невозможно, при работающем приложении
                            4. Заметим, что процесс обновления может быть остановлен в любой момент, при этом исходное приложение должно остаться не изменённым и в рабочем состоянии. Допустим у вас установлено приложение версии 1, вы пытаетесь обновить его до версии 2, но в процессе установки передумали и прервали установку. В этом случае инсталлятор должен вернуть все уже сделанные изменения, почистить использованные для обновления временные файлы и завершить свою работу. При этом приложение версии 1 остается в рабочем состоянии.
                            5. Удаление (Деинсталляция)
                              1. Хорошей практикой считается удаление созданного в процессе инсталляции (регистрационные записи в системном реестре, библиотеки в системных каталогах %Windir%system32, файлы и т.д.). Условно процесс тестирования деинсталляции можно разбить на несколько частей:
                                1. проверка, что из системного реестра удалены, установленные в процессе инсталляции, служебные записи и ссылки на библиотеки.
                                2. проверка физического удаления файлов приложения.
                                3. проверка того, что после удаления приложения, зарегистрированные во время установки файловые расширения удалены, а ранее существующие (зарегистрированные до инсталляции) — восстановлены.
                                4. проверка сохранности данных созданных за время работы с приложением. Вполне вероятно, что лежат они где-то в глубине каталога самой программы. Это могут быть служебные скрипты, сохранения от игр или прочие созданные пользователем данные, удаление которых нанесет урон пользователю. Только предположите, что при удалении MS Office, все Ваши документы будут удалены вместе с ним. Поэтому подобные данные нельзя удалять без подтверждения пользователя.
                                5. В случае, если удаляемое приложение запущено, пользователь должен получить предупреждение о том, что удаление невозможно, пока приложение работает.
                                6. Стоит проверить поведение инсталлятора, если каталог программы закрыт для удаления по правам доступа. В данном случае процесс удаления не должен производиться, и пользователь должен получить соответствующее сообщение.
                                7. Если пользователь не авторизован для удаления приложения, то он должен получить соответствующее сообщение и процесс удаления должен быть прерван.
                                Читайте также:
                                Какие есть программы для нарезки музыки

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

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

                                1. Определить все пути от начала до конца, и затем расставить приоритеты для каждого из них. Это поможет нам избежать излишних затрат и усилий при прохождении низкоприоритеных путей.
                                2. Забудьте про GUI. Постарайтесь описать тест-кейзы без привязки к интерфейсным элементам. К примеру, GUI контролы checkbox/radiobutton или меню из двух пунктов это просто выбор между true и false, важно то, на что он влияет в конечном счете.
                                3. Если по результатам прохождения визарда получается какой либо проперти файл (файл, описывающий свойства в виде списка: свойство=значение), который потом передается дальше в процедуру экспорта. В этом случае можно разделить проверки на два этапа — первый, создавать (генерировать) такие проперти файлы и проверять, что экспорт работает правильно. Второй — проверять, что через GUI получаются правильные проперти файлы.
                                4. Не забудьте заняться таким рутинным видом тестирования визардов, как ходить туда-обратно по страницам:
                                1. ничего не меняя, все ответы должны сохраняться;
                                2. меняя что-либо на предыдущей странице, на следующей должно произойти адекватное изменение либо сброс ответов.

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

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

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

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

                                1. Если приложение должно работать в нескольких ОС, то инсталлятор должен проверять необходимый набор функций в процессе своей работы. Возможно, что где-то должен быть установлен какой-нибудь пакет обновлений или просто надо работать с другой библиотекой.Случай из практики: «Приложение должно быть закрыто для установки на Windows Vista. Запускаем его, программа думает и выдает сообщение, что мол эта версия не будет работать под данной ОС. Все верно, нажимаем Ок. После этого компьютер думает пару секунд и сообщает следующее: «Приложение было некорректно завершено. Давайте попробуем запустить его в режиме совместимости?» Соглашаемся и запускаем. Автоматически стартует наше приложение еще раз, но на этот раз ставится «на ура». Не знаем, что и как там делает Vista, но код защиты пришлось переделывать.»
                                2. Проверка списка устанавливаемых файлов проводится по аналогии с пунктом 1 раздела «Установка (Инсталляция)», что же касается установки драйверов и библиотек, то тут следует отметить особую важность данной проверки. Не все драйвера и библиотеки одинаково хорошо работаю на разных платформах.Случай из практики: «Для некоторых драйверов есть зависимость от файловой системы, на которой работает ОС. Точнее для некоторых типов ошибок. Был случай, когда на NTFS все прекрасно работало, а на FAT32 ОС не могла подняться после установки ПО. Причина была в неверной записи при установке драйвера в реестр.»
                                3. Необходимо проверить, что инсталлятор имеет права на доступ к файлам, папкам и к системным записям. Особенно это важно при инсталляции под ОС семейства UNIX, с их жесткими ограничениями в доступе к ресурсам для разных категорий пользователей. Так же смотрите пункт 4 раздела «Установка (Инсталляция)», а также пункт 4 раздела «Удаление (Деинсталляция)»
                                4. При/после инсталляции на unix системах, у файлов должны быть соответствующие разрешения (Permissions). Т.е. если файл предназначен для запуска, то он должен быть запускаемым, если это конфигурационный файл, например, то должны быть разрешения на модификацию и т.д.

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

                                Обсудить в форуме

                                Источник: www.software-testing.ru

                                Что представляет собой установка программы какие действия выполняет установщик в процессе установки

                                Для 32-битной системы:

                                • msiexec /unregister
                                • msiexec /register
                                • %windir%system32msiexec.exe /unregister
                                • %windir%system32msiexec.exe /regserver
                                • %windir%syswow64msiexec.exe /unregister
                                • %windir%syswow64msiexec.exe /regserver

                                После этого компьютер необходимо перезапустить, и проблема исчезнет.

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

                                Источник: windowstune.ru

                                Рейтинг
                                ( Пока оценок нет )
                                Загрузка ...
                                EFT-Soft.ru