Немного о тестировании
Тестирование является одним из основных этапов создания сайта
Тестирование – это процесс проверки соответствия сайта всем заявленным требованиям и поиска багов. Баг – отклонение фактического результата от ожидаемого.
Тестирование выявляет проблемные места в разрабатываемом сайте, таким образом, улучшает качество сайта.
При подготовке к тестированию необходимо изучить и проанализировать доступные материалы по сайту:
- провести анализ функционала по техническому заданию, пособий, материалов, предназначенных для конечного пользователя
- изучить конечные макеты сайта
- составить план тестирования
В разных источниках по-разному классифицируют виды тестирования веб-сайтов, мы воспользуемся распространенной классификацией.
-
Функциональное тестирование
Наиболее продолжительный этап, заключается в проверке всего описанного в техническом задании функционала сайта:
- Проверка работы всех обязательных функций сайта
- Тестирование работоспособности пользовательских форм на сайте (например, обратная связь, добавление комментария в блог)
- Проверка работы поиска (включая релевантность результатов)
- Проверка гиперссылок, поиск нерабочих ссылок
- Проверка загрузки файлов на сервер
- Проверка работоспособности счётчиков, установленных на страницах сайта
- Просмотр на соответствие содержимого страниц сайта исходному контенту, предоставленному заказчиком
-
Тестирование верстки
- Проверка расположения элементов, соответствие их позиций предоставленным макетам
- Проверка оптимизации изображений и графики
- Проверка кода на валидность
- Проверка на кроссбраузерность (согласно браузерам в техническом задании)
- Проверка корректности отображения на мобильном устройстве
-
Usability тестирование
Оценка удобства использования продукта на основании привлечения пользователей в качестве тестировщиков и анализа полученных результатов.
-
Тестирование безопасности
Проверка соответствия уровня доступа пользователя уровню доступа, указанному в техническом задании.
-
Тестирование производительности
- Нагрузочное тестирование
- Тестирование быстродействия
Виды по объекту тестирования:
-
Позитивное тестирование
Заключается в проверке корректных пользовательских сценариев. Позитивное тестирование направлено на то, чтобы убедиться, что основной функционал сайта работает. Все сценарии использования сайта должны быть выполнимы и приводить к ожидаемому результату, а не к ошибкам.
Главным источником ожидаемого результата использования является техническое задание. Также источниками ожидаемых результатов являются: жизненный опыт тестировщика, здравый смысл, общение с коллегами, устоявшиеся стандарты и др.
-
Негативное тестирование
Заключается в проверке негативных сценариев: ситуаций, связанных с потенциальной ошибкой пользователя или потенциальным дефектом в системе.
Виды по признаку позитивности:
-
Метод «чёрного ящика»
При тестировании методом «чёрного ящика» тестировщик не знает как устроен тестируемый бэк-энд сайта и не основывает идеи для тестирования на знании об устройстве и логике тестируемой части бэк-энда.
Тестирование нацелено на проверку ожидаемого поведения сайта с точки зрения конечного пользователя.
-
Метод «белого ящика»
В отличие от метода «чёрного ящика», метод «белого ящика» основывает идеи для тестирования на знании об устройстве и логике тестируемой части бэк-энда. Таким образом, сценарии создаются с мыслью о том, чтобы протестировать определенную часть бэк-энда, а не паттерн поведения пользователя.
-
Метод «серого ящика»
Сочетает в себе методы тестирования «чёрного» и «белого ящика», что увеличивает покрытие возможных сценариев. Появляется большее количество тест-кейсов и сайт тестируется принципиально разными подходами с точки зрения пользователя и с точки зрения внутренностей бэк-энда.
По знанию внутренностей системы:
-
Сценарное тестирование
Характеризуется предопределенными процедурами тестирования по тест-кейсам.
-
Исследовательское тестирование
Предполагает разработку и выполнение тестов в одно и то же время. Тесты не определены заранее и не выполняются в точном соответствии с планом. Если каждый следующий тест, который выполняет тестировщик, выбирается по результатам предыдущего теста, это означает, что используется исследовательское тестирование. Тестировщик начинает заниматься поисками и исследованиями, когда не может сказать, какие тесты должны быть выполнены, или когда еще не имел возможности эти тесты создать, то есть мысль об их написании даже не приходила ему в голову.
Исследовательское тестирование особенно полезно в сложных ситуациях тестирования, когда мало что известно о продукте, или как часть подготовки набора сценариев тестов.
Основное правило заключается в следующем: исследовательское тестирование используется в тех случаях, когда выполнение следующего теста неочевидно, или когда вы хотите выйти за рамки очевидного.
По степени подготовки к тестированию:
-
Модульное тестирование
Тестирование минимально возможных компонент сайта (классов, функций и т.д.), имеет изолированный характер тестирования.
-
Интеграционное тестирование
Тестирование взаимодействия между двумя или более модулями системы.
-
Системное тестирование
Проверка поведения всей системы в целом.
По степени изолированности тестируемых компонент:
-
Бета-тестирование
Перед тем как выпускается основной "официальный" релиз, предварительная версия системы предоставляется ограниченной группе пользователей, которые его тестируют перед окончательным релизом продукта. Эти пользователи должны являться представителями целевой аудитории.
-
Альфа-тестирование
Любое тестирование кода, которое проводится до передачи его пользователям.
Разница в альфа- и бета-тестировании – это то, что в большинстве случаев альфа-тестирование исполняется внутренними ресурсами компании, а бета-тестирование – внешними.
По времени проведения:
-
Ручное тестирование
Исполнение тест-кейсов без помощи каких-либо программ, автоматизирующих работу тестировщика.
-
Автоматизированное тестирование
Тестирование с использованием программных средств для выполнения тестов и проверки результатов тестирования.
-
Смешанное /полуавтоматизированное тестирование
Представляет собой сочетание ручного и автоматизированного подходов к тестированию.
По степени автоматизации:
Систематизация багов
Найденные баги тестировщик заносит в систему отслеживания ошибок, с указанием стадии жизненного цикла бага, идентификационного номера, описания, версии продукта, в которой обнаружен баг и др.
Систематизировать баги по проектам, по категориям. Для систематизации багов используются системы отслеживания ошибок, приложения для управления проектами, включающие в себя отслеживание ошибок.