Печатные публикации

#4: Видеорекордер CamStudio в руках тестировщика. Применение видео на этапе разработки и отладки ПО (с последующим созданием видеоинструкций)

Анна Сергеева. Видеорекордер CamStudio в руках тестировщика... // СА. 2014. № 3.

Анна Сергеева. Видеорекордер CamStudio в руках тестировщика. Применение видеофайлов на этапе разработки и отладки ПО (с последующим созданием видеоинструкций) // Системный администратор. 2014. № 3. С. 60-64.


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


Опубликовано в разделе "Разработка/Тестирование"

Эта же статья на сайте журнала


К слову о бережливом производстве


Есть два пути развития технологии:


  • Первый – экстенсивный. Он характеризуется минимумом затрат, помноженным на максимум ручного труда. Но так или иначе неизбежны затраты на зарплату, компьютерный ресурс, длительность процесса.
  • Второй – интенсивный. Здесь ручной труд сокращается за счет привлечения вспомогательных программных инструментов. Часть затрат идет на их приобретение, часть на повышение зарплаты более квалифицированным сотрудникам. Выигрыш такого подхода в сокращении числа ошибок и времени работы над проектом. Называется это «бережливое производство» (Lean Manufacturing) [1].


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


При этом автоматизация бывает разная:


  • новостные корпоративные рассылки о запланированных мероприятиях и совещаниях;
  • оповещение работников о назначенных задачах и сроках исполнения;
  • составление автоматических отчетов о проделанной работе.


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


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


Взгляд изнутри


Достаточно много лет я занимаюсь тестированием и часто сталкиваюсь с такой ситуацией.


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


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


Теоретически до этого момента от тестировщика никаких действий по данной конкретной проблеме не требуется. В ожидании устранения дефекта он благополучно о нем забывает и переключается на решение совершенно других задач.


А что же на практике?


С момента создания тикета проходит время – в зависимости от планирования проекта от пары дней до нескольких недель, а иногда и того дольше.


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


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


Возможно, описание проблемы в тикете было несовершенным, или последовательность шагов описана не полностью, или в не достаточно доходчивой форме, или этот программист – новичок в данном проекте. Мало ли что.


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


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


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


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


Поясним, в чем тут дело.


Видеоинструкции как замена текстовой документации


Это раньше в комплекте с выпускаемыми программами шли многотомные печатные инструкции. Их изучение было достаточно долго, муторно и неудобно. Да и к тому же, что скрывать, вовсе мало кому интересно.


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


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


Вот, например, на сетевом ресурсе [2] размещена богатая коллекция демонстрационных видеозаписей по всевозможным тематикам, связанным с IT: безопасность, сетевые технологии, хранение данных, использование мобильных устройств и т.д.


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


При этом обратим внимание, что, как правило, такие ролики создаются в службе маркетинга, и порой для их создания задействованы лица, мало технически «подкованные» и мало разбирающиеся в тонкостях дела. А это, к сожалению, порой сказывается на качестве и информативности создаваемых презентаций. В качестве альтернативы, автор предлагает применить более действенный подход. Почему бы запись видеоинструкций не начать гораздо раньше, например, на этапе разработки и тестирования продукта?


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


Что имеется в виду?


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


Таким образом, на сервере будет храниться большой набор видеозаписей, которые можно использовать по-разному. Записи, связанные с тикетами со статусом Test Failed (неуспех теста), могут использоваться программистами для понимания шагов воспроизведения ошибки. Записи же, связанные с тикетами со статусом Test Passed (успех теста), принимаются службой маркетинга для монтирования в различные видеоинструкции, презентации и обучающие курсы.


Кстати, по желанию менеджмента проекта, можно даже настроить бизнес-логику багтекера таким образом, чтобы при открытии тикета тестировщиком, запускался рекордер, а при открытии программистом — проигрыватель с соответствующим видео.


Обзор рынка видеорекордеров


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


Так, например, профессионалы, занимающиеся созданием различных видеопрезентаций, чаще всего пользуются такими программными пакетами как Camtasia Studio [3]. Он снабжен встроенным видеоредактором, который обладает достаточно развернутым, понятным и удобным интерфейсом для создания видеороликов (рис.1). И, поскольку это профессиональный инструмент, он имеет очень большое число разнообразных функций.


Camtasia studio

Рис. 1. Профессиональный программный пакет Camtasia Studio.


Также среди платных программ отметим Demo Builder. Разработчики [4] позиционируют его как вполне профессиональный инструмент для создания презентаций и обучающих курсов. Программа включает различные средства редактирования, эффекты и средства визуализации для создания флэш (рис.2). Выполняется автоматическая фиксация всех действий, выполняемых в запущенной программе. Далее предоставляется ряд возможностей для редактирования видео, добавления примечаний, склеивания и разрезания роликов на отдельные сцены и т.д. Готовые файлы сохраняются в формате SWF или AVI.


DemoBuilder

Рис.2. Настройка формата выходных файлов для Demo Builder.


Среди свободно распространяемых аналогов приведем Fraps [5]. Сама по себе программа достаточно неплоха, однако, имеет несколько другой профиль. Она предназначена для съемки роликов в видеоиграх и изначально ориентирована на видео высокого разрешения и большой длительности (поддерживает масштабные AVI-файлы размером более 4 ГБ). Скорее подойдет для тестирования качества отрисовки графики исследуемой программой.


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


И все же, для начала, стоит опробовать технологию в деле, и уж потом определиться с приобретением платного программного пакета или с установкой какого-либо свободно распространяемого аналога.


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


CamStudio


Программа CamStudio [6] (рис.3) записывает все происходящее на экране монитора в видеоролик формата AVI, MP4 или SWF (флэш). Основным ее достоинством является то, что для работы совсем не нужно обладать какими-либо специальными профессиональными знаниями по компьютерной анимации, видеомонтажу и так далее. Человек, в нашем случае, тестировщик, совершенно далекий от мира компьютерной киноиндустрии, вполне в состоянии быстро и успешно начать с ней работать. Тем более это существенно, поскольку для тестировщика само создание ролика является вовсе не прямой целью, а лишь удобным и быстрым вспомогательным средством, которое должно существенно сэкономить его силы и время в определенные моменты рабочего дня.


CamStudio

Рис.3. Программа записи видео с экрана CamStudio.


Перечислим предоставляемые возможности.


File. Главные кнопки рекордера: запись, пауза, стоп.


Region. Выбор области экрана, захвачиваемой для записи: фиксированная часть экрана, конкретное окно какого-либо приложения (подходит для записи работы различных визардов, небольших диалогов, окон настройки), полноэкранный режим (удобно для работы с несколькими окнами за один сеанс).


Options. Опции для записи и настройки программы.


  • Video Options. Опции записи видео: выбор кодека и параметров сжатия, частота кадров, привязка аудио.

  • Cursor Options. Опции курсора: выбор его типа и подсветки на записи, а также возможность скрыть курсор.

  • Audio Options. Настройка параметров динамиков и микрофона для записи звука, настройка синхронизации аудио и видеокадров.

  • Record audio from... Группа опций для выбора источника записи аудио: от микрофона, от динамиков, без аудио. В стандартной ситуации работы в офисе, как правило, нет возможности снабжать записываемое видео голосовыми комментариями, поэтому опцию стоит отключить.

  • Autopan. В этом режиме область захвата следует за указателем мыши, скорость следования также настраивается.

  • Automatically Stop Recording. Автоматическая остановка записи ролика по таймеру. Удобно для записи серии нескольких коротких однотипных роликов.

  • Program Options. Настройки программы. Здесь можно задать характер поведения окна программы во время и после записи, изменить формат имен создаваемых готовых и временных файлов и каталог их размещения, настроить горячие клавиши на какие-либо действия с программой и т. д. Так, например, опция Minimize program on start recording (минимизировать программу при старте записи) удобна при записи полноэкранного видео, а также, если монитор не отличается большим разрешением. Play AVI file when recording stops позволяет воспроизвести ролик сразу после его записи, с выбором из перечня доступных проигрывателей: системный или встроенный CamStudio PlayerPlus.

  • Record To Flash Options. Опции, связанные с преобразованием записи из формата AVI в SWF.

  • Language. Выбор языка интерфейса программы.


Tools. Удобный набор инструментов для работы над видеороликом.


  • Screen Annotations. Возможность добавления примечаний на экран непосредственно во время записи (рис.5). Примечания отображаются в виде цветных картинок с редактируемым текстом. Шаблоны этих картинок загружаются из библиотек, поставляемых вместе с CamStudio. При желании, можно изменять их размер и прозрачность, и даже сохранять в виде пользовательских библиотек шаблонов. Готовое изображение с текстом остается только расположить в нужной части экрана и заснять на видеоролик. Здесь удобно настроить и использовать горячие клавиши.


CamStudio

Рис. 5. Текстовые примечания на видео улучшают восприятие.


  • Video Annotations. Возможность добавления видеопримечаний. Их источником служит изображение с вебкамеры компьютера. Величина разрешения видео настраивается.

  • CamStudio Movie Player. Вызов встроенного проигрывателя видеороликов.

  • SWF Producer. Вызов встроенной утилиты для преобразования видеозаписи из формата AVI в SWF. Окно настройки параметров преобразования приведено на рисунке 4.


Как правило, в результате получается файл меньшего размера, который удобно передавать через интернет и хранить на сервере. Разработчики CamStudio заявляют, что в среднем для файлов AVI небольшого разрешения размер файла SWF составит около 30%, а для файла AVI большого разрешения размер SWF будет около 5%.


Также есть возможность преобразования в флэш без потерь (без снижения качества изображения или частоты кадров).


Cam Studio конвертация видео AVI в SWF

Рис. 4. Настройка опций конвертации AVI/SWF.


Effects. Настройки эффектов для ролика: временных меток, водяных знаков и заголовков.


View. Выбор внешнего вида окна программы CamStudio. На взгляд автора удобен компактный режим (Compact), когда отображается только набор кнопок и главное меню программы.


Help. Подробная помощь и информация о программе.



Заключение


Использование видеорекордеров в ходе проектов разработки программного обеспечения решает сразу несколько задач.


Во-первых, облегчается труд тестировщиков при описании обнаруженных дефектов. Также это помогает программистам вникнуть в суть ошибки, которую им требуется исправить.


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


Во-вторых, проект получает большой набор исходных материалов для создания разноплановых видеоинструкций, презентаций и обучающих курсов по продукту на более ранних этапах работы над проектом (на стадии разработки и тестирования) и от заведомо технически осведомленных работников.


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


Ключевые слова:


Тестирование, автоматизация, тест, бережливое производство, менеджмент проекта, видеозапись, видеоролик, видеоинструкция, запись видео, запись с экрана, CamStudio, конвертирование видео, флэш, Flash, Camtasia Studio, Demo Builder, Fraps, CamStudio PlayerPlus, SWF Producer.


Литература


[1] О бережливом производстве – Monden Y. Toyota Production System: An Integrated Approach to Just-In-Time // CRC Press, 2011. - 4th Edition - 566 с.

[2] Сайт видеосервера Demos On Demand – http://www.demosondemand.com/it/

[3] Сайт программы Camtasia – http://www.techsmith.com/camtasia.html

[4] Сайт программы Demo Builder – http://demo-builder.com/

[5] Сайт программы Fraps – http://www.fraps.com/

[6] Сайт программы – CamStudio http://camstudio.org/