Привет, Хабр! Я являюсь тестировщиком компании TravelLine. Мы разрабатываем единую систему для гостиничного предприятия, которая помогает отелям, санаториям и другим средствам размещения автоматизировать бизнес‑процессы.

Нейросети заметно изменили повседневную работу тестировщика. Они умеют анализировать требования, находить в них противоречия, предлагать проверки, составлять тест‑кейсы, генерировать тестовые данные и помогать с автоматизацией. То, на что раньше уходили часы ручной работы, теперь можно получить за несколько минут.

Это особенно хорошо работает там, где задачу можно формализовать: есть входные данные, правила, ожидаемый результат и понятный критерий полноты. Нейросеть быстро перебирает варианты и не устает выполнять однотипные операции. В результате у тестировщика освобождается время для работы, которую сложнее свести к заранее заданному алгоритму.

Исследовательское тестирование относится именно к такой работе. Здесь недостаточно выполнить подготовленный набор шагов. Нужно наблюдать за продуктом, замечать странности, формулировать гипотезы, менять направление исследования и задавать вопросы, которых не было в исходных требованиях. Иногда важным оказывается не явное сообщение об ошибке, а небольшая задержка, неожиданное изменение состояния или ощущение, что система ведет себя непоследовательно.

Нейросеть может помочь подготовить тестовую идею или проанализировать уже собранные материалы, но она пока не заменяет человека в самостоятельном исследовании реального продукта. Ей трудно оценить весь контекст взаимодействия, понять практическую значимость неожиданного поведения и решить, какая случайная деталь заслуживает дальнейшей проверки. Исследовательская сессия остается диалогом тестировщика с продуктом.

Но у этой человеческой работы есть обратная сторона: пока тестировщик исследует систему, ему одновременно приходится документировать происходящее. Нужно записывать наблюдения, сохранять доказательства и помнить последовательность действий. Чем больше внимания уходит на оформление, тем меньше остается на само исследование.

Именно эту рутину я и хотел сократить с помощью ExploDrive. Приложение не пытается заменить тестировщика или принимать за него исследовательские решения. Оно берет на себя фиксацию контекста и сбор материалов, чтобы человек мог сосредоточиться на продукте.

Что такое исследовательское тестирование

Исследовательское тестирование — это подход, при котором изучение продукта, проектирование проверок и их выполнение происходят одновременно. Тестировщик не просто следует заранее подготовленному сценарию: он анализирует реакцию системы, формулирует новые гипотезы и меняет направление проверки на основании того, что обнаружил.

Это не означает тестирование без цели или документации. Обычно сессия имеет ограничение по времени и исследовательский фокус — например, проверить восстановление после ошибок, изучить новый пользовательский сценарий или найти границы допустимого поведения. Результатом становятся наблюдения, вопросы, найденные риски и идеи для следующих проверок.

Главная ценность подхода — способность обнаруживать проблемы, которые трудно предусмотреть в требованиях и заранее описанных тест‑кейсах. Его эффективность зависит от опыта, любопытства и внимания тестировщика, поэтому особенно важно фиксировать ход исследования, не прерывая его постоянным переключением на оформление артефактов.

Один из способов структурировать такое исследование предложил Джеймс Уиттакер в книге «Exploratory Software Testing». Он описал набор тестовых туров — метафорических маршрутов по продукту, каждый из которых задает определенный взгляд и помогает выбрать, на что обратить внимание во время сессии.

Например:

  • тур по достопримечательностям (Landmark Tour) последовательно проходит через наиболее заметные и важные функции продукта;

  • тур по путеводителю (Guidebook Tour) проверяет возможности и обещания, описанные в документации, справке или рекламных материалах;

  • денежный тур (Money Tour) концентрируется на функциях, которые приносят продукту основную ценность или доход;

  • тур по плохому району (Bad Neighborhood Tour) возвращает тестировщика к местам, где раньше уже находили много дефектов;

  • тур по закоулкам (Back Alley Tour) исследует редко используемые функции, необычные переходы и сценарии, которые легко пропустить;

  • тур саботажника (Saboteur Tour) намеренно создает неблагоприятные условия: прерывает операции, ограничивает ресурсы и нарушает нормальную последовательность действий;

  • тур супермодели (Supermodel Tour) рассматривает внешний вид продукта, согласованность интерфейса и качество визуального представления.

Туры не являются строгими тест‑кейсами и не требуют пройти каждый экран по фиксированному маршруту. Это эвристики, которые помогают сформулировать цель сессии и посмотреть на один продукт с разных сторон. Для ExploDrive название выбранного тура можно использовать как исследовательский фокус, а маркерами и заметками фиксировать отклонения, вопросы и направления для следующей проверки.

При исследовательском тестировании важно не только найти проблему, но и сохранить контекст: что происходило до ошибки, какие действия выполнялись, в какой момент изменилось состояние интерфейса и что именно заметил тестировщик.

Обычная запись экрана решает эту задачу только частично. После часовой сессии остается длинное видео, которое нужно пересматривать вручную. Заметки находятся в другом приложении, снимки экрана — в отдельной папке, а разработчику еще предстоит сопоставить все это по времени.

Я сделал ExploDrive — небольшое Windows‑приложение, которое объединяет видео, снимки, заметки, маркеры и паузы в одну хронологию, а после завершения сессии формирует локальный HTML‑отчет.

Название ExploDrive можно расшифровать как Exploratory Drive — исследовательская поездка. Эта метафора хорошо сочетается с тестовыми турами: тестировщик выбирает направление, исследует продукт и при необходимости меняет маршрут, а приложение сохраняет журнал поездки — пройденный путь, важные остановки, наблюдения и найденные проблемы.

Скриншот 1. Главное окно ExploDrive до запуска сессии.
Скриншот 1. Главное окно ExploDrive до запуска сессии.

Зачем понадобилось отдельное приложение

В сессионном тестировании (session‑based testing) тестировщик работает в ограниченном временном интервале и исследует продукт вокруг определенной цели или тестовой идеи. В процессе появляются наблюдения, гипотезы, ответвления сценария и дефекты.

При этом фиксация результатов часто мешает самому исследованию:

  • для заметки нужно переключиться в редактор;

  • снимки экрана теряются среди остальных файлов;

  • временная метка записывается приблизительно;

  • после сессии приходится вручную собирать материалы;

  • длинное видео неудобно передавать и анализировать без ориентиров.

Основная идея ExploDrive — позволить тестировщику отмечать важные события, не выпадая из процесса, а затем автоматически собрать эти события в единый отчет.

Как выглядит рабочая сессия

Перед началом пользователь задает длительность от 1 до 120 минут и решает, нужна ли видеозапись. В настройках можно выбрать монитор, системный звук и микрофон. Если выбранный монитор был отключен, приложение предупреждает об этом и использует основной.

После запуска на панели отображаются состояние и оставшееся время. Сессию можно приостановить, продолжить или завершить вручную.

Скриншот 2. Активная сессия с таймером и состоянием записи.
Скриншот 2. Активная сессия с таймером и состоянием записи.

Во время исследования доступны четыре основных действия:

  1. Сделать снимок всех экранов.

  2. Выбрать область для снимка.

  3. Добавить текстовую заметку.

  4. Поставить маркер важного момента.

Для этих действий можно назначить глобальные горячие клавиши. Они работают, даже когда окно ExploDrive скрыто в системном трее. Это позволяет зафиксировать наблюдение, не переключаясь с тестируемого продукта.

Скриншот 3. Добавление заметки во время сессии.
Скриншот 3. Добавление заметки во время сессии.

Маркер подходит для быстрой фиксации момента, к которому нужно вернуться позже. Заметка содержит полноценное наблюдение: например, условия появления ошибки, фактический результат или гипотезу для следующей проверки.

Паузы также входят в хронологию. Благодаря этому перерыв не выглядит как часть активного исследования, а в отчете видно, когда и насколько запись была приостановлена.

Что происходит после завершения

При обычном завершении ExploDrive останавливает запись, сохраняет журнал сессии и создает HTML‑отчет. В него входят:

  • дата начала и завершения;

  • активная продолжительность;

  • видеозапись, если она была включена;

  • снимки экрана;

  • заметки и маркеры;

  • периоды паузы;

  • сведения об окружении и дисплеях.

Все события упорядочены по времени. Временные метки связаны с видеозаписью: нажатие на метку переводит видео к соответствующему моменту.

 Скриншот 4. HTML-отчет: видеозапись и хронология событий.
Скриншот 4. HTML‑отчет: видеозапись и хронология событий.

Такой отчет не заменяет оформленный баг‑репорт, но заметно сокращает путь до него. Тестировщик получает доказательства и контекст, а разработчик может быстро перейти к нужному моменту вместо просмотра всей записи.

История и экспорт

Завершенные сессии доступны в отдельном окне истории. Для каждой сессии можно просмотреть события, открыть папку данных, видео или готовый отчет.

Скриншот 5. История сессий и события выбранной сессии.
Скриншот 5. История сессий и события выбранной сессии.

Для передачи результатов предусмотрен экспорт в ZIP. Архив содержит:

  • report.html;

  • видеозапись;

  • снимки экрана;

  • README.txt с инструкцией по открытию.

ZIP нужно полностью распаковать, после чего открыть report.html. Если запускать HTML непосредственно внутри архива, Windows Explorer может не предоставить браузеру доступ к соседним изображениям и видео.

Экспортированный архив не зависит от установленного ExploDrive: его можно передать разработчику, другому тестировщику или приложить к внутренней задаче, если размер файлов позволяет это сделать.

Настройки хранения данных

Видео и снимки могут занимать много места, поэтому в приложении есть политика хранения истории. Можно отключить автоматическое удаление или выбрать срок 7, 30, 90 либо 365 дней.

Очистка выполняется при запуске приложения. Для нормально завершенной сессии срок отсчитывается от времени завершения, а не от момента создания. Активная сессия не удаляется. Экспортированные ZIP‑архивы также сохраняются.

Скриншот 6. Настройки хранения и горячих клавиш.
Скриншот 6. Настройки хранения и горячих клавиш.

Удаление ограничено данными, которыми владеет приложение. Произвольные внешние файлы и каталоги не должны удаляться вместе с историей.

Что будет при неожиданном завершении

Если выйти через пункт меню в системном трее, приложение сначала пытается корректно завершить активную сессию: дождаться снимка, остановить видео, сохранить журнал и сформировать отчет. На финализацию установлен тайм‑аут.

Закрытие главного окна не останавливает сессию — окно скрывается в трей, а запись продолжается.

При завершении процесса через диспетчер задач, отключении питания или другом жестком сбое корректное завершение видео гарантировать невозможно. Однако журнал сессии сохраняется по мере работы. При следующем запуске незавершенная сессия получает статус прервана, а уже записанные события и снимки остаются в истории.

Немного о реализации

ExploDrive написан на C# и.NET 8 с использованием WPF и MVVM. Приложение рассчитано на 64-разрядную Windows 10 версии 2004 (build 19041) и более новые версии Windows.

Внутри решение разделено на три проекта:

  • ExploDrive.Core содержит модели и интерфейсы;

  • ExploDrive.Infrastructure работает с записью, файлами, журналом и отчетами;

  • ExploDrive.App отвечает за WPF‑интерфейс и пользовательские сценарии.

Состояние сессии хранится в JSON‑журнале. Запись обновляется атомарно, чтобы незавершенная операция не уничтожила последнюю корректную версию. При работе с путями проверяются выход за пределы каталога сессии. Генерация отчета также использует временный каталог и публикует готовые файлы только после успешного завершения.

В проекте есть тесты для жизненного цикла сессии, восстановления, очистки, формирования отчетов, ZIP‑архивов и правил работы с файловой системой.

Где ExploDrive полезен

Приложение лучше всего подходит для сценариев, где важен ход исследования:

  • исследовательское тестирование;

  • сессионное тестирование;

  • воспроизведение нестабильных дефектов;

  • проверка длинных пользовательских сценариев;

  • UX‑исследования;

  • фиксация поведения desktop‑ и web‑приложений;

  • передача контекста между тестировщиком и разработчиком.

ExploDrive не является системой управления тестированием и не заменяет баг‑трекер. В приложении нет совместного редактирования, облачной синхронизации и автоматической публикации материалов. Его задача уже: локально и с минимальными отвлечениями зафиксировать тестовую сессию, а затем собрать ее в понятный переносимый отчет.

Установка и исходный код

Исходный код опубликован на GitHub:

https://github.com/zhurand/explodrive

Проект распространяется по лицензии MIT.

Текущий установщик не имеет цифровой подписи. Поэтому Windows SmartScreen может показать предупреждение о неизвестном издателе. На странице релиза опубликован файл SHA256SUMS, по которому можно проверить целостность загруженного установщика.

Для записи видео также требуется Microsoft Visual C++ 2015–2022 Redistributable x64. Среда.NET включена в установщик и отдельно не требуется.

Итоги

Главное отличие ExploDrive от обычного приложения для записи экрана — не сама запись видео, а связанная с ней структура. Заметки, маркеры, снимки и паузы становятся событиями одной временной шкалы, а по завершении тестировщик получает готовый отчет вместо набора разрозненных файлов.

Для меня это попытка сделать документирование исследовательского тестирования менее затратным: сначала сохранить ход работы и контекст, а уже затем решать, какие наблюдения превратить в баг‑репорты, тестовые идеи или задачи на дальнейшее исследование.

Комментарии (0)