Какие проблемы может выявить тестирование веб приложения
Тестировщик ПО, своей работой помогает разработчикам создавать наиболее качественный продукт соответствующий заявленным требованиям и целевому назначению. Интересно видеть результаты работы в которой ты принимаешь активное участие. Мне нравится помогать разработчикам выявлять ошибку путем повторением пользовательских действий и иными средствами отладки. (Веб консоль) и др.
Какие проблемы может выявить тестирование веб-приложения?
корректная работа системы - должна работать так, как это предусмотрено в требованиях: от разграничения прав доступа при авторизации до корректного выхода из системы.
Тестирование совместимости:
Проверка совместимости продукта со всеми последними версиями браузеров Chrome, Firefox, MS Edge, Safari и ОС Windows 7, 8 и 10
Получение статистических данных по времени отклика с сервера для наиболее важных операций;
Данные о максимально возможном числе пользователей (подключение), при котором система справляется с нагрузкой;
Информация об устойчивости системы и ее способности выдерживать постоянную нагрузку;
Предоставьте список наиболее частых проблем
1. Неполное отображение элементов дизайна веб-приложения в разных браузерах.
2. Неправильная авторизация пользователя
3. Неправильная работа приложения (присылает не те данные на определенные запросы).
4. Ошибки взаимодействия пользователя с базами данных (обращение при запросе).
5. Отсутствия синхронизации времени в разных часовых поясах - актуально при работе в РФ.
Сценарий 1: Клиент попросил подготовить новую версию web-сайта к следующему понедельнику. Вы понимаете, что в соответствии с оценкам разработчика вы не успеваете.
1) Получить описательную часть проекта от заказчика.
2) Запросить обоснованный расчет объема работ и временных затрат в соответствии с требованиями и оценками разработчика.
3) Заложить время необходимое на тестирование сайта.
4) Предоставить ответ о сроках реализации проекта для заказчика.
Сценарий 2: Клиент назначил демонстрацию проекта на завтра на 18:00. У вас уже назначена сдача другого проекта другому клиенту на это же время. Как быть?
1) Принять задачу и сообщить руководителю о наложении сроков по демонстрации проектов.
2) Полученное распоряжение сообщить клиенту.
3) В случае невозможности переназначения задачи другому исполнителю решить вопрос о переносе срока.
Описание проблем. Опишите метод воспроизведения проблемы и проверки результата.
Сценарий 1. Одна из лампочек в квартире перегорела
1) Проверить наличия напряжения в квартире (свет в других комнатах) работу электроприборов.
2) Проверить состояние автоматических выключателей в щитке электросчетчика.
3) В комнате где перегорела лампочка проверить механическую исправность выключателя.
4) Произвести замену лампочки на заведомо исправную. (в случае появления света неисправность локализована). В противном случае можно сделать вывод о неисправности плафона и электропроводки.
Сценарий 2. В web-приложении вы заметили ошибку, которую не смогли воспроизвести второй раз. Ваши действия?
изображен процесс перехода из точки А в точку Б. Сколько существует различных вариантов попадания в точку Б?
Ответ: 9 вариантов перехода.
* Три головы Змея Горыныча 3 часа смотрят в разные стороны. Первая голова 10 минут вперёд, затем 10 минут назад, потом 10 минут налево и 10 минут направо, снова 10 минут вперёд и так далее по циклу. Вторая голова 15 минут смотрит назад, затем 15 минут налево, потом 15 минут направо, снова назад и так далее по циклу. Третья голова 20 минут смотрит направо, 20 минут налево, 20 минут вперёд, снова направо и так далее по циклу. Сколько минут все три головы смотрели в одну сторону одновременно? Опишите решение.
1 час составляет 1 цикл: 1 голова Первая голова 10 минут вперёд, затем 10 минут назад, потом 10 минут налево и 10 минут направо, снова 10 минут вперед и 10 минут назад общее время 60 минут. Обозначу векторы:1,2,3,4 для 1 головы и 1,2,3 для второй и третьей голов.
По второй голове: 1 цикл по 15 минут один вектор 1,2,3,1
По третьей голове: 1 цикл по 20 минут 1,2,3
По трем циклам последовательность:
Таким образом с учета последовательности движения по сторонам описанным в задании просмотр всеми тремя головами в одном направлении совпадает при взгляде в левую сторону в течении 10 минут за один цикл. Получено путем графического отображения векторов на бумаге и просмотра совпадения направления (синхронизация по времени) за 1 цикл = 1 час (60 минут).
Ответ: За 3 часа общее время одновременно направления взгляда трех голов змея горыныча составляет 30 минут (смотрят в левую сторону).
В данный чек-лист вошли только общие характеристики. Естественно, в тестируемом приложении может быть функциональность, для которой нужно применять отдельный подход и создать отдельные сценарии. То же самое верно для производительности, удобства использования, безопасности и прочего тестирования, которое необходимо вашему приложению.
Чек-лист для тестирования WEB приложений состоит из шести разделов:
Функциональное тестирование
В данном пункте нам важно убедиться, что наш продукт соответствует нужной функциональной спецификации, упомянутой в документации по разработке.
Что проверяем?
- Пользователь с данными существует в системе.
- Пользователь с данными не существует в системе.
- Пользователь, заблокированный в системе, не может пройти повторную регистрацию.
- Пользователь существует в системе с введенным логином и паролем.
- Пользователь с введенным логином не существует в системе.
- Пользователь с введенным логином существует в системе, но пароль неверный.
- Пользователь с введенным логином и паролем существует в системе, но заблокирован модерацией (страница заморожена).
- Валидация полей ввода.
- Максимальная и минимальная длина.
- Диапазон допустимых символов, спецсимволы.
- Обязательность к заполнению.
- Убедитесь, что астериск (знак звездочки) отображается у всех обязательных полей.
- Убедитесь, что система не отображает окно ошибки при незаполненных необязательных полях.
- Протестируйте функциональность сортировки (по возрастанию, по убыванию, по новизне).
- Задать фильтры с выдачей.
- Задать фильтры, по которым нет выдачи.
- Фильтры по категориям/подкатегориям.
- Фильтры с радиусом поиска.
- Данные в выпадающих списках.
- Пользователь очистил кэш браузера
- Посмотрите, что будет, если пользователь удалит куки, находясь на сайте.
- Посмотрите, что будет, если пользователь удалит куки после посещения сайта.
- Ошибки в Console.
- Все стили загружаются.
- Картинки загружаются.
Интеграционное тестирование
Интеграционное тестирование проводится для того, чтобы убедиться, что ваше приложение совместимо со сторонними сервисами.
Что проверяем?
- Проверяем работу сторонних модулей: оплата, шаринг, карты.
- Реклама (просмотр, переходы по рекламе, аналитика).
- Метрики (переходы по страницам, показы элементов, клики).
Тестирование безопасности
Данная проверка нацелена на поиск недостатков и пробелов с точки зрения безопасности нашего приложения.
Что проверяем?
Тестирование локализации и глобализации
Тестирование интернационализации/глобализации WEB приложения включает тестирование приложения для различных местоположений, форматов дат, чисел и валют. Тестирование локализации включает тестирование WEB приложения с локализованными строками, изображениями и рабочими процессами для определенного региона.
Что проверяем?
- Дата и время. Например отображение времени, даты в соответствии с часовым поясом пользователя.
- Смена языка и проверка перевода всех элементов WEB приложения исходя из выбранного языка.
- Выбор номера телефона с разными кодами стран.
- Определение местоположения пользователя и отображение соответствующего пермишена ГЕО.
- Отображение соответствующих символов валюты.
Тестирование удобства использования
Тестирование удобства использования подразумевает проверку навигации, контента, другая информация для пользователя.
Что проверяем?
Кросс-платформенное тестирование
Кросс-платформенное тестирование проводится, чтобы убедиться, что ваше приложение совместимо с другими браузерами, различными оболочками, аппаратным обеспечением устройства.
Веб-приложения не могут разрабатываться без тестирования. Разный интерфейс, браузеры, безопасность и всесторонняя интеграция приложения – это лишь немногие из проблем, с которыми сталкиваются разработчики.
Тестирование играет ключевую роль в процессе разработки приложения, и разработчик должен быть всегда готов столкнуться с непредвиденными проблемами, связанными с веб-приложением и тестированием.
Тестирование веб-приложений позволит вам убедиться, что ваше программное обеспечение соответствует высшим стандартам качества.
Трудности во время разработки веб-приложения:
Интеграция
Чтобы выявить проблемы интерфейса, необходимо провести интеграционное тестирование. Более того, во время интерактивного тестирования можно узнать о разных проблемах, возникающих при взаимодействии вашего приложения и другого приложения. И разработчик может внести некоторые коррективы, если нужно. В частности, интеграционное тестирование связано с несоответствием инфраструктуры и среды, общей производительностью.
Функциональная совместимость
Обеспечение функциональности между системами – это всегда сложная задача. Кроме того, разные пользователи нашли решение – они используют различные операционные системы и браузеры. Потому очень важно все проверить для подтверждения точной информации.
Безопасность
Это один из важнейших видов тестирования, позволяющий разработчику убедиться что кибер-атаки можно найти и устранить. Тестирование безопасности может защитить ваше программное обеспечение от систематических рисков кибер-атак. Тестирование безопасности также ассоциируется с удалением вредоносных файлов, интеграцией/использованием различных процедур аутентификации.
Производительность
Приложение, которое работает медленно, не может претендовать на успех. Поскольку все больше и больше пользователей ожидают быстрой работы от приложений, производительность даже не обсуждается. Тестирование производительности выполняется, когда требования к программному обеспечению занижены, большие приложения проверяются на аппаратном обеспечении и т.д.
Удобство использования
Услуги тестирования удобства использования выполняются для тестирования приложения в разных браузерах, с использованием разного аппаратного обеспечения. Веб-приложения зависят от разных браузеров, потому они должны проверяться на удобство использования. Во время данного вида тестирования разработчики сталкиваются с проблемами интерактивности и масштабируемости.
Ключевые особенности и этапы тестирования WEB-приложений, обзор используемых технологий и применяемых решений.
Тестирование, приложения, WEB-приложения, виды и этапы тестирования
Введение
Тестирование WEB-приложений – это наблюдение за функционированием программы в искусственно созданных обстоятельствах, которое позволяет определить ее соответствие поставленным требованиям, например: производительность WEB-приложения, его степень защиты и комфорт использования для рядового пользователя.
Задачи тестирования WEB-приложений:
- Нахождение ошибок в работе программы и эффективное их устранение;
- Проверка приложения на соответствие конкретным требованиям;
- Проверка качества работы создателей приложения;
- Обработка информации, которая станет основой для принятия последующих действий.
Информация, полученная в процессе тестирования, позволяет выстроить последующую стратегию развития приложения. Важно понимать, что тестирование WEB-приложений является важным этапом, так как даже самые успешные программисты таких интернет-гигантов как Google, Sony и Facebook могут допустить ошибки, которые в последствии могут стать причиной уязвимости WEB-приложения и утечки информации его пользователей.
Особенности архитектуры WEB-приложения
Согласно статистике на 2016 год, которую проводил Международный союз электросвязи, в интернет-пространстве уже имеется свыше одного миллиарда приложений, и порядка 3,5 миллиарда людей со всей планеты пользуются разного рода интернет-приложениями.
WEB-приложение является клиент-серверным приложением, где в качестве клиента выступает браузер. При этом бизнес-логика приложения может выполняться как на стороне клиента, так и на стороне веб-сервера, обрабатывающего запросы пользователей IT-продукта.
Типичная архитектура веб-приложения выглядит следующим образом:
Веб-страницы состоят из HTML, CSS и Javascript-кода, а также могут включать в себя дополнительные элементы, такие как изображения или видео. Веб-страницы отображаются непосредственно на стороне пользователя.
Классическая теория воплощает в себе две «стороны» приложения, но в таком алгоритме активной «стороной» выступает третий элемент, такой как база данных. Базу данных не относят к веб-серверу, но большая часть веб-приложений не могут без нее полноценно функционировать, так как база данных содержит в себе динамическую информацию, такую как учетные и пользовательские данные.
Под термином «база данных» понимается информационная модель, которая имеет различный набор качеств, которые можно систематизировать. База данных функционирует за счет систем управления базами данных (сокращенно СУБД). Одними из наиболее известных СУБД являются MySQL, PostgreSQL и др.
Особенности тестирования WEB-приложений
Клиент является первым элементом архитектуры, где под клиентом понимается браузер, и здесь сразу возникает вопрос тестирования кроссбраузерности.
Кроссбраузерность — это тестирование правильности работы WEB-приложения в различных браузерах и на различных операционных системах.
Кроссбраузерное тестирование проводит проверку по таким пунктам:
- Функционал, который реализуется на «стороне» клиента;
- Проверка правильности отображения графических элементов web-приложения;
- Интерактивность веб-приложения и др.
В диагностике нуждаются в первую очередь популярные браузеры, такие как Google Chrome, однако в случае наличия требований поддержки очень старых браузеров, может потребоваться тестирование, например, в браузере Internet Explorer.
При тестировании веб-приложения отдельное внимание нужно уделить валидаторам верстки. Для этого не требуется особых знаний, так как оценка соответствия качества верстки современным стандартам может выполняться за счет автоматических средств.
Следующая особенность веб-приложения – это формы заполнения, и здесь нужно выделить такие элементы, как:
Виды и этапы тестирования web-приложений
Виды и этапы тестирования WEB-приложений определяются исходя из стратегии тестирования. Это делается для того, чтобы определить какие ресурсы нужно привлечь в настоящий момент, чтобы только созданная программа была эффективно запущена в работу и функционировала без сбоев.
Выделяются такие виды тестирования программ, как:
- Тестирование функционала;
- Оценка удобства использования веб-приложения;
- Оценка интерфейса;
- Оценка производительности;
- Оценка безопасности.
При функциональном тестировании определяют работает ли каждая функция WEB-приложения согласно спецификации требования. Сюда входит проверка работы ссылок, форм пользователя, проверка кода HTML и CSS, тестирование workflow и др.
При тестировании удобства пользования определяют характеристики взаимодействия пользователя с web-приложением, чтобы обнаружить недостатки и эффективно их устранить. При такой диагностике обращают внимание на простоту обучения, навигацию, общий вид и др.
При тестировании интерфейса пользователя оценку проходит графический интерфейс WEB-приложения. В ходе диагностики оценивают, внешний вид интерфейса, его удобство и простоту использования. Важно отметить, что на этом этапе оценивают совместимость веб-приложения с различными браузерами и версиями браузеров.
При тестировании производительности проводится проверка веб-приложения на способность выдерживать большие нагрузки. Здесь нужно отметить, что так называемое стресс-тестирование будет определять пределы производительности веб-приложения вплоть до полного отказа работы.
Нагрузочное тестирование проводится для того, чтобы определить, сколько пользователей могут одновременно обращаться к одной странице без потери качества их обслуживания.
Еще один важный этап тестирования веб-приложений – это диагностика безопасности, которая позволяет оценить степень защиты приложения от разного рода уязвимостей, атак и других рисков, как правило, приводящих к большим потерям.
Задача диагностики безопасности – это обнаружение угроз, которые разработчики должны устранить еще на этапе запуска веб-приложения в работу.
Виды и этапы тестирования веб-приложения должны быть отражены в документе, в котором будут перечислены все ошибки. На основе данного документа разработчики должны провести полное устранение ошибок и выполнить повторное тестирование, чтобы убедиться в том, что все риски и ошибки действительно устранены.
Если говорить о функциональном тестировании WEB-приложений, то возможна дополнительная инструментальная поддержка, которая будет включать следующие шаги:
- Разработка модели WEB-приложения;
- Разработка тестового сценария;
- Анализ результатов.
Данный подход позволяет обнаружить и перечислить классические уязвимости, такие как генерация на странице скрипта (XSS), также уязвимости XSRF, PHP, SQL и др. Среди уязвимостей особенное внимание уделяют такой как несанкционированный доступ к учетной записи и переполнение буфера. Рекомендованные к использованию чит-листы – это XSS Filter, Evasion Cheat Sheet, MySQL SQL Injection Cheat Sheet.
Аналитики и разработчики должны еще до начала диагностики приложения составить план, в котором будут следующие пункты тестирования:
- Цель диагностики;
- Вид диагностики;
- Определение специфики и ЦА приложения;
- Перечень операционных систем и браузеров, которые будут задействованы в ходе диагностики.
Обзор технологий для тестирования WEB-приложений
Программное обеспечение становится всем более сложным, при этом оно должно корректно работать, и без его тестирования обойтись невозможно. Важно понимать, что изолировать код, чтобы исправлять ошибки сейчас стало все сложнее.
Сегодня как эффективный вариант диагностики используют модульное тестирование, которое снижает риск возникновения ошибок, уменьшает их, и благодаря его использованию разработчики могут получить документацию для тестируемых кодов. Наравне с модульным тестированием используется регрессия и автоматизация UI. Примеры популярных библиотек для тестирования: QUnit, JSUnit, YUI Test, xUnit.
Модульный тест может проверить лишь одну функцию за один тест, при этом используя xUnit вы вначале задаете условия, затем руководствуетесь в процессе тестирования этими условиями, и в финале проверяете вывод диагностики.
Еще одна технология – это QUnit (инфраструктура JavaScript-кода). Ее можно считать облегченной версией тестирования, которая проста и удобна, с ее помощью можно тестировать любой код.
Как было указано выше, тестирование UI с помощью CUIT может выполняться в автоматизированном режиме, в нем возможно записывать новые тесты и редактировать текущие.
Приведённые выше технологии юнит-тестирования можно использовать вместе с Selenium или аналогичными технологиями, симулирующими реальное поведение пользователя в браузере, что позволяет покрыть большую часть встречающихся на практике случаев и выявить большинство потенциальных проблем.
Прогнозы на будущее (тенденции, новые методы и технологии применения)
Рассматривая современные тенденции, первое, на что следует обратить внимание это развитие веб-браузеров. В настоящее время на рынке преобладают браузеры, основанные на Chromium, и единственным конкурентом с альтернативным движком является браузер Firefox. Учитывая сложность современных веб-стандартов, маловероятно, что в ближайшее время будут появляться новые браузерные движки, поэтому можно предположить, что тестирование клиентской части будет сведено к двум упомянутым выше браузерам.
Можно предположить, что в будущем особую популярность обретут облачные SaaS решения для проведения тестирования, которые будут позволять удобным образом проверять наиболее популярные случаи – причём, возможно, даже без необходимости привлечения специалиста. Тем не менее, с большой долей уверенности можно сказать, что существующие инструменты будут актуальны ещё продолжительное время, и, вероятнее всего, продолжат совершенствоваться разработчиками.
Заключение
Подводя итог, для тестирования современных веб-сайтов и веб-приложений имеется существенное количество технологий и подходов, что, при должном их использовании позволяет выявить большую часть ошибок и потенциальных проблем, позволяя существенно повысить качество конечного продукта или услуги, что, в свою очередь, может существенно отразиться на состоянии бизнеса – увеличить лояльность клиентов, повысить метрики удержания и, в конечном счёте, благополучно сказаться как на прибыли компании, так и на удобстве пользователей. При этом следует принимать во внимание, что тестирование имеет собственные издержки – в частности, время специалистов, затрачиваемое на покрытие тестами необходимого функционала.
Читайте также: