Close

Глубокое тестирование

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

Фотография Дипака Пармара
Дипак Пармар

Приглашенный автор


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

В последние годы практика глубокого тестирования набирает обороты. Тестировщикам и менеджерам по контролю качества рекомендуется включать глубокое тестирование в комплексную стратегию покрытия тестами.

История глубокого тестирования


Глубокое тестирование существует уже на протяжении некоторого времени, но его часто называли «специальным тестированием». Термин «глубокое тестирование» был официально введен экспертом по тестированию ПО Сэмом Канером в его классической книге «Тестирование программного обеспечения».

Введение этой книги стало знаменитым: «Независимо от того, сколько вы создали сценариев тестирования различных типов, у вас рано или поздно закончатся запланированные тесты. Тестирование можно продолжать. Запускайте новые тесты, как только они придут вам в голову, и не тратьте много времени на их подготовку или объяснение. Доверьтесь интуиции».

Для чего нужно глубокое тестирование?


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

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

См. решение

Разработка и эксплуатация программного обеспечения с помощью Open DevOps

Связанные материалы

Автоматическое тестирование для DevOps

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

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

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

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

Благодаря интеграции с такими инструментами, как Jira и продукты для управления тестированием, команды могут напрямую экспортировать записанную документацию в сценарии тестирования.

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

Когда следует использовать глубокое тестирование?


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

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

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

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

Когда сказать «нет» глубокому тестированию?


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

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

Важность глубокого тестирования для CI/CD


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

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

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

Загрузите приложение для управления тестированием из коллекции управления тестированием в Atlassian Marketplace.

Deepak Parmar
Deepak Parmar

I’ve lived and breathed QA for the last decade now through my experience of working with leading QA services and product companies. I’m currently the head of Marketing and Partnerships at QMetry, bringing with me 20 years of experience in the IT industry, which has instilled in me the strong belief in improving customer delight through software quality.


Поделитесь этой статьей

Рекомендуемые статьи

Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.

Рисунок: DevOps

Сообщество DevOps

Рисунок: DevOps

Узнать больше в блоге

Рисунок: карта

Начните работу бесплатно

Подпишитесь на информационную рассылку по DevOps

Thank you for signing up

продолжение темы
Что такое покрытие кода?