Немного о тестировании

Тестирование является одним из основных этапов создания сайта

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

Тестирование выявляет проблемные места в разрабатываемом сайте, таким образом, улучшает качество сайта.

При подготовке к тестированию необходимо изучить и проанализировать доступные материалы по сайту:

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

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


    Виды по объекту тестирования:

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

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

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

    • Проверка расположения элементов, соответствие их позиций предоставленным макетам
    • Проверка оптимизации изображений и графики
    • Проверка кода на валидность
    • Проверка на кроссбраузерность (согласно браузерам в техническом задании)
    • Проверка корректности отображения на мобильном устройстве
  3. Usability тестирование

    Оценка удобства использования продукта на основании привлечения пользователей в качестве тестировщиков и анализа полученных результатов.

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

    Проверка соответствия уровня доступа пользователя уровню доступа, указанному в техническом задании.

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

    • Нагрузочное тестирование
    • Тестирование быстродействия

    Виды по признаку позитивности:

  1. Позитивное тестирование

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

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

  2. Негативное тестирование

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


    По знанию внутренностей системы:

  1. Метод «чёрного ящика»

    При тестировании методом «чёрного ящика» тестировщик не знает как устроен тестируемый бэк-энд сайта и не основывает идеи для тестирования на знании об устройстве и логике тестируемой части бэк-энда.

    Тестирование нацелено на проверку ожидаемого поведения сайта с точки зрения конечного пользователя.

  2. Метод «белого ящика»

    В отличие от метода «чёрного ящика», метод «белого ящика» основывает идеи для тестирования на знании об устройстве и логике тестируемой части бэк-энда. Таким образом, сценарии создаются с мыслью о том, чтобы протестировать определенную часть бэк-энда, а не паттерн поведения пользователя.

  3. Метод «серого ящика»

    Сочетает в себе методы тестирования «чёрного» и «белого ящика», что увеличивает покрытие возможных сценариев. Появляется большее количество тест-кейсов и сайт тестируется принципиально разными подходами с точки зрения пользователя и с точки зрения внутренностей бэк-энда.


    По степени подготовки к тестированию:

  1. Сценарное тестирование

    Характеризуется предопределенными процедурами тестирования по тест-кейсам.

  2. Исследовательское тестирование

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

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

    Основное правило заключается в следующем: исследовательское тестирование используется в тех случаях, когда выполнение следующего теста неочевидно, или когда вы хотите выйти за рамки очевидного.


    По степени изолированности тестируемых компонент:

  1. Модульное тестирование

    Тестирование минимально возможных компонент сайта (классов, функций и т.д.), имеет изолированный характер тестирования.

  2. Интеграционное тестирование

    Тестирование взаимодействия между двумя или более модулями системы.

  3. Системное тестирование

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


    По времени проведения:

  1. Бета-тестирование

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

  2. Альфа-тестирование

    Любое тестирование кода, которое проводится до передачи его пользователям.

    Разница в альфа- и бета-тестировании – это то, что в большинстве случаев альфа-тестирование исполняется внутренними ресурсами компании, а бета-тестирование – внешними.


    По степени автоматизации:

  1. Ручное тестирование

    Исполнение тест-кейсов без помощи каких-либо программ, автоматизирующих работу тестировщика.

  2. Автоматизированное тестирование

    Тестирование с использованием программных средств для выполнения тестов и проверки результатов тестирования.

  3. Смешанное /полуавтоматизированное тестирование

    Представляет собой сочетание ручного и автоматизированного подходов к тестированию.


    Систематизация багов

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

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