# Тестирование установки

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

**Чек лист тестирования установки ПО:**

* Проверьте предварительные условия, необходимые до установки приложения, если таковые имеются.
* Установка должна выполняться в директорию по умолчанию. Пользователь должен видеть эту директорию, при этом он также должен иметь возможность изменить её.
* Убедитесь, что установка возможна из различных мест, например, по сети, онлайн, с компакт-диска и т.д.
* Проверьте установку без прав администратора.
* Убедитесь, что установщик работает нормально на “чистой” машине.
* Проверьте, вычисляется ли дисковое пространство, необходимое для успешной установки приложения, перед его установкой.
* Удостоверьтесь в возможности установки ПО на нескольких платформах. Предварительно необходимо утвердить список поддерживаемых платформ.
* Исследуйте успешность “тихой установки” (“silent installation”). При таком режиме сообщения, поступающие в процессе инсталляции, не должны отображаться в UI, но должны добавляться в логи.
* Убедитесь, что при полной установке пользователю представляется возможность ввести входные параметры и иные опции.
* Запустите ПО после успешной установки. Оно должно работать в соответствии с требованиями спецификации и отвечать потребностям пользователя.
* При деинсталляции необходимо убедиться в удалении всех ранее установленных файлов и записей в реестре.
* Удостоверьтесь, что пользователь может удалить или восстановить программное приложение.

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

### Как проводить тестирование установки

Тестирование инсталляции должно проводиться на различных платформах, вручную или автоматизировано. Это трудоемкая задача: выполнение одного тест-кейса на нескольких платформах может потребовать много времени. А если необходимо выполнить несколько тест-кейсов, временные затраты растут. Поэтому ниже мы рассмотрим, как выполнить ручное тестирование установки, а также – как можно автоматизировать данный процесс.

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

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

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

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

#### Тестирование установки приложения пошагово

**1.** **Установка полной версии.** Если вы обновляете приложение или ранее установили базовую версию, а теперь устанавливаете полную версию в ту же директорию, система должна позволить установить полную версию приложения без каких-либо ошибок. Перед установкой новой версии система должна вывести на экран сообщение, что обнаружена старая версия, и вопрос: “Хотите продолжить?”.

**2. Автоматизация.** Используя приведенную выше блок-схему, вы можете легко составить автотест для автоматизированного тестирования установки.

**3.** После выполнения каждого тест-кейса используйте образ диска для установки на выделенную машину: это сэкономит время.

**4. Проверка необходимого дискового пространства при установке.** Это самый важный сценарий при тестировании инсталляции. В процессе установки убедитесь, что установщик проверяет наличие минимально необходимого объёма дискового пространства.

Если для установки приложения требуется место размером 4 МБ, то при старте установщик должен убедиться в наличии не менее 4 МБ на диске в директории по умолчанию. Также проверьте, что после успешной установки программа использует именно 4 МБ пространства. Если используется больше места, должна вылетать ошибка. Проверка дискового пространства может выполняться автоматизировано или вручную.

В различных форматах файловых систем дисковое пространство может отличаться, например, в NTFS, FAT32, FAT16 и т.д., поэтому эти кейсы следует сгруппировать согласно платформам.

**5. Использование распределенных сред тестирования.** Использование модели master\&slave поможет одновременно выполнять различные тест-кейсы на разных платформах. Используя распределенную среду, master-модель одновременно запускает триггеры для разных slave-платформ и консолидирует результаты выполнения.

**6. Автоматизируйте проверку файлов после установки.** Для проверки успешной установки всех необходимых файлов можно использовать автоматизированный скрипт. Таким образом проверяется полнота установленного приложения. При ручном тестировании можно ограничиться проверкой свободного места на диске. Для этого зафиксируйте объем доступной памяти до установки и количество памяти, необходимой для инсталляции приложения, и сравните это с объемом доступной памяти после установки, чтобы убедиться в отсутствии потерь.

**7. Проверьте наличие изменений в реестре после установки.** После установки ПО нужно проверить, есть ли ожидаемые изменения в реестре. На рынке доступно множество бесплатных программ для этого.

**8. Негативные тест-кейсы.** Интенсивно пытайтесь нарушить процесс установки, чтобы проверить поведение приложения в таких условиях. Негативные тест-кейсы должны выполняться на каждом этапе тестирования инсталляции. При этом важнее всего проверить, что система возвращается в исходное состояние.

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

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://qabook.gitbook.io/start/teoriya-testirovaniya/osnovy-testirovaniya/vidy-testirovaniya/nefunkcionalnye-vidy-testirovaniya/testirovanie-ustanovki.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
