
- •Нефункциональные виды тестирования
- •Связанные с изменениями виды тестирования
- •Функциональное тестирование или Functional Testing
- •Как тестировать по на безопасность?
- •Особенности тестирования инсталляторов
- •Обновление
- •Удаление (Деинсталляция)
- •Тестирование мастера установки или Installation Wizard Testing
- •Кросс-платформенное тестирование инсталляторов
Тестирование мастера установки или Installation Wizard Testing
Умные люди писали: "Визарды - это зло". С этим можно соглашаться или нет, но тестировать их все равно приходится. Предлагается следующий план тестирования инсталляционного визарда:
-
Определить все пути от начала до конца, и затем расставить приоритеты для каждого из них. Это поможет нам избежать излишних затрат и усилий при прохождении низкоприоритеных путей.
-
Забудьте про GUI. Постарайтесь описать тест-кейсы без привязки к интерфейсным элементам. К примеру, GUI контролы checkbox/radiobutton или меню из двух пунктов это просто выбор между true и false, важно то, на что он влияет в конечном счете.
-
Если по результатам прохождения визарда получается какой либо проперти файл (файл, описывающий свойства в виде списка: свойство=значение), который потом передается дальше в процедуру экспорта. В этом случае можно разделить проверки на два этапа - первый, создавать (генерировать) такие проперти файлы и проверять, что экспорт работает правильно. Второй - проверять, что через GUI получаются правильные проперти файлы.
-
Не забудьте заняться таким рутинным видом тестирования визардов, как ходить туда-обратно по страницам:
-
ничего не меняя, все ответы должны сохраняться;
-
меняя что-либо на предыдущей странице, на следующей должно произойти адекватное изменение либо сброс ответов.
-
-
Убедитесь, что визард адекватно реагирует на неправильные ответы и не дает ходить дальше.
-
Кнопка Cancel (Close) должна работать всегда и на всех страницах визарда.
-
Создайте для каждого из возможных путей мастера установки шаблонный результат (в идеале, сделайте их несколько - для разных входных данных). Затем, по возможности, автоматизированно или вручную сравнивайте полученный результат с шаблонным.
-
Выделите те опции, которые не влияют ни на какие другие, и на которые другие не оказывают влияния. Работу этих опций можно будет тестировать изолированно от других.
Кросс-платформенное тестирование инсталляторов
Отдельным пунктом хочется выделить кросс-платформенное тестирование инсталляторов, которое обязательно должно проводиться для всех трех функций - установка, обновление и удаление:
-
Корректность работы инсталлятора с различными версиями ОС, Сервиспаков (ServicePack) и установленных обновлений
-
Проверка файлов, драйверов и библиотек при установке под разные ОС
-
Проверка прав на доступа к файлам, папкам и к системным записям для разных ОС
-
Проверка установленных на файлы приложения разрешений (Permissions)
Для упрощения процедуры тестирования рекомендуется создать таблицу, где колонками будут идти требуемые конфигурации, а строками - тестовые случаи (test cases) или тестируемые функции. В процессе тестирования на пересечении колонок и строк заполняйте результат, что сможет визуально показать прогресс тестирования и соответствие "кросс-платформенным" требованиям. Теперь перейдем непосредственно к описанию тестирования:
-
Если приложение должно работать в нескольких ОС, то инсталлятор должен проверять необходимый набор функций в процессе своей работы. Возможно, что где-то должен быть установлен какой-нибудь пакет обновлений или просто надо работать с другой библиотекой.
Случай из практики: "Приложение должно быть закрыто для установки на Windows Vista. Запускаем его, программа думает и выдает сообщение, что мол эта версия не будет работать под данной ОС. Все верно, нажимаем Ок. После этого компьютер думает пару секунд и сообщает следующее: "Приложение было некорректно завершено. Давайте попробуем запустить его в режиме совместимости?" Соглашаемся и запускаем. Автоматически стартует наше приложение еще раз, но на этот раз ставится "на ура". Не знаем, что и как там делает Vista, но код защиты пришлось переделывать."
-
Проверка списка устанавливаемых файлов проводится по аналогии с пунктом 2 раздела "Установка (Инсталляция)", что же касается установки драйверов и библиотек, то тут следует отметить особую важность данной проверки. Не все драйвера и библиотеки одинаково хорошо работаю на разных платформах.
Случай из практики: "Для некоторых драйверов есть зависимость от файловой системы, на которой работает ОС. Точнее для некоторых типов ошибок. Был случай, когда на NTFS все прекрасно работало, а на FAT32 ОС не могла подняться после установки ПО. Причина была в неверной записи при установке драйвера в реестр."
-
Необходимо проверить, что инсталлятор имеет права на доступ к файлам, папкам и к системным записям. Особенно это важно при инсталляции под ОС семейства UNIX, с их жесткими ограничениями в доступе к ресурсам для разных категорий пользователей. Так же смотрите пункт 5 раздела "Установка (Инсталляция)", а также пункт 4 раздела "Удаление (Деинсталляция)"
-
При/после инсталляции на unix системах, у файлов должны быть соответствующие разрешения (Permissions). Т.е. если файл предназначен для запуска, то он должен быть запускаемым, если это конфигурационный файл, например, то должны быть разрешения на модификацию и т.д.