Хотелось бы немного поговорить на тему формирования тестовых данных для автотестов.
Дальше будут написаны довольно очевидные вещи насчет независимости тестов друг от друга, поэтому те, кто знаком с этой информацией, могут пропустить этот абзац :) Итак, ни для кого не секрет, что тесты у нас должны быть независимыми друг от друга. Рассмотрим простой пример. Предположим, у нас есть 2 теста - один проверяет добавление пользователя, другой редактирование информации о пользователе. В тесте на редактирование нельзя использовать в качестве тестовых данных (начальных данных) результат, полученный после теста на добавление пользователя. Допустим, если тест на добавление создает пользователя "flower", то в тесте на редактирование мы должны редактировать, например, свойства пользователя "fruit", а не "flower". Почему так? Во-первых, если вы решите в тесте на редактирование использовать пользователя "flower" в качестве тестовых данных, то вы не сможете выполнить этот тест отдельно, вам всегда придется сначала выполнять тест на добавление пользователя. Во-вторых, если добавление пользователя по каким-то причинам не будет работать, вы также не сможете выполнить тест на редактирование. Отсюда следует вывод, что для теста на редактирование вам нужны тестовые данные.
При архитектуре приложения "клиент-сервер-бд" ваши тестовые данные хранятся в базе данных. Я в своей работе использую MS SQL Server, поэтому речь будет дальше идти об этой СУБД. У вас может быть 2 основных способа формирования набора тестовых данных перед выполнением ваших тестов. Первый способ - это хранение бэкапа базы данных, заполненной тестовыми данными, и разворачивание бд из бэкапа перед началом выполнения ваших тестов. Второй способ - это хранение sql-скрипта, который будет заполнять чистую базу данных тестовыми данными перед началом выполнения ваших тестов.
Как создавать эти тестовые данные - это дело каждого. Вы можете создавать их через пользовательский интерфейс вашего приложения, через какие-то программные средства - все зависит от вашего приложения и доступных вам средств.
Хочу рассказать про один из известных мне способов создания sql-скрипта для заполнения чистой бд тестовыми данными с использованием MS Visual Studio 2010 (к сожалению, в 2012 и 2013 студии эта функциональность пока не реализована). Фактически все сводится к сравнению данных двух баз - чистой и заполненной данными, и формированию sql-скрипта.
Открываем окно "Server Explorer" и подключаем две базы данных - одну чистую, другую заполненную тестовыми данными.
Сравниваем данные двух баз:
И формируем sql-скрипт:
Вот и все, в редакторе у вас откроется sql-скрипт, который вы можете сохранить в файл и положить под source control.
Если вы пользуетесь какими-либо инструментами как для генерации, так и для формирования тестовых данных, можете смело писать в комментариях, интересно будет послушать.
Комментариев нет:
Отправить комментарий