Screen2Log
Screen2Log — скринкастер, адаптированный для тестировщиков и обычных пользователей.
Contents
Зачем нужен скринкастер?
Особенно обычным пользователям?
С тестировщиками более-менее понятно, нетривиальное ручное тестирование отличается от простого простукивания тривиальных тест-кейсов, когда баги так и лезут в мешок.
Оно скорее похоже на долгую утомительную рыбалку, или патрулирование, когда неясно, где искать добычу/врагов, попадутся ли они, когда, и как оно будет выглядеть.
И когда, наконец-то, оно попадается (клюет! что-то мелькнуло в поле видимости…), то всплывает куча проблем:
- баг долго оформлять — а это сбивает настрой, поэтому гуру exploratory testing требуют отдельных штурманов-регистраторов, пока «снайпер» занимается охотой, не выходя из своего боевого транса.
- трудно точно описать, особенно если оно уже прошло → это чисто психофизиология, уже через пару минут нельзя с 100% уверенностью утверждать, что это было («врет как очевидец™»).
- ну и наконец, разработчики/подрядчики/техподдержка может просто не верить, если ваш случай редок («It works on my machine!™»).
А в что касается обычных пользователей… то можно сказать, что вне зависимости от желания, мы все сейчас тестировщики, по факту использования, увы, различных софтин и сервисов. Причем в отличие от штатных тестировщиков, у которых более-менее налажен контакт с разработчиками, от рядовых пользователей девелоперы часто ограждены
- либо «эффективной» техподдержкой, из трех уровней индусов или дебилов в колл-центре, прорваться сквозь которых, убедив, что ты не ламер, и проблема вызвана не только твоими кривыми руками, может только очень упорный боец,
- либо «эффективным» пофигизмом.
Прорвать и то и другое часто помогает лишь очевидная демонстрация, которая, в случае игнорирования, может быть угрозой репутации продукта.
Решение очевидно — да, нужно записывать экран, и уметь это показать-переслать и т.п.
Это также поможет вам в случае конфликтов пользования финансово-торговыми сервисами (например, Ebay глючит при оплате, вы не можете оплатить выигранный лот, и автоматически становитесь виновным), ну и вообще.
А кроме ужасов, компьютер часто является источником радости (lulzов), и скринкастер поможет вам запомнить такие веселые моменты, как эпикфейлы каких нибудь понтовых сайтов («deface сайта минобороны», «детское порно на сайте телеканала», «падение яндекса»…), ну и прочие, редкие события. Причем к скринкасту доверия больше, чем с скриншоту, который совсем легко подделать.
Зачем нужен еще один скринкастер?
Ведь тысячи их! Платных и бесплатных! C веселым 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»…
Инсталляция
x264vfw
Установите кодек x264, 32 битную версию (даже, если у вас Win764bit):
Это нужно для кодирования видео.
K-Lite Codec Pack
Теоретически, можно использовать другой pack кодеков, включающих ffdshow, или поставить ffdshow отдельно, но пока этот вопрос плотно не исследовал.
Скачать K-Lite Codec Pack в соответствии с битностью ваших виндов. 64bit или 32bit.
При инсталляции выберите для надежности Advanced Mode (теоретически, все настройки должны и так правильно выставится, но мало ли что):
Выберите ffdshow для декодирования H264:
Убедитесь, что ему разрешено генерировать thumnailы для AVI-видео (остальное по вкусу):
Screen2Log
Опционально, но очень рекомендую (особенно, если у вас большой монитор, по крайней мере не маленький 10" нетбук):
- Скачать http://bazaar.launchpad.net/~stanislav-fomin/screen2log/trunk/view/head:/install/install.reg
- Запустить его (загрузить в реестр) дабл-кликом через explorer или командой:
regedit install.reg
Это сделает большие иконки, для папок с типом видео. Выберите папку для хранения скринкастов, и очень рекомендую, зайти в ее свойства и выставить ей тип видео (если вы запускали install.reg, то у видео будут большие иконки, это очень удобно), и выставить также тип видео для подпапок:
Ну и затем,
- скачайте http://bazaar.launchpad.net/~stanislav-fomin/screen2log/trunk/view/head:/bin/screen2log.exe
- и положите его куда вам угодно screen2log.exe
Запускайте его с консоли, из той папки, в которую надо писать скрин-логи. Ну или сделайте ярлык.
На самом деле, при каждом запуске, Screen2Log проверяет, что на рабочем столе есть ярлык для него, и создает его, устанавливая рабочий каталог в соответствии с тем, с которым его запустили, и также создает или обновляет ярлык «screenlogs», в который прописывает текущий каталог для скринкастов.
Т.е. если вы хотите сменить место записи скринкастов — вам просто нужно запустить Screen2Log из другого рабочего каталога.
Остановить утилиту просто — закройте окно с ним крестиком или нажмите «CTRL-C»
Ну и в любое время, даже, когда Screen2Log не запущен, вы можете хоткеем (или ярлыком «screenlogs») открыть папку, где структурировано по времени («Дата→Час→Нарезанные интервалы») разложены экранные ролики, и если вы установили тип видео и большие иконки, как мы рекомендовали выше, то вы увидите что-то вроде:
Т.е. элементарным скроллингом внутри папки-часа легко найти нужный момент (когда произошела проблема), а далее, либо drag-and-dropом, либо (как показано на рисунке) «SHIFT+правая клавиша мыши» и через контекстное меню «Скопировать как путь», приаттачиваем нужный файл, к почте, или баг-трекеру.
Да, хоткей по умолчанию немного дикий — «CTRL-ALT-SHIFT-L», но его можно поменять в настройках ярлыка «screenlogs».
Успехов!
Проблемы с использованием → mailto:stas-fomin@yandex.ru
Исходники
FAQ
- Если запустить Screen2Log на машине, на которую зашли по RDP-сессии, а потом минимизировать окно, то ничего не записывается. WTF?
Это свойство RDP-протокола, подающаяся как фича (экономия трафика). Есть хак над компом, с которого вы запускаете RDP-сессию: создать в его реестре DWORD параметр RemoteDesktop_SuppressWhenMinimized равный 2 под веткой
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client
или соответственно
HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client