
Я ніколи не користувався Dr. Web. Я гадки не маю, як він влаштований. Але це не завадило мені написати для нього ряд автотестів (і лише ліньки не дозволила мені написати ще сотню інших):
- Тест на встановлення Dr. Web;
- Тест на обмеження доступу до знімних пристроїв (флешок);
- Тест на розмежування доступу до каталогу між програмами;
- Тест на розмежування доступу до каталогу між користувачами системи (контроль батьків).
Такі та багато інших тестів можна клепати як гарячі пиріжки, і не тільки стосовно Dr. Web, і не тільки стосовно антивірусів. У цій статті я розповім, як це зробити.
Підготовка
Для тестів нам знадобиться віртуалка із Windows на борту. Я підготував її вручну, виконавши на ній такі маніпуляції:
- Власне встановив Windows 10 Pro x64;
- Під час встановлення створив основного користувача "testo" паролем "1111";
- Увімкнув автологін для цього користувача;
Для автоматизації тестів я використовуватиму платформу Testo. Що це таке і як цим скористатися можна почитати . Нам же зараз потрібно імпортувати готову віртуалку до автотестів. Зробити це дуже просто:

Тут передбачається, що /path/to/win10.qcow2 - Це шлях до диску тієї віртуалки, яку я підготував уручну. На цьому підготовка закінчується і починається екшен.
Тест №1 - Встановлюємо Dr. Web!
Спершу треба вирішити питання з перенесенням дистрибутива Dr. Веб на віртуальну машину. Зробити це можна (наприклад) за допомогою флешки:

Все, що нам треба зробити – це покласти інсталятор Dr. Web у татку ${DR_WEB_DIR} (точне значення цього параметра ми будемо задавати під час запуску testo). А Testo саме подбає про те, щоб цей інсталятор опинився на флешці.
Тепер можемо розпочати, власне, написання тесту. Поки що почнемо тест із простих речей: увімкнемо віртуалку (після створення її буде вимкнено), дочекаємося появи робочого столу, включимо флешку і відкриємо її вміст через провідник:

Скріншот на момент закінчення сценарію

Можна, звичайно, запустити інсталятор прямо звідси, із самої флешки. Але ми краще зробимо все чесно - ми скопіюємо інсталятор на робочий стіл і запустимо інсталятор звідти. Як нам скопіювати файл? А як би це зробив чоловік?

Скріншот, на якому ще відбувається копіювання файлу

Все, копіювання успішно завершено! Тепер можна закрити вікно з флешкою та витягнути її:

Скріншот після закриття провідника

Тепер, коли інсталятор опинився на робочому столі, нам потрібно двічі клацнути на нього, щоб запустити процес установки. А сама установка зводиться до простого проклювання кнопок і галочок і не має великого інтересу:

Скріншот на момент закінчення установки

Завершуємо тест перезавантаженням. І насамкінець не забудемо перевірити, що після перезавантаження на робочому столі з'явилася іконка з Dr. Web:

Скріншот після перезавантаження

Відмінна робота! Ми автоматизували встановлення антивірусу Dr. Web! Давайте трохи перепочнімо і подивимося, як це виглядає в динаміці:

Переходимо до тестування фіч.
Тест №2 - Обмеження доступу до флешок
Перша фіча за списком – обмеження доступу до флешок. Для цього сплануємо досить прямолінійний тест:
- Спробуємо вставити флешку і створити там порожній файл - має вийти. Витягнемо флешку;
- Включимо блокування знімних пристроїв Dr. Web Security Center;
- Ще раз вставимо флешку і спробуємо видалити створений файл. Дія має бути заблокована.
Створимо собі нову флешку, вставимо її у Windows та спробуємо створити папку. Що може бути простішим?

Скріншот на момент закінчення сценарію

Створюємо новий текстовий файл через контекстне меню провідника:

Скріншот після перейменування файлу

Відключаємо флешку, робимо це безпечно:

Тепер ми переконалися, що з флешкою працювати можна, а значить, можна приступати до її блокування в центрі безпеки Dr. Web. Для цього спочатку потрібно відкрити центр безпеки:

Скріншот із вікном Security Center

Можемо помітити, що для відкриття будь-якої програми в Windows потрібно виконати фактично однакові дії (клацнути на рядок пошуку, дочекатися появи вікна з популярними програмами, вбити ім'я програми, що цікавить, дочекатися, коли вона з'явиться в списку і, нарешті, натиснути Enter). Тому цю групу дій можна виділити в макрос open_app, в який як параметр буде передаватися ім'я програми, що відкривається:

Цей макрос нам ще знадобиться.
Перше, що ми зробимо, відкривши центр безпеки Dr. Web - включимо можливість вносити зміни:

Тепер трохи покликаємо по меню і зайдемо в меню "Configure device access rules". У цьому меню поставимо галочку у пункті "Block removable media".

Скріншот із вікном Devices and Personal Data

Спробуємо відкрити флешку тепер:

Скріншот з повідомлення про помилку

Ось так потихеньку-пологоньку ми і написали перший тест з тестуванням цілком відчутної фічі в Dr. Web. Настав час перепочити і помедитувати, дивлячись на результати наших праць:

Тест №3 — Розмежування доступу до каталогу між програмами
Основна ідея цього тесткейсу – перевірити роботу Dr. Web при обмеженні доступу до певної папки. Якщо конкретно, необхідно захистити папку від будь-яких змін, але додати виняток для будь-якої сторонньої програми. Власне, сам тест виглядає так:
- Встановимо на ОС сторонню програму, для якої трохи пізніше додамо виняток при доступі до папки, що захищається. Сьогодні стороння програма дня – файловий менеджер ;
- Створюємо папку з файликом, яку захищатимемо всіма силами;
- Відкриємо центр безпеки Dr. Web та включимо там захист цієї папки;
- Налаштуємо виняток для FreeCommander;
- Спробуємо видалити файл із папки, що захищається звичайним способом (через провідник Windows). Не повинно вийти;
- Спробуємо видалити файл через FreeCommander. Повинно вийти.
Ух, багато роботи. Швидше почнемо - швидше закінчимо.
Пункт перший, установка FreeCommander не дуже відрізняється від установки Dr.Web. Звичайна рутина: вставили флешку, запустили інсталятор і таке інше. Пропустимо це і перейдемо одразу до цікавого.
Якщо все ж таки цікаво, як встановити FreeCommander
Почнемо з простого: створимо флешку, в яку помістимо дистрибутив FreeCommander, а потім в тесті вставимо флешку в ОС і відкриємо її:

Далі кілька кліків щоб запустити установку:

Установка не дуже цікава, просто натискаємо скрізь "Далі", а в кінці не забуваємо відключити галочки з переглядом ReadMe і негайним запуском FreeCommander

Закінчуємо тест, закриваючи всі вікна та витягуючи флешку

Готово!
Для роботи з Dr. Web створимо новий тест dr_web_restrict_program, який покладатиметься на результат роботи попереднього тесту win10_install_freecommander.
Почнемо тест із створення папки Protected на робочому столі:

Скріншот після створення папки

Заходимо в папку Protected та створюємо там файл my_file.txt, який буде грати роль файлу, що захищається:

Ох, треба було б теж оформити це у вигляді макросу, ну та гаразд…
Скріншот після створення файлу

Відмінно тепер потрібно включити захист папки. Ідемо знайомою доріжкою та відкриваємо Dr. Web, не забуваймо включити режим змін. Після чого переходимо до меню "Data Loss Prevention".

Скриншот із вікном Data Loss Prevention

Трохи попрацюємо мишкою і додамо нашу папку Protected до списку:

Скріншот з майстром додавання папки, що захищається.

Ну а тепер треба налаштувати виняток щодо доступу до папки для FreeCommander. Ще трохи роботи мишкою:

Скріншот із доданою програмою-виключенням

Тепер акуратно закриваємо всі вікна та намагаємося видалити файл "my_file.txt" стандартним способом:

Скріншот із повідомленням від Dr.Web

Але нічого не вийшло – значить Dr. Web справді відпрацював! Половина тесту за, але нам ще треба перевірити, що буде працювати виняток для FreeCommander. Для цього відкриваємо FreeCommander і переходимо до папки Protected:

Скриншот із вікном FreeCommander

Ну і спробуємо видалити файл my_file.txt:

Скріншот після видалення файлу

Виняток для FreeCommander працює!
Відмінна робота! Великий та складний тесткейс – і все автоматизовано. Трохи розслаблена:

Тест №4 - Батьківський контроль
Цей останній на сьогодні тесткейс ми збудуємо наступним чином:
- Створимо нового користувача MySuperUser;
- Залогінимось під цим користувачем;
- Створимо файл
my_file.txtвід імені нового користувача; - Відкриємо центр безпеки Dr. Web та включимо батьківський контроль для цього файлу;
- У батьківському контролі обмежимо права користувача MySuperUser на ньому створений файл;
- Спробуємо прочитати та видалити файл
my_file.txtвід імені MySuperUser і подивимося на результат.
Я не наводитиму тут сценарій тесту. Він будується за тим самим принципом, що й попередні тести: активно працюємо мишкою та клавіатурою. При цьому нам не важливо, що ми автоматизуємо – хоч Dr.Web, хоч створення нового користувача у Windows. Але давайте все ж таки подивимося, як будемо виглядати прогін такого тесту:

Висновок
→ Вихідники всіх тестів Ви можете переглянути
Більше того, всі ці тести Ви можете прогнати своєю машиною. Для цього Вам знадобиться інтерпретатор тестових сценаріїв Testo. Завантажити його можна .
Dr. Веб виявився непоганим тренуванням, але натхнення для подальших подвигів я хотів би почерпнути з Ваших побажань. Пишіть у коментарях свої пропозиції про те, які автотести Ви хотіли б побачити в майбутньому. У наступній статті я спробую автоматизувати їх, подивимося, що з цього вийде.
Джерело: habr.com
