В учебных программах по дисциплине "Обеспечение качества и тестирование программ" есть темы:
В поисках ответа по теме собрал материалы из литературы, учебных программ и стандартов в области программного обеспечения.
«Основы инженерии качества программных систем», Филипп Андон, Галина Коваль, Татьяна Коротун, Екатерина Лаврищева, В. Суслов, Академпериодика, 2007. 325-329 страница:
Web-приложения можно рассматривать как клиент/серверные приложения, в которых функциональность реализуется как на серверной, так и на клиентской стороне, а пользовательский интерфейс имеет стандартизированную архитектуру, в которой [44]:
- для взаимодействия с пользователем используется Web-браузер;
- взаимодействие с пользователем четко разделяется на этапы, в течение которых браузер работает с одним описанием интерфейса, а эти этапы, в свою очередь, разделяются однозначно локализуемыми обращениями от браузера к приложению;
- для описания интерфейса применяется стандартное представление;
- взаимодействие между браузером и приложением осуществляется по стандартному протоколу (HTTP) и четко формализовано;
- функциональность Web-приложения распределена между удаленным сервером и клиентскими компьютерами пользователей.
Таким образом, тестирование Web-приложений проводится на трех уровнях:
- интерфейса пользователя;
- сервера (серверов);
- протоколов их взаимодействия.
В целом, тестирование основано на использовании сценариев, описывающих последовательность действий виртуальных пользователей.
Функциональное тестирование проводится как на уровне интерфейса приложения, так и на уровне его взаимодействия с сервером.
Тестирование интерфейса обычно сводится к проверке корректности вводимых данных, правильности навигации по сайту и других характеристик интерфейса и связано с удобством применения Web-приложения.
...Пример общего контрольного вопросника для проверки удобства применения интерфейса Web-сайта, который может быть полезен для планирования тестирования (опубликован компанией IT-Online) [45]. Контрольные вопросы для проверки удобства применения Web-приложений:
Архитектура и навигация сайта
- Соответствует ли структура сайта целям, для достижения которых он предназначен? Понятна ли схема навигации?
- Можно ли определить, в каком месте сайта вы находитесь?
- Легко ли найти на сайте нужную информацию?
- Разумно ли количество элементов в панелях навигации? Логично ли отсортированы элементы?
- Соответствуют ли названия гиперссылок названиям страницы?
- Отчетливо ли выделены гиперссылки?
- Отчетливо ли выделена ссылка на главную страницу?
- Существует ли возможность поиска информации на сайте?
- Существует ли карта сайта?
- Каждая ли страница позволяет понять, на каком сайте вы находитесь?
- Можно ли управлять навигацией по сайту?
Планировка и дизайн сайта
- Не превышает ли размер страницы размер окна?
- Повторяется ли схема планировки на всех страницах?
- Существует ли отчетливый фокус на каждой странице?
- Видна ли визуально планировка?
- Эффективно ли используется выравнивание и группировка?
- Достаточно ли хорош контраст?
- Не громоздкая ли планировка?
- Нравится ли вам сайт эстетически?
Содержание сайта
- Понятны и лаконичны ли тексты на сайте?
- Организован ли текст в виде небольших блоков?
- Встречаются ли в тексте грамматические и орфографические ошибки и опечатки?
- Содержат ли страницы вводный текст?
- Поддерживают ли мультимедийные компоненты задачи пользователя?
- Являются ли единицы измерения, используемые на сайте, понятными?
- Представлены ли на сайте время и дата создания страниц?
- Представлены ли на сайте номера контактных телефонов?
- Представлены ли на сайте адреса с почтовыми индексами?
Формы и взаимодействие
- Соответствуют ли формы задачам пользователя?
- Поддерживают ли диалоги логичную последовательность шагов?
- Очевидна ли кнопка или ссылка для перехода к следующему шагу диалога?
- Все ли элементы форм используются по назначению?
- Сгруппированы ли элементы формы по смысловому назначению?
- Понятно ли выглядит кнопка отправки формы?
Графика
- Приемлемо ли качество используемой графики?
- Все ли графические элементы имеют альтернативные текстовые надписи?
- Содержат ли графические элементы информацию о размере файла?
- Оптимизированы ли графические элементы для передачи по Интернету?
- Реагируют ли графические элементы на движения мышки?
- Используется ли анимация?
- Приемлем ли объем графических файлов?
Цвета
- Подходящий ли выбор цветов для сайта?
- Не слишком ли много цветов?
- Используются ли цвета логично и последовательно?
- Адекватно ли различаются цвета в черно-белом режиме?
Оформление текста
- Понятны ли тексты?
- Приемлем ли размер шрифта?
- Имеет ли шрифт подходящий цвет и достаточно ли он контрастный? - Отформатирован ли текст так, чтобы в строке было от 10 до 12 слов?
- Достаточна ли ширины поля вокруг текста?
Устойчивость к ошибкам
- Должен ли пользователь что-нибудь запоминать, переходя между страницами?
- Возникает ли предупреждение при попытке совершения необратимых действий?
- Можно ли отменить рискованные действия?
- Перехватываются ли возникающие ошибки локально, без обращения к серверу?
- Содержат ли страницы с сообщением о возникших ошибках полезную информацию?
- Содержат ли страницы с пустыми результатами поиска советы по расширению условий поиска?
- Существует ли система контекстной помощи (справки)?
- Структурирована ли помощь по задачам пользователя? Объясняет ли она пользователю, как совершить то или иное действие?
Платформа и особенности реализация
- Достаточно ли быстро происходит загрузка страниц (от 3 до 15 секунд)?
- Все ли гиперссылки работают правильно?
- Существуют ли поврежденные графические элементы?
- Написан ли текст на страницах так, чтобы его могли найти поисковые системы?
- Работает ли сайт с разными браузерами пользователя?
- Работает ли сайт на мониторах высокого и низкого разрешения?
- Используются ли нестандартные plug-in? Являются ли они необходимыми и полезными?
Вопросы тестирования серверной части Web-приложений рассмотрены в разных источниках [Whittaker J.A. How to Break Web Software; Nguyen H., Johnson R., Hackett M. Testing Applications on the Web; Мельбурн Д., Джорм Д. Тестирование web-приложений "на проникновение"; Стотлемайер Д. Тестирование Web-приложений], например, в [Сортов А.А., Хорошилов А.В. Функциональное тестирование Web-приложений на основе технологии UniTesK.] предложена оригинальная технология тестирования UniTesK.
Наряду с функциональным тестированием в Web-приложениях возрастает роль тестирования технических характеристик, прежде всего, надежности и восстанавливаемости, безопасности, производительности, конфигурации (в разных браузерах и платформах).
Вопросы тестирования безопасности охватывают, помимо проверки корректности ввода, анализ таких распространенных аспектов «уязвимости» Web- приложений, как плохие механизмы аутентификации, логические ошибки, непреднамеренное раскрытие информации, а также традиционные ошибки в обычных приложениях. Так, в работе [Мельбурн Д., Джорм Д. Тестирование web-приложений "на проникновение"] предложена методология систематического тестирования, охватывающая следующие аспекты проверки:
1. Идентификация окружения web-приложения. Включает анализ информации об используемых языках скриптов, Web-сервере, операционной системе. Для извлечения такой информации рекомендуется:
- проанализировать отклик на HTTP-запросы HEAD и OPTIONS (из заголовка или любой страницы, содержащей строку SERVER);
- исследовать формат и текст информации о 404-й ошибке сервера (и других). Некоторые системы имеют легко узнаваемые сообщения об ошибках, а также часто позволяют узнать версии используемых языков. Можно преднамеренно запросить страницы, приводящие к подобным ошибкам, а также использовать альтернативные методы запроса (POST, PUT и т.п.) для извлечения информации из сервера;
- проверить распознаваемые типы файлов/расширения/каталоги. Многие Web-серверы по-разному реагируют на запросы файлов с поддерживаемыми и неизвестными расширениями. Следует попытаться запросить файлы со стандартными расширениями, такими как “.ASP”, “.HTM”, “.PHP”, “.EXE”, и следить за появлением какого-либо необычного результата или кодов ошибок;
- проверить исходные тексты доступных страниц. Исходный текст страницы, сгенерированной Web-приложением, может указывать на используемое программное окружение;
- попытаться исказить входные данные для получения ошибок в скриптах. Это также позволит получить информацию об окружении Web-приложения;
- использовать сканирование TCP/ICMP и сервисов. Для этого рекомендуется использовать анализаторы приложений (в частности, Amap и WebServerFP) или средства сканирования Nmap и Queso.
2. Тестирование скрытых элементов форм и раскрытие исходных текстов. Включает проверку всех исходных текстов страниц на наличие любой полезной информации, непреднамеренно оставленной разработчиком - это могут быть фрагменты скриптов, расположенных внутри HTML-кода, ссылки на подключаемые или связанные скрипты, неправильно розданные права доступа к критичным файлам с исходным текстом. Должно быть проверено наличие каждой программы и скрипта, ссылки на которые были найдены. В случае обнаружения они тоже должны быть протестированы.
3. Определение механизмов аутентификации. Необходимо проверить, как выбранный механизм применяется к каждому ресурсу, используемому Web-приложением. Для этого следует попытаться получить доступ ко всем ресурсам через каждую точку входа. Многие Web-системы предлагают средства поддержки сессий, основанные на сохранении в cookie или Session-ID псевдоуникальной строки, характеризующей их статус. В том случае, если данная строка является простым хэшем или строкой, составленной из известных элементов, система может оказаться уязвимой к таким видам атаки, как, например, прямой перебор, повторная отправка, или попытка восстановления.
Некоторые особенности тестирования Web-приложений связаны с процессом разработки. Как правило, для создания Web-приложений используются методы «ускоренной» разработки, в которых:
- тестирование встроено в жизненный цикл и выполняется параллельно с разработкой;
- небольшие проектные группы (или один Web-дизайнер);
- активное участие заказчика (не всегда возможно);
- очень сжатые сроки разработки версий ограничивают время на тщательное планирование и выполнение тестирования;
- фаза интеграции Web-приложения обычно отсутствует (нет интеграционного тестирования) поэтому основное внимание уделяется функциональному тестированию приложений в моделируемой среде и системному – в реальной среде;
- стадия сопровождения и развития – неотъемлемая часть жизненный цикл, следовательно, требуется постоянное регрессионное тестирование.
Сжатые сроки тестирования приводят к необходимости его автоматизации. Особенно это касается тестирования производительности и надежности сервера. Перечень наиболее распространенных инструментов тестирования различных фирм-производителей можно найти в приложении 4.
Среди множества публикаций по тестированию можно выделить переводную монографию [50], посвященную вопросам тестирования Web-приложений, а также перечень статей, посвященных разным аспектам тестирования в Интернет, например, на сайте R.S. Pressman & Associates, Inc.
Инструменты тестирования Web-приложений
Название Краткая характеристика Разработчик IBM Rational Web Developer Инструмент для быстрой разработки, тестирования и развертывания web- приложений web-служб и приложе- ний Java в среде IDE IBM Rational http://rational.aplana.ru/products IBM Rational XDE Tester. Инструмент для функционального и регрессионного тестирования Java- и Web-приложений. IBM Rational http://rational.aplana.ru/products e-TEST suite Набор интегрированных инструментов для тестирования Web-приложений: e-Manager Enterprise – управление процессом тестирования; e-Tester – автоматизированное функ- циональное и регрессионное тестирование; e-Load – тестирование производительности. Empirix http://www.empirix.com Microsoft Web Application Stress Tool Тестирование производительности Web-сервера для среды Windows. Microsoft www.javausergroup.at/events/was.pdf PureLoad Web Инструмент тестирования Web-серверов для платформ Windows, Sun Solaris, Red Hat Linux. Minq Software www.minq.se/products/pureload/doc/html/web/users-guide/index.html LoadRunner Анализ производительности крупных распределенных ИС. Поддерживает тестирование Web-серверов, баз данных, компонентов COM, Java-Beans, виртуальных машин Java и т.д Mercury Interactive http://www.mercury.com/us/pro ducts QALoad Инструмент тестирования и анализа Web-серверов, FTP-серверов, серверов баз данных, а также распределенных систем, построенных на основе CORBA Compuware www.compuware.com/products/qacenter/qaload/detail.htm Литература к главе 7:
- 44 - Сортов А.А., Хорошилов А.В. Функциональное тестирование Web-приложений на основе технологии UniTesK.
- 45 - Общий оценочный лист тестирования usability web-сайта.
- 46 - Whittaker J.A. How to Break Web Software: Functional and Security Testing of Web Applications and Web Services, Addison-Wesley Professional (ISBN 0-321-36944-0), 2006.
- 47 - Nguyen H., Johnson R., Hackett M. Testing Applications on the Web (2nd Edition): Test Planning for Mobile and Internet-Based Systems ( ISBN 0-471-20100-6).
- 48 - Тестирование производительности Web-серверов.
- 49 - Мельбурн Д., Джорм Д. Тестирование web-приложений "на проникновение" (часть 1) (перевод Дмитрия Леонова)
- 50 - Стотлемайер Д. Тестирование Web-приложений //М.: «КУДИЦ-ОБРАЗ» (ISBN 5- 93378-064-2), 2003. - 240 с.
Программа дисциплины "Обеспечение качества и тестирование" для направления 231000.62 - "Программная инженерия" подготовки бакалавра, Ганичев Антон Александрович, Национальный исследовательский университ "Высшая школа экономии", Факультет Компьютерных наук, Департаметр Программной инженерии, 2014 год. 7/10 страниц:
Тема 9. Нефункциональные виды тестирования
- Нагрузочное тестирование
- Тестирование защищенности, безопасности, устойчивости
- Тестирование безопасности Web приложений
- Тестирование удобства использования
- Инструментальные средства поддержки
Литература по теме:
- “How to Break Web Software”, Mike Andrews/James A. Whittaker, 2006, I Addison-Wesley Publishing Co. 2006. ISBN: 0201796198, Chapter 2-7
- “Головоломки на PHP для Хакера” М.В. Кузнецов, И.В. Симдянов, СПб БХВ- Петербург, 2006. ISBN 5-94157-837-7 стр. 16-47
- “Software Testing” (2nd Edition) Ron Patton.Sams Publishing 2005 ; ISBN: 0-672-32798-8 стр. 176 - 188
24.02.2018