Автоматизоване тестування як інструмент для онбордингу та презентації функціоналу
Привіт, спільното!
Робота з великими проєктами часто передбачає появу проблем, пов’язаних з онбордингом нових співробітників або відсутністю чіткої документації для презентації функціоналу. У цій статті я пропоную рішення, яке поєднує автоматизоване тестування, відеоінструкції та можливості штучного інтелекту для створення інформативного та ефективного процесу.
Працюючи мануальним тестувальником над досить складною CRM-системою, я мав задачу з онбордингу нового колеги. Враховуючи велику кількість залежностей, яку мала наша аплікація, вирішив записати відео для кожного окремого складного сценарію. Щоб в будь-який момент можна було повернутися до перегляду й освіжити знання. Цей підхід досить ресурсозатратний, проте він був використаний не один раз.
Зараз, маючи знання автоматизації, я відкрив для себе досить простий, але продуктивний спосіб презентації роботи функціоналу. Використовуючи можливості фреймворку з автоматизації — в моєму випадку це Playwright + Python, потрібно детально описати сам тестовий сценарій і загалом це майже все.
Наступними кроками буде включити запис відео під час автоматичного прогону скрипта (написаного сценарію), а сам скрипт скопіювати до зручного AI-помічника з запитом трансформувати скрипт в мову, зрозумілу мануальному тестувальнику чи звичайній людині. В результаті ми отримуємо відеоінструкцію, яка буде лаконічною та безпомилковою, оскільки записана машиною. Додатково покроковий тест-кейс, який також заснований на тестовому сценарії, а отже також матиме відповідні правильні кроки.
Переваги цього методу
- Економія часу:
- Запис відеоінструкції та створення тест-кейсів автоматично займає значно менше часу, ніж їх створення вручну.
- Оновлення тестів і документації після змін у функціоналі займає лічені хвилини.
- Легка підтримуваність:
- Зміни в функціоналі потребують лише редагування тестового скрипта. Всі інші артефакти (відео, тест-кейси) генеруються автоматично на основі оновленого коду.
- Зрозумілий результат для всіх команд:
- Відеоінструкція наочно демонструє роботу функціоналу.
- Тест-кейси, перетворені з коду, зрозумілі для мануальних тестувальників, менеджерів або клієнтів.
- Мінімізація помилок:
- Автоматизація виключає людський фактор, забезпечуючи точність і послідовність виконання дій.
- Зменшуються ризики пропустити важливі кроки під час створення інструкцій чи тестів.
- Універсальність:
- Метод підходить як для онбордингу нових співробітників, так і для демонстрації функціоналу замовникам або зацікавленим сторонам.
- Доступність без автоматизатора:
- Навіть за відсутності спеціаліста з автоматизації тестування Playwright може самостійно згенерувати код на основі мануальних дій, що робить метод доступним для всіх.
- Крос-командна інтеграція:
- Інструкції та тести легко використовуються різними командами: розробниками, тестувальниками, менеджерами проєктів.
- Покращення документації:
- Відео та структуровані тест-кейси можуть бути частиною бази знань проєкту, що розв’язує проблему недостатньої або застарілої документації.
Приклад реалізації
У випадку присутності автоматизатора на проєкті все просто, але якщо автоматизатора немає, функціонал «playwright codegen» автоматично згенерує для вас скрипт на основі мануальних дій на сайті.
- Встановлюємо PyCharm.
- Встановлюємо Playwright «playwright install»
- Запускаємо генератор тестів -
«playwright codegen —target python the-internet.herokuapp.com»
- У браузері, що відкрився, виконуємо потрібний нам сценарій, який буде записано у вигляді коду.
- Копіюємо згенерований код до нового проєкту до стрічки присвоєння контексту.
context = browser.new_context()
Для запису відео треба додати:
record_video_dir="videos/"
Також треба пам’ятати, що Playwright працює дуже швидко і записане відео треба буде передивлятися в режимі зменшеної швидкості. Або сповільнювати Playwright напряму, використовуючи slow_mo опцію для уповільнення швидкості роботи скрипта.
browser = playwright.chromium.launch(headless=False, slow_mo=100)
Для прикладу я згенерував кілька простих дій на тестовому сайті:
import os from playwright.sync_api import Playwright, sync_playwright def run(playwright: Playwright) -> None: browser = playwright.chromium.launch(headless=False) context = browser.new_context(record_video_dir="videos/") page = context.new_page() page.goto("https://the-internet.herokuapp.com/") page.get_by_text("Basic Auth (user and pass:").click() page.get_by_role("link", name="Basic Auth").click() page.goto("https://the-internet.herokuapp.com/") page.locator("li").filter(has_text="Checkboxes").click() page.get_by_role("link", name="Checkboxes").click() page.get_by_role("checkbox").first.check() page.goto("https://the-internet.herokuapp.com/") page.get_by_role("link", name="File Download", exact=True).click() with page.expect_download() as download_info: page.get_by_role("link", name="necklace2.jpg").click() download = download_info.value target_path = os.path.join(os.getcwd(), "downloads", "necklace2.jpg") os.makedirs(os.path.dirname(target_path), exist_ok=True) download.save_as(target_path) assert os.path.exists(target_path), "File was not downloaded successfully!" context.close() browser.close() with sync_playwright() as playwright: run(playwright)
Наступним кроком запускаємо код для запису відео, копіюємо код вище і за допомогою AI трансформуємо його в тест-кейс. Я використав чат GPT, і ось результат.
Кроки виконання тесту
- Відкрити головну сторінку сайту.
- Перейти за посиланням: https://the-internet.herokuapp.com/.
- Виконати авторизацію через Basic Auth.
- Знайти та натиснути посилання Basic Auth.
- Виконати авторизацію за замовчуванням (логін: admin, пароль: admin).
- Повернутися на головну сторінку.
- Після авторизації повернутися до головної сторінки.
- Перевірити чекбокс на сторінці Checkboxes.
- Знайти та натиснути на посилання Checkboxes.
- Вибрати перший чекбокс (якщо він ще не вибраний).
- Завантажити файл «necklace2.jpg».
- На головній сторінці знайти та натиснути на посилання File Download.
- У секції завантаження знайти файл «necklace2.jpg».
- Натиснути на посилання для завантаження файлу.
- Перевірити, що файл успішно завантажений.
- Переконатися, що файл збережено у визначеній директорії (downloads/).
- Підтвердити наявність файлу necklace2.jpg у зазначеній папці.
Очікуваний результат
- Авторизація через Basic Auth успішна.
- Чекбокс на сторінці Checkboxes обраний.
- Файл necklace2.jpg успішно завантажений і доступний у локальній директорії downloads/.
Приклад вище досить простий, але він тут для розуміння самого методу використання. Сценарій будь-якої складності може бути побудований з менших окремих модулів і зкомпонований в окремий суцільний сценарій використання.
Висновки
Метод, запропонований у статті, дозволяє значно оптимізувати процес онбордингу нових співробітників, покращити взаємодію з клієнтами та спростити підтримку проєктів. Він об’єднує переваги автоматизованого тестування, генерації відео та інтеграції з інструментами штучного інтелекту, що забезпечує:
- зменшення витрат часу та ресурсів;
- зниження ризику помилок через людський фактор;
- підвищення ефективності команди завдяки зрозумілим та актуальним інструкціям;
- створення чіткої документації, яка підтримується автоматично.
Цей підхід є ідеальним рішенням для великих проєктів зі складним функціоналом, де часто відсутня якісна документація. Він легко адаптується до будь-якого середовища та допомагає зосередитись на ключових завданнях без втрати якості та часу.
Звісно, це не ідея року, але буду радий, якщо запропонований підхід виявиться корисним і допоможе заощадити час та ресурси.
8 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів