среда, апреля 11, 2012

Скринкаст (запись рабочего стола) при помощи ffmpeg под Windows

Наконец-то я нашел подходящий мне способ записывать скринкасты под Windows. Мне это необходимо для записи работы авто-тестов.

Такая видеозапись может рассказать больше лога + из видео можно сделать скриншоты для бага.

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

Во-первых, необходимо скачать сам 32-битный FFmpeg http://ffmpeg.zeranoe.com/builds

Затем установить Microsoft Visual C++ 2010 SP1 Redistributable Package (x86): http://www.microsoft.com/download/en/details.aspx?id=8328 И самый важный ингредиент: виртуальный драйвер устройства для захвата экрана: http://sourceforge.net/projects/screencapturer

А теперь просто запускаем команду:

ffmpeg -f dshow -i video=screen-capture-recorder -r 24000/1001 -q 1 out.avi

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

Так можно даже игрушку записать без особых тормозов:

P.S.: Скринкасты мануальных тестов я записываю при помощи CamStudio и конвертирую при помощи WinFF.

Англоязычные посты по этой теме:

FFmpeg, Screencast Windows (источник)

ffmpeg screen capture directshow windows

воскресенье, апреля 08, 2012

Бесплатный онлайн курс для начинающих и продолжающих тестировщиков

Парадокс. Михаил Портнов – это известный преподаватель (а для многих и учитель) дисциплины тестирования программного обеспечения.
А парадокс в том, что на родине и на просторах СНГ о нем очень мало кому известно. Конечно, же, есть узкие круги форума govorimpro.us… но, по-моему это незаслуженно мало.

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

Ссылка на курс по тестированию ПО:
Онлайн курсы/школа тестировщиков программного обеспечения

УЧЕБНЫЙ ПЛАН:
  1. Введение: История возникновения профессии, в чем ее суть, наш курс
  2. Тестирование Graphic User Interface в Windows и ВЕБ приложениях
  3. Учебный проект: ResumeBuilder. Спецификация, тестирование Graphic User Interface, bug reports
  4. Учебный проект: ResumeBuilder. Функциональное тестирование, Bug Reporting rules
  5. Bug Tracking Databases: Elementool. bug reporting form; creating custom views; bug life cycle
  6. Документация в тестировании ПО. Тест План, Тест кейс, Тест Дизайн.
  7. Учебный проект Energy-Telecom: требования, назначение, GUI и функциональное тестирование
  8. Energy-Telecom project: Testing WEB forms
  9. Американское резюме - формат, структура, типичные ошибки при написании
  10. Сопроводительное письмо и вопросы на собеседовании


Мое любимое видео:

вторник, апреля 03, 2012

CukeUp!: Matt Wynne on Refuctoring Your Cukes

BDD и частности Cucumber делает наши тесты понятны и поддерживаемыми. И это представляет огромную угрозу для нас. Если тесты смогут понимать и поддерживать другие, то что мешает им лишить нас законного рабочего места?

Именно эту проблему поднимает Matt Wynne в своем докладе Refuctoring Your Cukes и дает полезнейшие советы, как применяя простые практики ре-Fuck-торинга сохранить свое рабочие место.

CukeUp!: Matt Wynne on Refuctoring Your Cukes from Dmitry Zhariy on Vimeo.

Refuctoring Your Cukes
Cucumber aims to help business stakeholders and developers collaborate more effectively. That's great if you care about helping your project succeed, but what about the rest of us who just want to hang on to our damn jobs? In this talk you'll learn how to use Mortgage-Driven Development (MDD) to destroy the readability and value of your Cucumber tests, so that you can protect your position as the only person who understands what the system does

Source: http://skillsmatter.com/podcast/agile-testing/refuctoring-your-cukes

Более подробно о докладе: CukeUp!: Matt Wynne on Refuctoring Your Cukes

понедельник, апреля 02, 2012

Specification by Example: A love story (Alister Scott)

На недавно прошедшей конференции “Watir Bazaar” прозвучал интереснейший доклад Алистера Скотта по теме “Specification by Example: A love story”. Видео доклада вы можете просмотреть по следующей ссылке:
http://kondoot.com/videos/224a1105b17

Слайды этого и других докладов находятся здесь:
https://github.com/watir/watir-bazaar/wiki/Presentations

А ценность доклада в том, что Алистер показывает какие ошибки допускают люди на ранних стадиях создания спецификации с примерами. Допустим, в некотором австралийском интернет магазине решили добавить фичу связанную с бесплатной доставкой товаров. Что должно получится я не знаю, но вижу то, что поведение системы более чем детально расписано:
(Осторожно, многобукофф. Если вы не хотите это читать, прошу проскроллить досюда)

Feature: Beautiful Tea Shipping
Scenario: Free shipping in Australia
Given I am on the Beautiful Tea homepage
When I search for ‘Byron Breakfast’ tea
Then I see the page for ‘Byron Breakfast’ tea
When I add ‘Byron Breakfast’ tea to my card
And I select 10 as the quantity
Then I see 10 x ‘Byron Breakfast’ tea in my card
When I select ‘Check Out’
And I enter my country as ‘Australia’
Then I see the total including GST
And I see that I am eligible for free shipping
Scenario: No free shipping outside Australia
Given I am on the Beautiful Tea homepage
When I search for ‘Byron Breakfast’ tea
Then I see the page for ‘Byron Breakfast’ tea
When I add ‘Byron Breakfast’ tea to my card
And I select 10 as the quantity
Then I see 10 x ‘Byron Breakfast’ tea in my card
When I select ‘Check Out’
And I enter my country as ‘New Zealand’
Then I see the total without GST
And I see that I am eligible for free shipping
Scenario: No free shipping in Australia
Given I am on the Beautiful Tea homepage
When I search for ‘Byron Breakfast’ tea
Then I see the page for ‘Byron Breakfast’ tea
When I add ‘Byron Breakfast’ tea to my card
And I select 1 as the quantity
Then I see 1 x ‘Byron Breakfast’ tea in my card
When I select ‘Check Out’
And I enter my country as ‘Australia’
Then I see the total including GST
And I see that I am not eligible for free shipping

С трудом дочитав это до конца, я понял, что есть какая-то разница между Австралийцами и Новозеландцами. И то, что Австралийцы не хотят доставлять своим соседям из Новой Зеландии чай ‘Byron Breakfast’ на халяву. Дискриминация просто налицо. Кроме того, оказывается что мне, жителю Австралии, бесплатная доставка положена, только если я закажу 10 упаковок чая ‘Byron Breakfast’.
И не положена, если я закажу одну упаковку. А если 5?
Кроме того, мне абсолютно непонятно, почему я должен платить некий GST, а эти ссс… соседи из Новой Зеландии его не платят. А что если я сделаю заказ из Украины? Я буду платить этот GST? (фиг его знает, что это такое, напридумывают тут аббревиатур)

Но исправленный пример для той же самой фичи просто открывает глаза:

Feature: Beautiful Tea Shipping Cost
  • Australian customers pay GST
  • Overseas customers don’t pay GST
  • Australian customers get free shipping for orders $100 and above
  • Overseas customers all pay the same shipping rate regardless of order size
Scenario: Calculate GST status and shipping rate
Given the customer is from <customer’s country>
When the customer’s order totals <order total>
Then the customer <pays GST>
And they are charged <shipping rate>
Examples:
customer’s countrypays GSTorder totalshipping rate
AustraliaMust$99.99Standard Domestic
AustraliaMust$100.00Free
New ZealandMust Not$99.99Standard International
New ZealandMust Not$100.00Standard International
Zimbabwe Must Not$100.00Standard International
И мне, как человеку с улицы, как-то стает более ясна общая картина задуманной фичи.
Во-первых из заголовка я понимаю, что есть некоторые законы, которые заставляют платить этот GST только австралийцев. Во-вторых… ну какой нафиг чай? Речь вообще идет о сумме заказа. Заказал на 100 баксов и более – получи бесплатную доставку, если ты австралиец. Заказал на 10 баксов – плати за доставку.

В первом варианте описания фичи было откровенное нечитабельное месиво из чая, кнопки Check Out, GST и австралийцев. За деревьями не видно леса. Второй вариант короче, но четко описывает фичу и дает хорошие примеры. Теперь нам не нужно переписывать тест-кейсы всякий раз когда цена на чай падает.

Кроме того, я уверен что автоматизировать тестирование этой фичи теперь стало еще проще по сравнению с предыдущем вариантом.

воскресенье, марта 18, 2012

Word против командной строки



Самый интересны и увлекательный момент для меня при чтении документации к тестируемому продукту – это найти командлайну (команду, которая выполняется в консоли cmd ) и попробовать что она действительно работает.

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

C:\Users\dzhariy>dir "C:\"
The filename, directory name, or volume label syntax is incorrect.

dir “C:\”
dir "C:\"

Так что, если вы пишете документацию, то не поленитесь проверить, работают ли ваши командные строки. А если вы тестируете – то обязательно проверяйте все командные строки в документации, потому что, тот человек, который писал документацию – навряд ли это делал.

суббота, марта 10, 2012

Perl скрипт – помощник для завершения Windows

Есть такая замечательная утилита для Windows – shutdown, которая помогает не только завершить Windows, а сделать это по таймеру, через определенное время.

Синтаксис команды следующий:
shutdown -s -f –t секунды

Вот только в секундах-то время вводить неудобно, особенно, если я хочу завершить работу через 15, 35, 50 минут…
Вы еще умножаете на 60? – Тогда мы идем к Вам!
Вот с этим скриптом на Perl:

shutdown.pl
$ARGV[0] *= 60 and system "shutdown -s -f -t $ARGV[0]" if $ARGV[0];

Сама команда:
perl shutdown.pl минуты

Это было просто :)

суббота, февраля 11, 2012

Specification by Example: A journey not a destination

Еще одна свежая презентация по теме Specification by Example от William Knight. Посмотрите также на профиль автора, там есть много чего интересного, вот например:

OMG, what to automate!

суббота, февраля 04, 2012

Подсветка синтаксиса для Cucumber/Gherkin в Far Manager

Проблема в том, что самые популярные текстовые редакторы не поддерживают подсветку языка Gherkin (Given When Then). Да, вы, конечно же, можете редактировать *.feature файлы с подсветкой синтаксиса в Eclipse, используя подсветку от JBehave или установить Specflow для Visual Studio, но неужели мне нужно использовать целую IDE для редактирования обычных текстовых файлов?

Уже длительное время (почти всю жизнь), я использую встроенный редактор Far Manager + Colorer для редактирования кода. Colorer обеспечивает красивую и расширяемую подсветку синтаксиса для всех популярных языков программирования. И я добавил подсветку для языка Gherkin.

Выглядит это так:

Если у Вас еще нет Far manager,
То просто скачайте мою сборку FarManager.zip, распакуйте в любую папку и пользуйтесь на здоровье!

Если у вас уже есть Far и Colorer, то
1. Распакуйте FarManager-Gherkin-hrc.zip
2. Откройте директорию FarManager-Gherkin-hrc\Plugins\Colorer\hrc\
3. Скопируйте папку misc в соответствующую директорию (hrc) Вашего Colorer
4. Откройте proto.hrc и перенесите строчки:

<!-- Gherkin -->
  <prototype name="gherkin" group="other" description="gherkin">
    <location link="misc/gherkin.hrc"/>
    <filename>/\.feature$/i</filename>
  </prototype>

В proto.hrc вашего \Colorer\hrc\proto.hrc

Данный релиз поддерживает только английские Given/When/Then.