данные для тестов
#1
Отправлено 06 сентября 2011 - 05:34
помогите разобраться. у меня есть 3 теста: по подразделениям, по пользователям и по задачам для пользователей.
все эти тесты заносят данные в систему и потом в конце удаляют их.
так вот проблема в том, что например, для создания задач сначала нужно иметь в системе каких то пользователей, а для создания этих пользователей нужно иметь подразделения.
получается такая вот последовательность... а дальше тестов будет больше, и данных для каждого из них нужно будет все больше и больше.
в интернете понятных статей о том, откуда взять нужные данные для теста, я к сожалению не нашла....
может мне кто нибудь объяснить, как поступать в такой ситуации? или нужно запускать последовательность тестов?
#2
Отправлено 06 сентября 2011 - 06:05
Потом легко можно будет дергать клиентов из такой базы по критериям типа подразделения или задач, которые они могут выполнять
#3
Отправлено 06 сентября 2011 - 06:12
#4
Отправлено 06 сентября 2011 - 06:39
Нужно видимо эти данные придумать, уточните у своего лида.
да я тут одна к сожалению. меня посадили и сказали: пиши тесты)) я понятия не имела вообще как это делается. разобралась вроде, а вот с частью данных проблемы. то что эти данные придумать надо - это точно, потому что тестирую на тестовой площадке (тут можно что хочешь придумывать). проблема в том, как перед началом теста нужные данные внести в систему, чтобы их использовать?
Я, например, храню в БД список когда-либо зарегистрированных клиентов
у меня по этому поводу условие, надо чтоб тест после себя все удалял, чтоб типа не засорять базу и саму систему.
я сначала думала запускать цепочку тестов по очереди, сначала создать подразделения, потом пользователей, потом задачи, а потом все это удалить. но когда представила какой длины может быть эта цепочка дальше... ну и вообще, было бы лучше если все эти тесты независимо друг от друга выполнялись.
меня вобщем-то интересует такой вопрос: можно ли как-нибудь перед началом теста занести необходимые данные в систему, а в конце теста удалить их? может есть для этого какие нибудь "инструменты"?
я использую связку selenium rc + phpUnit.
#5
Отправлено 06 сентября 2011 - 08:31
Можно ли удалять не сразу, а, скажем, раз в неделю чистить базу или заливать туда дамп со свежими данными с продакшена?
Возможность просто вставить какие-то данные в базу сильно зависит от сложности этой базы и ее степени интегрированности с приложением –– как правило, в банковских приложениях просто вставить в базу еще одного пользователя достаточно тяжело, потому что нельзя просто добавить запись в определенную табличку, она должна быть связана с другими табличками, а записи в других табличках с еще табличками и т.д. При этом, если пользователя заводят из приложения, то там может выполняться код, который добавит еще какие-нибудь данные, обновит другие данные и т.д. - всю эту логику невозможно обычно в тестах повторить (а главное, что не нужно).
С другой стороны, добавлять все нужные данные через интерфейс может быть очень долго и ненадежно: ошибка в одном месте лишит вас возможности выполнить все остальные тесты. Рекомендую поговорить с программистами о том, как проще всего вам настраивать тестовый стенд с необходимыми данными.
При этом к разговору с программистами хорошо бы представлять
- какого рода данные вы хотите видеть в базе,
- как часто менять этот набор,
- какие данные могут пригодиться в ближайшем будущем (но пока не нужны).
- Сколько времени надо потратить, чтобы завести те же данные через интерфейс. Насколько это надежно/ненадежно.
- Какое получается соотношение "время выполнения полезной части тестов" ко времени получения окружения и БД в нужном состоянии
SQL для тестировщиков
Тренинги по HP QTP и автоматизации тестирования
Если минарет, значит выше всех (с)
#6
Отправлено 06 сентября 2011 - 11:57
#7
Отправлено 06 сентября 2011 - 12:21
На начальном этапе могу посоветовать обратиться к разработчикам с просьбой внести в базу определенные тестовые данные (распишите все как можно дотошней). Лучше всего попросить написать скрипт, который будет накатывать все нужные Вам данные. Если что, его можно будет самостоятельно подкорректировать, разобраться с этим проблем не будет, да и к тому же базу можно будет "убить" и заново накатить тестовые данные. Для начала этого будет достаточно, но через некоторое время все же будет неплохо самостоятельно заботиться о данных в базе. Ведь будет множество тестов, для каждого из них потребуются определенные пользователи с определенными атрибутами.
#8
Отправлено 06 сентября 2011 - 13:08
Довольно много времени ушло на создание методов для работы с базой
а эти методы работают через интерфейс приложения или напрямую с базой?
#9
Отправлено 07 сентября 2011 - 19:14
////Генерирует текст из указанного количества RUS символов
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
public static string GenTextRusAttr(int val)
{
const string alphabet = "ЯЧСМИТЬБЮФЫВАПРОЛДЖЭЪХЗЩШГНЕКУЦЙ";
int ubound = alphabet.Length;
var sb = new StringBuilder(val);
for (int i = 0; i <= val; i++)
{
sb.Append(alphabet[Rnd.Next(0, ubound)]);
}
return sb.ToString();
}
/// <summary>
/// Генерирует текст из указанного количества ENG букв и цифр
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
public static string GenTextEngAttr(int val)
{
const string alphabet = "QWERTYUIOPASDFGHJKLZXCVBNM0123456789";
int ubound = alphabet.Length;
var sb = new StringBuilder(val);
for (int i = 0; i <= val; i++)
{
sb.Append(alphabet[Rnd.Next(0, ubound)]);
}
return sb.ToString();
}
#10
Отправлено 07 сентября 2011 - 19:15
Для php думаю вам не составит труда переписать методы, всё ООП специально для тебя убрал солнышко,пользуйся
#11
Отправлено 08 сентября 2011 - 05:04
#12
Отправлено 08 сентября 2011 - 14:33
Довольно много времени ушло на создание методов для работы с базой
а эти методы работают через интерфейс приложения или напрямую с базой?
Через EntityManager
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных