Я автоматизував тестування Dr. Web. А чи зможете ви?

Я автоматизував тестування Dr. Web. А чи зможете ви?

Я ніколи не користувався Dr. Web. Я гадки не маю, як він влаштований. Але це не завадило мені написати для нього ряд автотестів (і лише ліньки не дозволила мені написати ще сотню інших):

  1. Тест на встановлення Dr. Web;
  2. Тест на обмеження доступу до знімних пристроїв (флешок);
  3. Тест на розмежування доступу до каталогу між програмами;
  4. Тест на розмежування доступу до каталогу між користувачами системи (контроль батьків).

Такі та багато інших тестів можна клепати як гарячі пиріжки, і не тільки стосовно Dr. Web, і не тільки стосовно антивірусів. У цій статті я розповім, як це зробити.

Підготовка

Для тестів нам знадобиться віртуалка із Windows на борту. Я підготував її вручну, виконавши на ній такі маніпуляції:

  1. Власне встановив Windows 10 Pro x64;
  2. Під час встановлення створив основного користувача "testo" паролем "1111";
  3. Увімкнув автологін для цього користувача;

Для автоматизації тестів я використовуватиму платформу Testo. Що це таке і як цим скористатися можна почитати тут. Нам же зараз потрібно імпортувати готову віртуалку до автотестів. Зробити це дуже просто:

Я автоматизував тестування Dr. Web. А чи зможете ви?

Тут передбачається, що /path/to/win10.qcow2 - Це шлях до диску тієї віртуалки, яку я підготував уручну. На цьому підготовка закінчується і починається екшен.

Тест №1 - Встановлюємо Dr. Web!

Спершу треба вирішити питання з перенесенням дистрибутива Dr. Веб на віртуальну машину. Зробити це можна (наприклад) за допомогою флешки:

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Тепер можемо розпочати, власне, написання тесту. Поки що почнемо тест із простих речей: увімкнемо віртуалку (після створення її буде вимкнено), дочекаємося появи робочого столу, включимо флешку і відкриємо її вміст через провідник:

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Відтворити відео

Переходимо до тестування фіч.

Тест №2 - Обмеження доступу до флешок

Перша фіча за списком – обмеження доступу до флешок. Для цього сплануємо досить прямолінійний тест:

  1. Спробуємо вставити флешку і створити там порожній файл - має вийти. Витягнемо флешку;
  2. Включимо блокування знімних пристроїв Dr. Web Security Center;
  3. Ще раз вставимо флешку і спробуємо видалити створений файл. Дія має бути заблокована.

Створимо собі нову флешку, вставимо її у Windows та спробуємо створити папку. Що може бути простішим?

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

Цей макрос нам ще знадобиться.

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Відтворити відео

Тест №3 — Розмежування доступу до каталогу між програмами

Основна ідея цього тесткейсу – перевірити роботу Dr. Web при обмеженні доступу до певної папки. Якщо конкретно, необхідно захистити папку від будь-яких змін, але додати виняток для будь-якої сторонньої програми. Власне, сам тест виглядає так:

  1. Встановимо на ОС сторонню програму, для якої трохи пізніше додамо виняток при доступі до папки, що захищається. Сьогодні стороння програма дня – файловий менеджер FreeCommander;
  2. Створюємо папку з файликом, яку захищатимемо всіма силами;
  3. Відкриємо центр безпеки Dr. Web та включимо там захист цієї папки;
  4. Налаштуємо виняток для FreeCommander;
  5. Спробуємо видалити файл із папки, що захищається звичайним способом (через провідник Windows). Не повинно вийти;
  6. Спробуємо видалити файл через FreeCommander. Повинно вийти.

Ух, багато роботи. Швидше почнемо - швидше закінчимо.

Пункт перший, установка FreeCommander не дуже відрізняється від установки Dr.Web. Звичайна рутина: вставили флешку, запустили інсталятор і таке інше. Пропустимо це і перейдемо одразу до цікавого.

Якщо все ж таки цікаво, як встановити FreeCommander

Почнемо з простого: створимо флешку, в яку помістимо дистрибутив FreeCommander, а потім в тесті вставимо флешку в ОС і відкриємо її:

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

Готово!

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

Почнемо тест із створення папки Protected на робочому столі:

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

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

Я автоматизував тестування Dr. Web. А чи зможете ви?

Виняток для FreeCommander працює!

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

Відтворити відео

Тест №4 - Батьківський контроль

Цей останній на сьогодні тесткейс ми збудуємо наступним чином:

  1. Створимо нового користувача MySuperUser;
  2. Залогінимось під цим користувачем;
  3. Створимо файл my_file.txt від імені нового користувача;
  4. Відкриємо центр безпеки Dr. Web та включимо батьківський контроль для цього файлу;
  5. У батьківському контролі обмежимо права користувача MySuperUser на ньому створений файл;
  6. Спробуємо прочитати та видалити файл my_file.txt від імені MySuperUser і подивимося на результат.

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

Відтворити відео

Висновок

→ Вихідники всіх тестів Ви можете переглянути тут

Більше того, всі ці тести Ви можете прогнати своєю машиною. Для цього Вам знадобиться інтерпретатор тестових сценаріїв Testo. Завантажити його можна тут.

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

Джерело: habr.com

Додати коментар або відгук