Москва
Кемерово

Зачем тестировать веб-продукты

сложность:  

Содержание

Что такое тестирование сервиса

Тестирование — это: 

  • поиск несоответствий между фактическим и ожидаемым поведением ПО;
  • проверка качества системы, которая проводится на ограниченном наборе тестов.

Веб-продукт проверяют на:

  • верификацию — подтверждение того, что требования выполнены верно. Мы должны ответить на вопрос: «Делаем ли мы продукт правильно?».
  • валидацию — соответствует ли ПО своему прямому назначению. Здесь спрашиваем себя «Делаем ли мы правильный продукт?».
Тестирование информационных систем

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

Если говорить просто, тестирование сравнивает изначальные условия с фактическим результатом. А также подсвечивает моменты, из-за которых мы можем отклониться от ТЗ и внести корректировки, если это улучшит продукт. 

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

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

С какой целью проводится тестирование сайта

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

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

Тестирование веб приложений

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

Команда QA-отдела выяснила, что 1C не справляется с ожидаемым потоком аудитории — и дала рекомендации по увеличению мощностей и настройке ПО.

Пример тестирования сайта

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

Выявление багов

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

К примеру, может выясниться что кнопка «Оплатить» перестала отправлять запрос на backend или интеграция по API с платежным сервисом работает некорректно. Значит, клиенты, находящиеся на последнем шаге покупки, не смогут совершить действие и заказ сорвется.

Обнаружение бага предотвратит потерю клиентов и обеспечит бесперебойную работу приложения

Обеспечение безопасности

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

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

Улучшение пользовательского опыта

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

Соответствие ожиданиям

На выходе должен получиться продукт, придуманный на старте — со всеми необходимыми функциями, которые работают корректно. Тестирование помогает сравнить план с фактом и оценить соответствие исходным требованиям. 

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

Влад Гусельников — руководитель QA-отдела

Влад Гусельников

Руководитель QA-отдела

Digital-агентство Атвинта

Семь принципов тестирования

Рассмотрим ключевые принципы проверки веб-продукта:

  • Тестирование показывает наличие дефектов, но не их отсутствие. Диагностика сокращает количество ошибок, скрытых в ПО, но обнаружение и устранение проблем не гарантирует, что продукт будет на 100% безошибочным. 
  • Исчерпывающее тестирование — невозможно. Нельзя учесть все сценарии, способы и комбинации тестовых окружений в одном продукте.
  • Раннее тестирование экономит время и деньги. Чем раньше начнется проверка, тем дешевле обойдется исправление багов.
  • Скопление ошибок. Часто ошибки не распределяются равномерно, они сконцентрированы в небольшом количестве модулей. В данном случае работает принцип Парето — 80% всех дефектов находятся в 20% модулей. 
  • Парадокс пестицида. Если запускать одни и те же тесты по кругу, они перестают находить новые ошибки. Нужно пересматривать сценарии и включать разные испытания системы, желательно с привлечением других QA-специалистов. 
  • Диагностика зависит от контекста. Например, проверка сайта e-commerce отличается от исследования мобильного приложения. Для каждого типа продукта применяют разные подходы и методологии.
  • Заблуждение об отсутствии ошибок. Поиск и устранение дефектов не помогут, если созданная система непригодна для использования и не отвечает потребностям и требованиям пользователя.

Разница в тестировании сайта, приложения, интерфейса и сервиса

Рассмотрим отличия в подходах к тестированию веб-продуктов в Атвинте.

Виды тестирования информационных систем

Тестирование контентных сайтов и проектов на конструкторах

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

Как тестировать сайт?

Тестирование мобильных приложений

Тестируя мобильные приложения мы углубляемся в исследование интерфейса, проверяем совместимость с различными устройствами и операционными системами — Android и iOS. Также изучаем функциональность, уровень безопасности и оцениваем производительность ресурсов.

Особенности тестирования мобильных приложений

Тестирование интерфейса сайта

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

Тестирование веб сайта

Тестирование личного кабинета

В работе с личными кабинетами мы смотрим на безопасность, юзабилити и функциональность. Тестируем возможности авторизации, восстановления пароля и корректное взаимодействие с персональными данными пользователей.

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

Тестирование интернет-магазина

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

Тестирование безопасности сайта

Тестирование сервисов

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

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

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

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

На платформе уже более 20 000 пользователей, внутри нее запущено 250 курсов. Наш продукт помог заказчику расширить предметную линейку в 4 раза. SMITUP — одна из лучших образовательных площадок в России, на конкурсе Tagline Awards она получила бронзу в номинации «Лучший личный кабинет».

План тестирования сайта

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

Наш QA-отдел в Атвинте использует несколько видов и методов тестирования для разных веб-продуктов. На каждом этапе разработки специалисты проводят исследования:

  • На старте анализируем требования, изучаем логичность системы и ищем несоответствия.
  • После проектирования тестируем пользовательские сценарии, прототипы и макеты, архитектуру базы данных.
  • Создаем тест-план и готовим тестовую документацию.
  • Затем проверяем функциональные, нефункциональные требования и верстку.
  • После исправления багов проводим повторную диагностику — тестирование изменений. Мы проверяем, что внесенные правки действительно решили проблему.
  • В конце пишем отчет по итогам тестирования.

Далее подробно рассмотрим виды и методы диагностики.

Функциональное тестирование сайта

Направлен на проверку корректности работы функций и возможностей веб-продукта — делает ли приложение то, что вы запланировали на старте. Наши QA-специалисты тестируют:

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

Мы проводим позитивное и негативное тестирование. В первом случае оцениваем сценарий, который был прописан в плане — как ресурс должен работать. Во втором — проверяем различные ситуации, когда пользователь может пойти другим путем или попытаться сломать систему.

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

Пример функционального тестирования сайта

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

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

Нефункциональное тестирование сайта

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

Производительность (Performance Testing)

Нужен для определения и устранения узких мест производительности в ПО. Мы запускаем следующие тесты:

  • Нагрузочное тестирование (Load Testing) — моделирование ситуаций во время плановой, повышенной нагрузки в течении определенного времени. Используется для определения узких мест в системе.
  • Стресс-тестирование (Stress Testing) — оценка поведения системы в стрессовых ситуациях и быстроты ее восстановления. Используется для определения пиковых нагрузок, которые способна выдержать система.
  • Стабильность или надежность (Stability or Reliability Testing) — проверка устойчивости ПО в течение длительного времени к сбоям. 

Юзабилити (Usability testing)

Оценивает удобство взаимодействия с веб-продуктом и пользовательский опыт. Параметры тестирования юзабилити:

  • Понимание функционала приложения или сайта.
  • Доступность для каждого посетителя.
  • Быстрый отклик ПО.
  • Дизайн не создает негативных впечатлений и не мешает работе с функционалом.
  • Простая навигация и понятный онбординг. Отсутствуют длинные шаги для совершения целевых действий — легко найти иконку корзины и номер телефона компании, разобраться в разделах приложения.
  • Обработка ошибок. Если какая-то страница отсутствует или человек введет некорректный запрос — ПО покажет сообщение о проблеме и предложит пользователю выход из ситуации.
Юзабилити тестирование сайта

Безопасность (Security and Access Control Testing)

Исследует устойчивость к различным видам атак и обеспечивает защиту конфиденциальной информации от утечки. Чаще используется для веб-продуктов, в которых хранятся личные данные клиентов и документы компании. 

Наша команда из QA-отдела проверяет уязвимые места, которые могут повлиять на безопасность ПО и репутацию бренда.

  • Исключение SQL-инъекций. Один из способов взлома сайта, когда в запрос внедряют SQL-код и получают доступ к данным.
  • По истечении сеанса пользователю нужно повторно авторизоваться в системе.
  • Обозначение ролей с индивидуальным набором прав для всех пользователей. Это особенно актуально для корпоративных порталов, доступных как для клиентов, так и для сотрудников компании.
  • Проверка открытых конфиденциальных данных.
  • Тест сторонних интеграций и уязвимых файлов.
  • Поиск лазеек в функционале и другое.

Методы проверки

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

Конечно, мы основываемся на базовых методах тестирования ПО.

Методы тестирования информационных систем

Черный ящик

Black box testing — подход, в котором у тестировщика нет доступа к исходному коду веб-продукта и его внутренней архитектуре. Для достижения целей мы фокусируемся на внешней проверке входящих данных, получении ответов от приложения и сравнении фактических результатов с ожидаемыми, а также делаем упор на улучшение UX и UI для конечного потребителя. 

Белый ящик

White box testing же представляет собой открытую систему с доступом к исходному коду и структуре. Основной упор делается на улучшение внутреннего качества веб-продукта. Этот метод позволяет провести более детальные тесты и обнаружить скрытые баги и недочеты в логике работы ресурса.

Серый ящик

Grey box testing — смешанный подход, который сочетает в себе элементы черного и белого ящиков. QA-специалист не имеет прямого доступа к коду, но у него есть описание алгоритма, архитектуры, API, что позволяет разрабатывать более целенаправленные тесты.

Инструменты тестирования

Наш QA-отдел обладает всем необходимым инструментарием для тестирования сайтов, приложений и сервисов. 

Инструменты для тестирования сайта

Снифферы

Применяем анализаторы трафика — такие, как Charles Proxy, Proxyman и Fiddler Classic — для проверки http-запросов, кодов ответов и реакции ресурса. На практике это означает, что мы изучаем запросы и отслеживаем ответы сервера.

Диагностика API

Для проверки API мы используем Postman и Insomnia. Эти инструменты позволяют эффективно оценить взаимодействие различных компонентов и сервисов между собой.

Тестирование UX/UI

Изучаем пользовательский опыт и дизайн с использованием Figma и Pixel Perfect. Они помогают спрогнозировать, насколько удобным и приятным будет взаимодействие с продуктом для конечного пользователя.

Логи и мониторинг

Для анализа логов и информации применяем Devtools, Kibana и Sentry. Это позволяет выявлять и отслеживать возможные проблемы и неисправности в системе.

Эмуляторы устройств

Для анализа мобильных приложений используем эмуляторы — такие, как Android Studio и Xcode. С их помощью проверяется работа ресурсов на различных устройствах и операционных системах.

Проверка производительности

Запуск диагностики производительности осуществляется через JMeter. Мы оцениваем, насколько эффективно и быстро работает веб-продукт при различных нагрузках.

Тестирование достоверности данных

Для проверки корректности данных мы используем инструменты для работы с СУБД: SQL, DataGrip, Beekeeper Studio и phpMyAdmin. Мы должны убедиться, что данные хранятся и обрабатываются корректно.

Этапы тестирования веб-проектов: сайт, приложение, сервис

Чек-лист для тестирования сайта

Анализ требований и матрица тестового покрытия

На старте работы над проектом мы проводим анализ требований, выясняем пожелания заказчика и цели веб-продукта. Создаем матрицу тестового покрытия, где указываем, какие функции и элементы будем проверять. Записываем функциональные и нефункциональные критерии. 

Каждый тест автоматически заносится в общие результаты. Это позволяет нам оценить, на сколько процентов выполнена работа: какое количество элементов было проверено и сколько багов обнаружено.

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

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

Тестовая документация

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

План тестирования

Тест-план — это документ, в котором описан объем работ по диагностике. При подготовке тест-плана мы:

  • учитываем требования;
  • описываем стратегию, цели, результаты и ресурсы для тестирования;
  • обращаем внимание на детали проекта; 
  • записываем критерии входа и выхода — запуск и завершение тестов;
  • указываем компоненты, на которые будем обращать внимание;
  • кто будет в команде.

После этого приступаем к разработке тестовой документации. 

Тест-кейс 

Test Case — это алгоритмы действий для проверки работы программы: кнопки, поля ввода, формы. 

Мы управляем тестами и анализируем результаты в Test Management System (TMS). Внутри прописываем, что нужно сделать на подготовительном этапе, как провести проверку и что ожидать на выходе. Если факт не соответствует плану — анализируем ситуацию и составляем отчет об ошибке (баг-репорт). 

Тестирование сайтов и приложений

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

Пример тестирования веб сайта

Чек-лист 

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

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

Чек-лист тестирования веб приложений

Юзкейс

Use case — это сценарии взаимодействия пользователя с системой и ее ответные действия. Например, пользователь заполняет данные, а приложение сохраняет их. 

Юзкейсы делают в виде текстовых документов и блок-схем. Последний вариант более понятен и удобен для структурирования сложных сценариев. 

Отчет о тестировании сайта

Процесс тестирования

Этапы тестирования зависят от выбранной методологии разработки ПО, в основном это:

  • Водопадная модель (Waterfall). QA-специалист начинает анализировать уже разработанный продукт.
  • Гибкая модель (Agile, Scrum, Kanban). QA-специалист совместно с командой работает по спринтам (короткие циклы для решения задач). 

Мы проверяем позитивные и негативные сценарии, стремясь найти максимальное количество дефектов и зафиксировать ошибки в баг-репорте. Оформление документа зависит от проекта, но есть обязательные поля:

  • Заголовок — суть проблемы.
  • Шаги воспроизведения — что сделали, чтобы найти баг.
  • Ожидаемый результат — какой итог хотели увидеть на самом деле.
  • Фактический результат — что видим, когда случилась ошибка.
  • Окружение — браузер, ОС, тестовая среда.

Отладка кода

Чтобы правильно понять и описать дефекты, каждому из них мы присваиваем определенные статусы. Это называется жизненным циклом бага (Bug Life Cycle) — стадии с начала существования ошибки до ее полного разрешения.

QA-отдел обнаруживает дефект, заводит его в баг-трекер. Затем указывают статус ошибки — «Новый», назначают программиста и в ходе проверки прописывают комментарии.

  • В работе — ошибка находится в процессе исправления.
  • Дубликат (Duplicate) — баг встречается дважды или существует два и более дефекта из-за появления одной проблемы.
  • Отклонен (Rejected) — с точки зрения разработчика ошибка не оказывает влияния на систему и не требует дальнейшего рассмотрения.
  • Отсрочен (Deferred) — баг исправят в последующих версиях системы, потому что у него низкий приоритет или он не приведет к значительным сбоям на данном этапе разработки.
  • Не является багом (Not a bug). Например, изменения в дизайне сайта по желанию заказчика.
  • Исправлен (Fixed) — в код внесли изменения и устранили дефект.
Жизненный цикл бага

Разработчик возвращает работу для ретеста со статусом «Исправлен». Если проблема устранена, специалисты оставляют соответствующие комментарии: «Проверен» (Verified) и «Закрыт» (Closed).

Если дефект появляется снова, задачу переоткрывают (Reopen) — и цикл проверки повторяется.

Отчетность

Отчетность включает следующие материалы:

  • Документ с результатами, в котором ссылаемся на критерии входа и выхода и указываем процент выполнения. 
  • Матрица трассировки требований. В ней прописываем задачи, чтобы посмотреть, все ли тесты были выполнены.
  • Отчеты из Test Management System. Дашборд, на котором видно, какой процент тестов был выполнен, что не удалось проверить и сколько времени ушло на диагностику.
Как тестировать веб сайт?

Мы всегда подтверждаем актуальность системы — на любом этапе тестирования можно увидеть ее готовность, количество ошибок и классификацию багов. 

Дефекты оцениваем по приоритетам:

  • Высокий — сильное влияние на процессы, требуется срочно внести правки.
  • Средний — ошибки, которые нужно решить на следующем этапе.
  • Низкий — мелкие недочеты.
  • Блокирующий, который мешает дальнейшей диагностике.

Ошибки

Перечислим типичные дефекты, которые встречаются практически во всех системах:

  • Логика. Наша команда находит недочеты в требованиях, что помогает улучшить процесс разработки и снизить количество багов в коде. Мы также обращаем внимание на логические ошибки на этапе проектирования, чтобы убедиться, что сайт будет правильно работать, даже если посетитель использует его нестандартным образом.
  • Верстка и адаптивность. Когда клиент приходит с готовой разработкой, мы часто сталкиваемся с проблемой: страница корректно отображается на компьютере, но на смартфоне адаптивность не работает. Мы проводим тщательную проверку, чтобы сайт выглядел хорошо на различных устройствах.
  • Кроссплатформенность. Возникают ситуации, когда сайт в одном браузере выглядит, как и было задумано, а в другом что-то идет не так: съезжает контент или не работает анимация. Мы стараемся обнаружить и устранить эти различия.

Подведем итоги

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

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

Оцените пост:
2
Не очень

Читайте также

Читать весь блог
Модели оплаты за IT-разработку

Retainer, Fixed Price, Time and Materials: как выбрать модель оплаты за разработку

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

08 февраля 2024
Примеры CMS

Какие бывают CMS: обзор 11 систем

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

16 февраля 2024