Вопрос новичка о непрерывной интеграции и тестах селена, - PullRequest
4 голосов
/ 01 февраля 2011

Я очень новичок в C.I. но недавно я унаследовал проект, в котором только что был реализован Team City, и я постепенно осваиваю его. Одна вещь, которую мы хотели бы сделать, это запустить несколько тестов Selenium как часть процесса сборки. Я создал тесты на селен и могу успешно их запускать через nunit-console на моей машине для разработки. Сервер сборки создает проект и затем развертывает его (как это происходит с приложением веб-форм) на промежуточном сервере.

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

Или я все неправильно понял? Если да, то как ты это делаешь в своей организации?

1 Ответ

2 голосов
/ 02 февраля 2011

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

Итак, вот что вы можете сделать ...

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

И вот идет напыщенная речь ...

В моем текущем проекте мы недавно узнали, что наши тестеры (у нас их было ~ 10) повторно использовали один сервер. Они утверждали, что, поскольку у нашего приложения будет несколько одновременно работающих пользователей, было хорошей идеей, что, пока они тестируют отдельные функции, они также проверяют, как эти функции работают, когда несколько пользователей работают на одном сервере. НЕПРАВИЛЬНО!

Если речь идет о нескольких пользователях, должны быть тестовые случаи для конкретных проблем. Если функциональность № 1 может мешать функциональности № 2, она должна быть специально протестирована, а не просто «проверена на счастье».

До того, как это было объяснено нашим ручным тестировщикам, у нас было много ложных сообщений об ошибках из-за того, что один тестер просто наступал на пальцы другого тестера. (например, tester1 удалил запись, которую tester2 представил в систему и т. д.). Это создало много ненужных отчетов об ошибках, и эти ошибки никогда не воспроизводились.

Извините за напыщенную речь, я надеялся, что это все еще помогает

...