пятница, 31 мая 2013 г.

Python + Selenium WebDriver: фреймворк для тестирования web-приложений

Selenium WebDriver - это набор многофункциональных библиотек, используя которые в вашем проекте вы можете писать GUI-тесты для web-приложений. При этом каждый тест запускается в реальном браузере и команды Selenium позволяют имитировать действия пользователя с web-приложением. Подробнее об установке и настройке Selenium WebDriver можно почитать в статье: "Работа с Selenium Web Driver". А в этой будет показано, как можно написать свой фреймворк на Python для GUI-тестирования используя WebDriver.

понедельник, 13 мая 2013 г.

Общие подходы и критерии тестирования сканеров безопасности web-приложений

Сканеры информационной безопасности (или сканеры уязвимостей) – это программно-аппаратные средства мониторинга и контроля информационной безопасности сетевой инфраструктуры. Сканеры информационной безопасности (ИБ) позволяют проверять  информационные системы: компьютерные сети, отдельные компьютеры и установленные на них приложения на наличие уязвимостей, эксплуатация которых злоумышленниками может нанести ущерб организации, которой принадлежит данная инфосистема. Большинство сканеров безопасности позволяют детектировать уязвимости описанные классификатором WASC Threat Classification. 

С тестированием ИБ и основными определениями в этой области можно ознакомиться в нашей прошлой статье: "Основы тестирования безопасности web-приложений". В данной статье попытаемся рассмотреть вопросы, связанные с тестированием сканеров информационной безопасности web-приложений как программных продуктов.

понедельник, 4 марта 2013 г.

Подходы к оценке качества релизов программного обеспечения

В современных компаниях по разработке программного обеспечения (ПО), обычно используется подход итеративного создания, развития и улучшения программ, включающий в себя этапы:
  • анализ запросов (analysis) заказчика 
  • планирование и постановка задач разработчикам для очередного цикла разработки (planning);
  • разработка ПО (develop) программистами;
  • тестирование (testing) решенных программистами задач;
  • релиз (release) – итог очередной итерации разработки ПО;
  • передача, внедрение (update) и апробация релиза у заказчика.

Нагрузочное тестирование при помощи JMeter

Структура статьи:

Основы тестирования безопасности web-приложений

Работа с Selenium Web Driver

Разработка функциональных тестов при помощи RobotFramework

Разработка функциональных тестов при помощи Selenium

Структура статьи:
    1.1 План разработки автоматических функциональных тестов.

воскресенье, 3 марта 2013 г.

Общие сведения о тестировании web-приложений

Структура статьи:

xPath: идентификация элементов на web-форме

Язык запросов xPath служит для упрощения доступа к элементам web-формы, расположенным в DOM. Очень часто его используют в таких средствах автоматизации тестирования, как Selenium IDE и Selenium WebDriver.

Аутентификация в Linux с помощью ключевой пары

Задача: требуется аутентифицировать машину Клиента (user: client_username, host: client_host) на машине Сервера (remote user: server_username, host: server_host). 
Решение:

среда, 27 февраля 2013 г.

Настройка git pre-commit hook под Windows

Задача: запретить коммиты кода в git-е под Windows, если для Python-проекта не прошли все указанные юнит-тесты.
Решение: настроить файл git pre-commit hook.

суббота, 23 февраля 2013 г.

Контроль целостности кода функций

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

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

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

понедельник, 15 октября 2012 г.

httest: HTTP Test Tool

httest - набор инструментов для подготовки всех видов тестовых сценариев для приложений, использующих HTTP-протокол. Есть версии под Windows/*NIX/MacOS. Благодаря своей простой конструкции (требуется только бинарный файл httest) он может использоваться на любых серверах для различных аналитических целей. Области применения httest разнообразны и включают в себя как простые тесты, так и технические проверки, тестирование производительности и мониторинга системы. Простой синтаксис позволяет неспециалистам быстро понять и написать тесты.

четверг, 11 октября 2012 г.

httpbin: HTTP Request & Response Service

httpbin - это python-сервер, который возвращает стандартные ответы на запросы клиента. 
Часто требуется проверить тот или иной функционал вашего сетевого приложения. httpbin может пригодиться для тестирования корректной работы HTTP-клиента со стандартными ответами HTTP-сервера.

пятница, 28 сентября 2012 г.

Генератор уязвимых динамических сайтов - OWASP Site Generator

OWASP Site Generator - конструктор динамических web-сайтов на основе конфигураций, задаваемых в XML-файлах. Он позволяет быстро создавать Java-приложения, содержащие стандартные уязвимости, как простые, так и сложные, описываемые классификатором WASC. Генератор охватывает широкий круг технологий web-разработки. В конструкторе имеются, например, различные варианты навигации, шаблоны HTML, JavaScript, Flash, Java, форм регистрации и авторизации, поддержка работы с БД и другие возможности. По основному функционалу web-приложения, создаваемые генератором, схожи с уязвимым приложением DVWA, но отличаются тем, что вы можете сами задавать наборы уязвимостей и структуру приложения.

OWASP Site Generator можно использовать:
  • для оценки работы сканеров безопасности web-приложений,
  • для оценка систем защиты web-приложений,
  • для обучения web-разработчиков,
  • как Web Honeypot - приложение-ловушку для злоумышленников,
  • как web-приложение для penetrating testing конкурсов,
  • как учебное пособие для дисциплин, связанных с информационной безопасностью,
  • как инструмент тестировщиков для проведения сравнительных тестов сканеров безопасности, и многого другого.

вторник, 25 сентября 2012 г.

Password Bruter - программа для многопоточного подбора учетных данных к страничкам с form-based авторизацией

Перед разработчиками и тестировщиками web-приложений периодически встают задачи тестирования безопасности разрабатываемого продукта. Один из наиболее известных классификаторов угроз и уязвимостей для web-приложений - The Web Application Security Consortium (The WASC) Threat Classification v2.0.
Одна из популярных уязвимостей (Weaknesses - в классификаторе), встречающихся для web-приложений - это недостатки подсистемы авторизации (WASC-02 Insufficient Authorization). На web-приложение, имеющее данную уязвимость, могут попытаться осуществить атаку (Attacks - в классификаторе) типа "Брутфорс" (WASC-11 Brute Force). При этом злоумышленник может попытаться осуществить подбор учетных данных на странице авторизации, если она недостаточно защищена.
К недостаткам защиты страницы авторизации можно отнести:
- отсутствие ограничения по числу попыток авторизации,
- отсутствие поля для ввода дополнительной информации - капчи (capture),
- отсутствие временной задержки между попытками авторизации и другие.
Наличие указанных недостатков в реализации подсистемы авторизации упрощает злоумышленнику доступ к web-приложению.
Одна из разновидностей атаки брутфорсом - подбор учетных данных (Brute Forcing Log-in Credentials) для страницы авторизации (Form-based Auth). Для имитации данного типа атаки был написан свой многопоточный брутфорсер Password Bruter на Python 3.2. В качестве цели было развернуто и использовано уязвимое web-приложение Damn Vulnerable Web Application (DVWA).

четверг, 13 сентября 2012 г.

Краулер ссылок и автоматизация процесса снятия скриншотов

Перед нами стояла задача: автоматизировать процесс снятия скриншотов со страничек web-приложения - некоторого сайта. Требовалось:
  1. Получать стартовый URL.
  2. Искать на страничке, полученной по стартовому URL все ссылки на другие странички.
  3. Переходить по всем найденным ссылкам и делать скриншоты со всех страничек.
  4. Ограничивать глубину вложенности при прохождении найденных ссылок.

воскресенье, 2 сентября 2012 г.

Безопасность и тестирование

Начинаю выкладывать в  данный блог  материалы связанные с информационной безопасностью и тестированием программного обеспечения. Статьи, в основном, будут иметь практическую и научную направленность. Статьи и их содержимое будут исправляться и дополняться по ходу изучения новых материалов.
Все материалы, представленные здесь, получены в ходе работ в Казанском государственном техническом университете им. А.Н. Туполева (КАИ), группе компаний Центр (г. Казань), компании Positive Technologies (г. Москва).

В качестве введения в область практического тестирования программного обеспечения, предлагаю ознакомиться со статьями: