Screen2Log

From Wiki4Intranet
Revision as of 21:32, 22 February 2012 by StasFomin (Talk | contribs) (Screen2Log)

Jump to: navigation, search

Screen2Log — скринкастер, адаптированный для тестировщиков и обычных пользователей.

Зачем нужен скринкастер?

Особенно обычным пользователям?

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

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

И когда, наконец-то, оно попадается (клюет! что-то мелькнуло в поле видимости…), то всплывает куча проблем:

  • баг долго оформлять — а это сбивает настрой, поэтому гуру exploratory testing требуют отдельных штурманов-регистраторов, пока «снайпер» занимается охотой, не выходя из своего боевого транса.
  • трудно точно описать, особенно если оно уже прошло → это чисто психофизиология, уже через пару минут нельзя с 100% уверенностью утверждать, что это было («врет как очевидец™»).
  • ну и наконец, разработчики/подрядчики/техподдержка может просто не верить, если ваш случай редок («It works on my machine!™»).

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

  • либо «эффективной» техподдержкой, из трех уровней индусов или дебилов в колл-центре, прорваться сквозь которых, убедив, что ты не ламер, и проблема вызвана не только твоими кривыми руками, может только очень упорный боец,
  • либо «эффективным» пофигизмом.

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

Решение очевидно — да, нужно записывать экран, и уметь это показать-переслать и т.п.

Ну и кроме ужасов, компьютер часто является источником радости (lulzов), и скринкастер поможет вам запомнить такие веселые моменты, как эпикфейлы каких нибудь понтовых сайтов («deface сайта минобороны», «детское порно на сайте телеканала», «падение яндекса»…), ну и прочие, редкие события. Причем к скринкасту доверия больше, чем с скриншоту, который совсем легко подделать.

Зачем нужен еще один скринкастер?

Ведь тысячи их! Платных и бесплатных! В веселым GUI! И даже предлагающие загрузку в интернет на свои сервисы!

И мы пробовали многие из них. Платные и бесплатные. У нас в компании есть site license на один из неплохих вариантов, в доводке которого я принимал активное участие (слал авторам кучу баг-репортов и фича-реквестов).

И все же сел делать собственный велосипед.

Во-первых, законы Гейзенберга и Паркинсона-Мерфи неумолимы — все интересное/опасное, баги, сбои, измены, ДТП, и прочий криминал, обычно происходят ровно тогда, когда на это никто не смотрит и не снимает. Записывать надо начать до! Т.е. по-уму, надо писать постоянно.

Если писать непрерывно в один файл, как делают почти все отсмотренные скринкастеры, то

  • либо получается большой жирный файл, который никуда не переслать, не приаттачить к багу и т.п., если не занятся видеомонтажем — вырезанием и т.п. А надо то быстро! Не выходя из режима «exploratory testing»! Баг репорт должен быть мгновенным и убедительным!
  • либо не получается ничего — падает не только софтина, но и скринкастер (или система целиком, BSOD), и все накрывается раком.

Плюс:

  • Скринкастер может существенно тормозить вашу нормальную работу. Да, регистрация это неплохо, но работа-то важнее.
  • Записывать экран надо с точностью до пискеля, в мутной картике нет смысла. Это можно настроить почти во всех скринкастерах выбором правильного кодека. Но не всегда. И не во всех. И это отдельный геморрой.
  • Лень. Лень изучать интерфейсы какой-то дополнительной софтины. Удивительно, но факт, сейчас это один из основных тормозов использования чего-бы то ни было.
  • Нужна некоторая автоматическое структурирование базы записей, ибо часто то, что это проблема, осознается гораздо позже, и нужно иметь эффективный доступ к записям, без перебора файлов («screencast-1.avi», «ыsometesting-12.avi» и т.п.)

Решение

Предлагаемое решение: скринкастер без интерфейса:

  • только кнопка «Вкл» — запуск программы
  • и «Выкл» — закрыть окно крестиком, по Ctrl-C, или просто убив процесс любым способом.

Будучи запущенным, он пишет в рабочий каталог (откуда его запустили), экран:

  • непрерывно
  • нарезая на куски заданного размера (разумные варианты где-то: 30сек, 1мин), это будет весить от 400K в разрешении 1280×800×5fps, до 5MB в 1920×1200×12fps, в любом случае, это вполне нормальный уровень аттачмента к письму или багу, можно быстро передать по Skype и т.п.
  • автоматически создавая временную структуру каталогов и файлов:
yyyy-mm-dd\hh\yyyy-mm-dd-hh-mm-ss.avi
  • работает с самым низким приоритетом, понижая записываемый fps (для большинства программ, если вы только не тестируете шустрые игры или видеоплееры — это не очень критично), лишь бы не мешать.

Доступ же к базе записанных скринкастов:

  • автоматический, по hotkey, или вызову ярлыка — работает, даже когда скринкастер выключен.
  • вообще говоря, просто открывается стандартный интерфейс просмотра папок с видео, который, в Windows 7, с выставленным размером Extra Large Icon, суперудобен, для того, чтобы даже не запуская видео, найти нужный слот-отрывок — достаточно вспомнить «примерно когда это было?» и проскроллировать каталог этого часа с крупными Thumbnailами — прекрасно видно, где и что происходило.
  • После нахождения нужного отрывка (или несколько), их можно
    • простой пользователь — обычным drag-and-drop-ом перетащить в форму аттачмента письма или бага.
    • продвинутый пользователь зажмет «Shift», и в контекстном меню объекта в Explorere появится пункт «Copy as path»…

Инсталляция

K-Lite Codec Pack

Теоретически, можно использовать другой pack кодеков, включающих ffdshow, или поставить ffdshow отдельно, но пока этот вопрос плотно не исследовал.

Скачать K-Lite Codec Pack в соответствии с битностью ваших виндов. 64bit или 32bit.

При инсталляции выберите для надежности Advanced Mode (теоретически, все настройки должны и так правильно выставится, но мало ли что):

K-Lite Codec Pack installation. Advanced Mode.png

Выберите ffdshow для декодирования H264:

K-Lite Codec Pack installation. FFDSHOW 4 H264.png

Убедитесь, что ему разрешено генерировать thumnailы для AVI-видео (остальное по вкусу):

K-Lite Codec Pack installation. thumnailы для AVI-видео.png

Screen2Log

Cкачайте http://wiki.4intra.net/public/screen2log/screen2log.zip

Там всего два файла:

  • install.reg
  • screen2log.exe

Опционально, но очень рекомендую (особенно, если у вас большой монитор, по крайней мере не маленький 10" нетбук), запустить (загрузить в реестр), файл реестра: install.reg

Это сделает большие иконки, для папок с типом видео.

Выберите папку для хранения скринкастов, и очень рекомендую, зайти в ее свойства и выставить ей тип видео (если вы запускали http://wiki.4intra.net/public/screen2log/install.reg, то у видео будут большие иконки, это очень удобно), и выставить также тип видео для подпапок:

Customize Folder for Video.png

Ну и затем, положите куда вам угодно screen2log.exe

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

На самом деле, при каждом запуске, Screen2Log проверяет, что на рабочем столе есть ярлык для него, и создает его, устанавливая рабочий каталог в соответствии с тем, с которым его запустили, и также создает или обновляет ярлык «screenlogs», в который прописывает текущий каталог для скринкастов.

Т.е. если вы хотите сменить место записи скринкастов — вам просто нужно запустить Screen2Log из другого рабочего каталога.

Остановить утилиту просто — закройте окно с ним крестиком.

Ну и в любое время, даже, когда Screen2Log не запущен, вы можете хоткеем (или ярлыком «screenlogs») открыть папку, где структурировано по времени («Дата→Час→Нарезанные интервалы») разложены экранные ролики, и если вы установили тип видео и большие иконки, как мы рекомендовали выше, то вы увидите что-то вроде:

Screen2Log ScreenLogs.png

Т.е. элементарным скроллингом внутри папки-часа легко найти нужный момент (когда произошела проблема), а далее, либо drag-and-dropом, либо (как показано на рисунке) «SHIFT+правая клавиша мыши» и через контекстное меню «Скопировать как путь», приаттачиваем нужный файл, к почте, или баг-трекеру.

Да, хоткей по умолчанию немного дикий — «CTRL-ALT-SHIFT-L», но его можно поменять в настройках ярлыка «screenlogs».

Успехов!

Проблемы с использованием → mailto:stas-fomin@yandex.ru


To Do

  • (?) Возможно опция подчистки старых записей, чтобы не было переполнения?
  • Причесать код и выложить в open-source