Как тестировать веб-приложения: 6 шагов на пути безопасности

Marat_1162

Стаж на ФС с 2014 г
ЖУРНАЛИСТ
Private Club
Старожил
Migalki Club
Меценат
Регистрация
25/3/16
Сообщения
4.625
Репутация
8.866
Реакции
22.633
RUB
0
Сделок через гаранта
4
Депозит
3 500 рублей
%D0%BA%D0%BE%D0%B4.png


По Forbes, 30 000 сайтов подвергаются хакерской атаке ежедневно. Сотрудники PTSecurity обнаружили, что 9 из 10 веб-приложений содержат уязвимости, что является причиной 68% случаев утечки данных. Это происходит, потому что 4 из 5 веб-приложений содержат ошибки конфигурации, такие как настройки по умолчанию, стандартные пароли, сообщения об ошибках, раскрытие полного пути (fullpathdisclosure). Пренебрежение нормами безопасности может привести к краху веб-приложений, поэтому мы расскажем, как провести тест и убедиться в том, что вам ничего не угрожает.


1 этап. Функциональное тестирование

Вначале необходимо убедиться, что на функциональном уровне с веб-приложением все в порядке. На этой стадии происходит мониторинг соединения с базой данных, ссылок на веб-страницах, куки, форм для подписки. Обычно этот тест проводят на ранних этапах разработки веб-приложения.
Самый известный инструмент для функционального тестирования — UnifiedFunctionalTesting (UFT) — обладает функциями распознавания объектов, компонентами для многоразовой проверки и автоматической генерацией документации.
TestComplete поддерживает различные языки программирования, такие как
JavaScript, VBScript, Python и C++. Пентестеры могут осуществлять испытание на проникновение, делая отсылки к ключевым словам и большим данным.
Selenium считается самым популярным инструментом для тестирования веб-приложений, находящийся в открытом доступе. Каждый из компонентов программы играет определенную роль в автоматизации проверки. Selenium поддерживает Windows, Mac, Linux, работает в браузерах Chrome, Firefox, IE, Headless. Кроме того, разработчики этого ПО предлагают специальный язык для проведения тестирования (Selenese). Благодаря этому можно создавать тесты на различных языках программирования, включая Java, PHP, Groovy, Perl, C#, Python, Ruby и Scala.

2 этап. Тестирование удобства использования

Тест на удобство использования веб-приложения включает в себя элементы функционального мониторинга и оценивает общий пользовательский опыт. Тестирование удобства использования можно разделить на четыре части:
  • разработка стратегии для тестирования, учитывая, что все компоненты веб-приложения подлежат мониторингу, от навигации до контента,
  • привлечение внутренних и внешних участников теста, то есть приложение могут тестировать как его непосредственные разработчики, так и наемные лица, имитирующие деятельность пользователей,
  • собственно, проведение тестирования,
  • анализ результатов и усовершенствование приложения.
Для получения аналитики, воспользуйтесь CrazyEgg. Этот инструмент работает наподобие Google Analytics. Программа позволяет понять, откуда пользователи приходят в веб-приложение, в каких секциях проводят дольше всего, где больше кликов на странице, какие части стоит оптимизировать.
Optimizely — ведущая мировая платформа для проведения тестирования удобства использования. Здесь вы легко осуществите A/B и кросс-браузерное тестирование, выберете лучшее CTA (призыв к действию), тайтлы и цвета, которые понравятся потенциальным клиентам.

3 этап. Тестирование интерфейса

На этой стадии пентестеры проверяют, как происходит взаимодействие между серверами приложения и веба. Мониторингу подлежит не только процесс коммуникации, но и отражение уведомлений об ошибках. Также тест позволяет определить, прерывается ли соединение на сервере.
Если вам предстоит тестировать интерфейс, проверьте, все ли вы сделали правильно:
  • включите в тест ошибки 4xx и and 5xx — в идеале, должно отражаться конкретное сообщение, а не просто код ошибки,
  • не забудьте о валидации пользователя с помощью http-аутентификации,
  • проверьте наличие методов, используемых в API или веб-сервисах типа GET, PUT, POST,
  • верифицируйте переход из формата JSON в XML и наоборот,
  • убедитесь, что диспетчер операций на интерфейсе соответствуют ожидаемому результату,
  • переведите временную зону API в ее аналог в географической местности,
  • посмотрите, возникает ли сообщение об ошибке в ответ на неавторизованный доступ к интерфейсу,
  • верифицируйте работу с прерванным соединением,
  • наконец, если некоторые компоненты удалены из веб-приложения, убедитесь, что интерфейс не взаимодействует с ними.
Если вы работаете с Java, лучшим другом для вас станет инструмент REST—Assured. Программа имеет огромный функционал, так что вам не придется прописывать коды вручную с самого начала. Также этот инструмент интегрируется с фреймворком Serenity.
В случае, если вы проводите API-тестирование, вам, скорее всего, понравится работать с SoalUI. Захотите добавить дополнительные коды или функции в поток работ? Воспользуйтесь Groovy для того, чтобы прописать скрипты.

4 этап. Тестирование соответствия

Разные элементы веб-приложений могут отражаться по-разному, в зависимости от операционной системы. Поэтому важно тестировать компоненты на соответствие ОС (как минимум, Windows, Mac, Linux), а также проверять демонстрацию в популярных браузерах, таких как Chrome, Safari, Firefox, Internet Explorer.
Протестировать веб-приложение на предмет соответствия в различных браузерах можно при помощи программы LambdaTest. Благодаря этот инструмент позволяет запускать автоматические скрипты Selenium.
В свою очередь, BrowserStack открывает доступ к более чем 1200 браузерам и не содержит слишком строгих требований к настройке или конфигурации.

5 этап. Тестирование производительности

Убедившись, что веб-приложение функционально и корректно решает возложенные на него задачи, тестировщик проверяет производительность при разных нагрузках и скоростях Интернета.
Вы можете провести как стрессовое, так и нагрузочное тестирование при помощи инструмента WebLOAD. Эта программа интегрируется с такими платформами, как Selenium и Jenkins.
А, например, LoadNinja дает возможность протестировать не только нагрузку, но и провести дебаггинг и мониторинг пользовательской активности в режиме реального времени.

6 этап. Тестирование безопасности

Этот типЭтот тип тестирования включает в себя подходы, позволяющие определить слабые места веб-приложений, и улучшить их, насколько возможно. Основные стадии тестирования безопасности включают в себя:
  • сбор информации об элементах, используемых для разработки веб-приложений, с учетом операционной системы, аппаратного обеспечения и технологий,
  • список потенциальных рисков и уязвимостей,
  • подготовка профиля рисков,
  • автоматическое тестирование,
  • разработка отчетности.
На этой же стадии вы можете убедиться в том, что ваше соединение работает в безопасном режиме. Ведь, работая с веб-приложениями, вы так или иначе взаимодействуете с другими элементами в сети. Поэтому не забывайте о том, что адреса IPv4 и IPv6 демонстрируют местоположение вашего устройства и специфику девайса, а значит, слежку за вами можно прекратить, включив VPN.
 
Сверху Снизу