Магистрант кафедры телекоммуникаций и информационных технологий Комиссар Дмитрий Семёнович Руководители: Доцент Резников Геннадий Константинович
Для того чтобы программа была качественной, надёжно работала её необходимо всесторонне тестировать. Тестировать и на функциональные возможности и на нефункциональные. А количество человеческих ресурсов совсем не велико. Это количество сильно ограничено прежде всего финансовыми соображениями. Ручное тестирование постоянной функциональной части занимает много времени и приходиться часто тратить на то время. Единственный разумный выход всестороння автоматизация процесса тестирования при тесном взаимодействии с разработчиками антивирусного ядра. Разработчиками антивирусного ядра, была написана эмуляция распаковки, приложение теперь умеет распаковывать инсталляторы и архивы. Поэтому созрела необходимость постоянного тестирования инсталляторов и архивов, постоянно создавать архивы и в ручную их тестировать заняло бы много времени, а один раз созданный автоматический тест позволит ежедневно проверять корректность распаковки и дефекта в них файлов, и позволит проводить больше тестов на различных файлах а не на одной созданной коллекции.
Антивирусное ядро(АВ-ядро) –крупный проект, который может содержать большое количество ошибок; Качество ядра должно быть очень высоким, т.к. оно составляет основу почти всех продуктов компании «Вирус БлокАда» Недостаточное количество человеческих ресурсов для проведения ручных тестов Необходимость проверять АВ-ядро на регрессию, ежедневно
Сердцем любой антивирусной программы является её "движок", т.е. модуль, отвечающий за проверку объектов и обнаружение вредоносных программ. От того, как спроектирован и реализован этот модуль, зависит качество обнаружения вредоносных программ и эффективность защиты от них. Можно выделить несколько основных критериев оценки антивирусного ядра: Качество детектирования Диапазон детектирования Скорость реакции на новые угрозы Частота и размер обновлений антивирусных баз Обновление антивирусного ядра Поддержка упакованных и архивированных файлов
АВ-ядро – программная библиотека, предназначенная для поиска вредоносных программ в объектах различных типов Основные типы проверяемых инсталляторов: Inno Nsis Поддерживаемые платформы: Windows 98 Windows NT 4.X, 5.X, 6. X Linux FreeBSD 5.X, 6.X, 7.X
Borland SilkTest HP QuickTest Professional IBM Rational TestComplete Python
Существующие системы автоматизации специализируются на тестировании GUI/Web-приложений Закрытый исходный код и высокая стоимость рассмотренных систем автоматизации Высокая стоимость ручного тестирования АВ-ядра
Функциональные тесты ядра Тестирование на стабильность Тестирование на утечки ресурсов ОС Тестирование на скорость работы Тестирование на ложные срабатывания Статический анализ исходного текста ядра
Система должна обеспечивать непрерывность процесса тестирования Результат должен быть представлен в удобной для восприятия и анализа форме Минимизация вмешательства человека в технологический процесс тестирования Возможность исследования состояния AB-ядра с помощью разработанной системы
Основной язык разработки – Python Для конфигурационных файлов используется язык разметки YAML
В заключение можно отметить: автоматизация тестирования один из ключевых этапов технологического процесса при разработке и долгосрочной поддержке программного продукта; на рынке программного обеспечения не существует готового инструмента, который мог бы значительно облегчить создание системы автоматизированного тестирования антивирусного ядра, каждый инструмент автоматического тестирования, необходимо делать под антивирусное ядро, выбор стоит как наименее затратно и быстро создать автоматический тест; язык программирования Python является мощным инструментом для автоматизации тестирования, с открытым кодом; использование проектов с открытыми исходными текстами позволяет значительно сократить затраты на автоматизацию процесса тестирования антивирусного ядра; при проектировании системы хорошей практикой является использование открытых протоколов и стандартов, а также использование текстовых форматов данных везде, где это возможно; разработанная система позволяет создавать тесты не только для инсталляторов, но и для всех архиваторов использующих конфигурационные файлы или консоль; разработанная система автоматизации позволяет не только искать ошибки, но также проводить исследования антивирусного ядра на регрессии в функциональности, производительности, а также осуществлять поиск уязвимостей и утечек параметров в АВ- ядре.