вторник, Ноябрь 03, 2009

Онлайн-тренинг "Программирование для тестировщиков"

Бытует мнение, что тестировщикам вредно уметь программировать. Якобы это умение мешает им потому, что из-за него они слишком много думают о реализации программы и слишком мало о том, как же её протестировать.
Определённый смысл в этом есть, возможно для кого-то умение программировать действительно служит отвлекающим фактором. Но если вы умеете бороться с искушениями, тогда этот навык может оказаться весьма полезным, потому что он даёт возможность переложить часть своей работы на компьютер.
Да, имеется в виду автоматизацию тестирования. Но под автоматизацией подразумевается не только написание скриптов, которые эмулируют взаимодействие пользователя с графическим интерфейсом программы. Помимо этих скриптов можно автоматизировать генерацию тестовых данных, проверку содержимого базы данных, развёртывание и настройку тестового окружения, проверку отсутствия сообщения об ошибках в лог-файлах, генерацию отчётов, и многое-многое другое.
Сложно ли научиться программировать? Вероятно, бывают люди, для которых алгоритмический стиль мышления абсолютно неприемлем. Но большинство айтишников по крайней мере на интуитивном уровне уже обладают алгоритмическим мышлением. Многие тест-дизайнеры пишут весьма подробные инструкции для ручного тестирования, это почти готовые программы, но предназначенные для "биороботов". Осталось сделать один небольшой шаг и научиться управлять настоящими роботами-компьютерами.
Разучитесь ли вы тестировать, научившись программировать? Вовсе нет, существующие навыки тестировщика от вас никуда не денутся. Но в дополнение к ним в ваших руках появится ещё один инструмент, и весьма мощный. Разумеется, владение навыками программирования не означает, что их нужно применять здесь и там без разбора, стремясь автоматизировать всё подряд. Силу нужно держать под контролем и применять её лишь там, где её применение обосновано. Для этого нужно хорошо овладеть силой, чтобы она подчинялась вам, чтобы это был привычный инструмент с понятными принципами работы, а не магический артефакт, управляемый загадочными заклинаниями.

Ну что ж, довольно слов, пора перейти к делу.

Как и всякий навык, умение программировать нужно тренировать и закреплять. Недостаточно просто прочитать книжку и выучить набор команд. Знать ещё не значит уметь. Поэтому тренинг "Программирование для тестировщиков" будет содержать как теоретические сессии, так и практические задания для самостоятельного выполнения.

Программа курса

В этом курсе мы будем учиться программировать на языке Java.

Первые два занятия посвящены основам программирования. Вы учили это в школе и вузе, но если всё благополучно забылось, придётся вспомнить.
1.2. Основы программирования.
На остальных занятиях будет рассмотрен ряд задач, с которыми часто приходится сталкиваться тестировщикам в реальной жизни, и будет рассказано, как средствами программирования эти задачи решаются. Мы не станем углубляться в изучение различий между парадигмами программирования и в тонкости использования тех или иных конструкций. Всё это придёт потом. А пока мы просто научимся решать конкретные практические задачи.
3. Работа со строками -- анализ строк, проверка соответствия образцу, регулярные выражения.
4. Работа с контейнерами, предназначенными для хранения наборов данных: множествами, списками, ассоциативными массивами.
5. Работа с файлами -- чтение и запись данных из файла и в файл, анализ содержимого директорий.
6. Автоматизация браузера с использованием инструментов Selenium и WebDriver.
7. Автоматизация Java GUI с использованием Jemmy.
8. Работа с базами данных -- JDBC и Java Persistence.
9. Работа с почтой -- сервер James и клиент Java Mail.
10. Сетевое программирование -- HTTP, FTP и другие протоколы прикладного уровня.

Формат курса

Онлайн-тренинг продолжительностью примерно два с половиной месяца (10 занятий), с еженедельными онлайн-занятиями и практическими домашними заданиями.
Онлайн-занятия состоятся каждый четверг, начиная с 3 декабря с 19.00 до 20.30 за исключением 31 декабря и 7 января :-).

Кроме того, каждый вторник с 18.00 до 18.30 тренер Алексей Баранцев будет ждать в скайпе вопросы участников курса, которым необходима помощь в выполнении домашнего задания.
Каждый участник курса будет получать обратную связь от тренера по результатам выполнения домашнего задания.
Наиболее типичные ошибки будут разбираться на онлайн-занятиях.

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

Технические требования

Все семинары будут организованы с использованием системы DimDim (http://www.dimdim.com).

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

Для участия Вам не нужно устанавливать никакого специального программного обеспечения, требуется только браузер c плагином Adobe Flash Player и достаточно быстрое Интернет-соединение.
Проверить пропускную способность своего соединения можно здесь: http://www.dimdim.com/support/dimdim_tools.html (слева инструмент Bandwidth Checker).
Необходимы наушники или другая акустическая система, чтобы слушать ведущего. Микрофон не требуется, вопросы можно будет задавать письменно в чате.
В случае возможных технических сбоев с ведущим можно будет связаться через систему Skype.

Узнать условия участия: http://www.software-testing.ru/events/834-programming-for-testers

среда, Сентябрь 30, 2009

Обзор анкет слушателей вебинаров серии "Онлайн-семинары по четвергам"

Прошло уже больше половины вебинаров серии «Онлайн-семинары по четвергам», пора подвести некоторые итоги. Как обычно, положительные отзывы просто процитирую, а отрицательные будут представлены в виде анализа с оргвыводами. Надеюсь, что это окажется полезно не только мне, но также тем, кто сам проводит какие-либо онлайн-мероприятия (семинары, презентации, демонстрация продуктов заказчикам и т.д.)

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

Подробности на сайте Software-Testing.Ru

вторник, Сентябрь 22, 2009

Тренинг “Автоматизация функционального тестирования веб-приложений”

Еще неделю до 26 сентября при записи на открытый очный тренинг "Автоматизация функционального тестирования веб-приложений: Selenium + Selenium RC", действует скидка 15%. Кроме того, каждый участник тренинга получит бесплатно записи трех любых онлайн-семинаров серии "Онлайн-семинары по четвергам". Тренинг пройдет 6 октября в Москве.

Программа тренинга

  1. Как устроен Selenium (Core, RC, Grid). В чём отличие от других аналогичных фреймворков.
  2. Selenum IDE. Простейшие тесты. Запись и воспроизведение тестовых скриптов. Отладка и доработка тестовых скриптов в среде Selenium IDE.
  3. Переход к Selenium RC. Перенос тестовых скриптов из Selenium IDE в Selenium RC. Запуск, отладка и доработка тестовых скриптов.
  4. *Основы разработки тестов с использованием TestNG.
  5. Принципы организации тестового набора. Повторное использование фрагментов кода. Многослойная архитектура тестов. Повышение устойчивости тестов к изменениям требований и реализации.
  6. Принципы создания устойчивых локаторов.
  7. *Вспомогательные инструменты -- Firebug, XPather, IE Developer Toolbar.
  8. Использование различных браузеров и особенности взаимодействия Selenium с ними.

Подробности про условия участия в тренинге на сайте Software-Testing.Ru

воскресенье, Сентябрь 06, 2009

Расписание тренингов по тестированию ПО на осень

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

6 октября состоится однодневный тренинг "Автоматизация функционального тестирования веб-приложений: Selenium + Selenium RC".

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

24 октября состоится тренинг "Тестирование методом свободного поиска (exploratory testing)".

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

Оба открытых тренинга пройдут в Москве.

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

17.09.2009
13:00-15:00
Функциональное тестирование на основе вариантов использования
17.09.2009
16:00-18:00
Управление требованиями, запросами на изменение и дефектами
08.10.2009
13:00-15:00
Инструменты автоматизации функционального тестирования веб-приложений семейства Selenium
08.10.2009
16:00-18:00
Тестирование методом свободного поиска (exploratory testing)
22.10.2009
13:00-15:00
Регрессионное тестирование: принципы формирования тестовых наборов для повторного выполнения
22.10.2009
16:00-18:00
Тестирование веб-сервисов
05.11.2009
13:00-15:00
Основные техники функционального тестирования и их комбинирование
05.11.2009
16:00-18:00
Модульное тестирование: техники и инструменты
19.11.2009
13:00-15:00
Тестирование защищенности веб-приложений: наиболее распространенные уязвимости
19.11.2009
16:00-18:00
Стандарты в области тестирования и их применение на практике
03.12.2009
13:00-15:00
Тестирование производительности веб-приложений: основные приемы генерации нагрузки и мониторинга
03.12.2009
16:00-18:00
Работа с исходным программным кодом для тестировщиков

вторник, Сентябрь 01, 2009

Панбагон 2.0: две недели, полёт нормальный

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

По просьбам наших читателей приводим некоторую статистику. За две недели написано 43 заметки и к проекту присоединилось 43 человека, 25 из которых активно участвуют в обсуждениях, а 11 человек за две недели получили бонусные баллы, опубликовав собственные заметки: Первая раздача бонусных баллов и Вторая раздача бонусных баллов, и наши благодарности.

Почему это важная веха? Потому что 42 -- это ответ на Самый Главный Вопрос Жизни, Вселенной и Вообще. И мы пересекли этот рубеж!

вторник, Август 18, 2009

Панбагон 2.0 или Полное торжество демократии

Я не верю в профессиональные социальные сети. И особенно утопичной мне представляется социальная сеть для тестировщиков.

Есть мнение, что в силу специфики своей профессии тестировщики мало общаются друг с другом, но зато много общаются с разработчиками, аналитиками, службой техподдержки. Это приводит к замедленному обмену информацией, что не может не сказываться отрицательно на развитии нашей отрасли. Все проекты, которые мы строим вокруг портала Software-Testing.Ru, нацелены на преодоление этой "информационной блокады".

В интервью, которое я давал порталу www.it4business.ru чуть больше полугода тому назад, я говорил, что "вебдваноль" нам не грозит, что я не собираюсь всех агитировать публиковать свои творения на сайте Software-Testing.Ru. Наоборот, я всячески приветствую появление новых блогов, сайтов, тренингов, конференций и других мест для профессионального общения тестировщиков. И некоторые позитивные результаты имеются -- за год количество блогов о тестировании выросло почти в три раза!

Однако в какой-то момент я понял, что есть много тестировщиков, которые не готовы начать вести собственный блог, потому что его регулярное пополнение требует времени и сил. Ну и конечно надо придумать, о чём писать. Поэтому я решил, что создание тематических коллективных блогов будет хорошим способом преодоления этого барьера. Во-первых -- тема задана, а во-вторых -- не обязательно писать регулярно, блог будет пополняться "с миру по нитке".

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

Примерно три месяца назад был запущен первый коллективный проект Панбагон. Для тех, кто не в курсе, расшифрую значение названия этого проекта. Пантеон -- так в Древнем Риме назывался храм, посвящённый всем богам. А наш проект посвящён не бОгам, а бАгам, поэтому он так и называется. Здесь мы выставляем на всеобщее обозрение баги, найденные случайно или специально в тех программах, которые мы использовали, или на тех веб-сайтах, которые мы посещали. Целью является не простая фиксация чужих ошибок, не желание посмеяться над нерадивыми разработчиками и тестировщиками, которые пропустили дефект. Мне бы хотелось, чтобы не просто публиковались описания багов, но и были попытки понять и описать, чем вызван этот дефект, почему он остался необнаруженным, какие приёмы, техники, инструменты тестирования могли бы помочь в его поимке, как можно профилактическими мерами добиться того, чтобы такие баги вообще не возникали.

Панбагон жил некоторое время на платформе Blogger, но её возможности оказались ограничены. Хотелось добавить в Панбагон некий элемент "игры", а также сделать его более открытым для всех. Поэтому было принято решение о переходе на standalone-платформу. Теперь он будет работать на движке LiveStreet и жить здесь: http://community.software-testing.ru/blog/panbugon/.

Что нового появляется в Панбагоне после переезда?

Во-первых, открытая регистрация -- теперь жрецом может стать каждый, все ограничения отменены, полное торжество демократии!

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

Вперед, тестировщики, смелее!!!

Вне зависимости от набранных баллов рейтинга всем, кто опубликует заметку в первую неделю, рейтинг будет увеличен на 20 баллов, во вторую неделю на 15, третью на 10 и четвертую на 5 баллов.

Регистрируйтесь, пишите заметки, комментируйте, общайтесь!

вторник, Август 11, 2009

Инструменты статического анализа кода для поиска уязвимостей

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

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

Вкратце, суть работы таких инструментов в том, что инструмент сканирует исходный код и пытается строить графы потоков данных. И затем по этому графу прослеживается путь данных, которые поступают извне программы – от пользователя, из базы данных, от какого-нибудь внешнего плагина и т.п. Если такие данные без проверок и преобразований доходят до SQL-запроса – имеем уязвимость типа SQL injection. Если они добираются до вывода в HTML-код – извольте получить XSS.

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

Инструмент Pixy работает с языком PHP, и неплохо работает, но для полноты картины хочу найти аналогичные инструменты для других языков – Perl, Python, Ruby, Java, .Net или хотя бы понять, есть ли такие, сделал ли уже кто-нибудь или ниша пока открыта.

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

  © Blogger template 'Mantis' by Ourblogtemplates.com 2008

Back to TOP