Как тестировщик, вы можете подумать, что «Разработка тестовых примеров достаточно сложная задача, тогда зачем беспокоиться о такой тривиальной вещи, как тестовые данные». Цель этого руководства - познакомить вас с тестовыми данными, их важностью и дать практические советы и рекомендации по быстрому созданию тестовых данных. Итак, приступим!
Что такое тестовые данные при тестировании программного обеспечения?
Тестовые данные при тестировании программного обеспечения - это входные данные, поступающие в программу во время выполнения теста. Он представляет данные, которые влияют или влияют на выполнение программного обеспечения во время тестирования. Данные тестирования используются как для положительного тестирования, чтобы убедиться, что функции дают ожидаемые результаты для заданных входных данных, так и для отрицательного тестирования, чтобы проверить способность программного обеспечения обрабатывать необычные, исключительные или неожиданные входные данные.
Плохо составленные данные тестирования могут не тестировать все возможные сценарии тестирования, что ухудшает качество программного обеспечения.
Что такое генерация тестовых данных? Почему тестовые данные должны создаваться перед выполнением теста?
Всем известно, что тестирование - это процесс, который производит и потребляет большие объемы данных. Данные, используемые при тестировании, описывают начальные условия для теста и представляют собой среду, через которую тестировщик влияет на программное обеспечение. Это важная часть большинства функциональных тестов.
В зависимости от вашей тестовой среды вам может потребоваться СОЗДАТЬ тестовые данные (в большинстве случаев) или, по крайней мере, определить подходящие тестовые данные для ваших тестовых случаев (если тестовые данные уже созданы).
Обычно тестовые данные создаются синхронно с тестовым примером, для которого они предназначены.
Могут быть созданы тестовые данные -
- Вручную
- Массовое копирование данных из производственной среды в среду тестирования
- Массовая копия тестовых данных из устаревших клиентских систем
- Инструменты автоматического создания тестовых данных
Обычно образцы данных должны быть сгенерированы до того, как вы начнете выполнение теста, потому что в противном случае трудно справиться с управлением тестовыми данными. Поскольку во многих тестовых средах создание тестовых данных требует нескольких предварительных шагов или очень трудоемких конфигураций тестовой среды. . Кроме того, если генерация тестовых данных выполняются в то время как вы находитесь в фазе выполнения теста вы можете превысить срок тестирования.
Ниже описаны несколько типов тестирования вместе с некоторыми предложениями относительно их потребностей в данных тестирования.
Тестовые данные для тестирования белого ящика
В тестировании «белого ящика» управление тестовыми данными основывается на непосредственном изучении тестируемого кода. Данные испытаний могут быть выбраны с учетом следующих факторов:
- Желательно прикрыть как можно больше веток; данные тестирования могут быть сгенерированы таким образом, что все ветви в исходном коде программы проверяются хотя бы один раз.
- Тестирование путей: все пути в исходном коде программы проверяются хотя бы один раз - можно подготовить тестовые данные, чтобы охватить как можно больше случаев.
- Отрицательное тестирование API:
- Данные тестирования могут содержать недопустимые типы параметров, используемые для вызова разных методов.
- Данные тестирования могут состоять из недопустимых комбинаций аргументов, которые используются для вызова методов программы.
Тестовые данные для тестирования производительности
Тестирование производительности - это тип тестирования, который выполняется для определения того, насколько быстро система реагирует на определенную рабочую нагрузку. Целью этого типа тестирования является не обнаружение ошибок, а устранение узких мест. Важным аспектом тестирования производительности является то, что набор используемых образцов данных должен быть очень близок к «реальным» или «живым» данным, которые используются в производственной среде. Возникает следующий вопрос: «Хорошо, тестировать с реальными данными - это хорошо, но как мне получить эти данные?» Ответ довольно прост: от людей, которые знают лучше всего - от клиентов . Они могут предоставить некоторые данные, которые у них уже есть, или, если у них нет существующего набора данных, они могут помочь вам, предоставив обратную связь о том, как могут выглядеть реальные данные. Если вы находитесь вВ рамках проекта технического обслуживания вы можете копировать данные из производственной среды на стенд тестирования. Во время копирования рекомендуется анонимизировать (зашифровывать) конфиденциальные данные клиентов, такие как номер социального страхования, номера кредитных карт, банковские реквизиты и т. Д.
Тестовые данные для тестирования безопасности
Тестирование безопасности - это процесс, который определяет, защищает ли информационная система данные от злонамеренных действий. Набор данных, который необходимо разработать для полного тестирования защиты программного обеспечения, должен охватывать следующие темы:
- Конфиденциальность: вся информация, предоставленная клиентами, хранится в строжайшей тайне и не передается третьим лицам. В качестве краткого примера, если приложение использует SSL, вы можете разработать набор тестовых данных, которые проверят, что шифрование выполнено правильно.
- Целостность: убедитесь, что информация, предоставленная системой, верна. Чтобы разработать подходящие тестовые данные, вы можете начать с глубокого изучения дизайна, кода, баз данных и файловых структур.
- Аутентификация: представляет процесс установления личности пользователя. Данные тестирования могут быть представлены в виде различных комбинаций имен пользователей и паролей, и их цель состоит в том, чтобы проверить, что только авторизованные люди могут получить доступ к программной системе.
- Авторизация: сообщает, какие права у конкретного пользователя. Данные тестирования могут содержать различную комбинацию пользователей, ролей и операций , чтобы проверить, что только пользователи с достаточными привилегиями могут выполнять определенную операцию.
Тестовые данные для тестирования черного ящика
В режиме «Тестирование черного ящика» код тестировщику не виден. Ваши функциональные тестовые примеры могут иметь тестовые данные, соответствующие следующим критериям:
- Нет данных : проверьте реакцию системы, если данные не отправлены.
- Действительные данные : проверьте реакцию системы при отправке действительных данных теста.
- Недействительные данные : проверьте реакцию системы при отправке недействительных тестовых данных.
- Недопустимый формат данных : проверьте реакцию системы, если тестовые данные имеют недопустимый формат.
- Набор данных граничных условий: данные испытаний соответствуют условиям граничных значений
- Набор данных раздела эквивалентности: тестовые данные, квалифицирующие ваши разделы эквивалентности.
- Набор данных таблицы решений: тестовые данные, квалифицирующие вашу стратегию тестирования таблицы решений
- Набор данных тестирования перехода между состояниями: тестовые данные, соответствующие вашей стратегии тестирования перехода состояний.
- Тестовые данные вариантов использования : тестовые данные синхронизированы с вашими вариантами использования.
Примечание . В зависимости от тестируемого программного приложения вы можете использовать некоторые или все описанные выше средства создания тестовых данных.
Инструменты автоматического создания тестовых данных
Для создания различных наборов данных вы можете использовать широкий спектр инструментов для автоматического создания тестовых данных. Ниже приведены несколько примеров таких инструментов:
Генератор тестовых данных DTM - это полностью настраиваемая утилита, которая генерирует данные, таблицы (представления, процедуры и т. Д.) Для тестирования базы данных (тестирование производительности, тестирование качества, нагрузочное тестирование или тестирование удобства использования).
Datatect - это генератор данных SQL от Banner Software, который генерирует различные реалистичные тестовые данные в плоских файлах ASCII или напрямую генерирует тестовые данные для СУБД, включая Oracle, Sybase, SQL Server и Informix.
Вывод
В заключение, хорошо продуманные данные тестирования позволяют выявить и исправить серьезные недостатки в функциональности. Выбор выбранных тестовых данных необходимо переоценивать на каждом этапе многоэтапного цикла разработки продукта. Так что всегда следите за этим.