Интеграционные тестовые рамки? - PullRequest
2 голосов
/ 24 апреля 2009

Я ищу тестовый фреймворк, чтобы покрыть наши тесты интеграции черного ящика. Нам нужно что-то, что может быть написано с помощью скриптов не разработчиками (иначе как с модульным тестом типа C #).

Исходные сценарии, которые я имею в виду:

  1. Восстановить известную БД
  2. Выполнить задание агента sql (ETL)
  3. Выполнение проверочных сценариев sql для выходной базы данных

и

  1. Запустить msi install
  2. Проверить наличие папок / файлов / RegKeys / Services / etc
  3. запустить MSI удалить

Пока что я не нашел ничего подходящего. В основном тестирование пользовательского интерфейса (Project White / etc), которое мы будем использовать, но не охватывает эти случаи. Или интеграционное тестирование, основанное на модульном тестировании, которое мы пока не готовы подтолкнуть нашей командой по обеспечению качества.

В настоящее время я экспериментирую с разработкой нашего собственного внутреннего инструмента для этой части тестирования, если я не могу найти ничего другого.

1 Ответ

4 голосов
/ 13 мая 2009

Похоже, вы хотите запустить кучу параметров командной строки, верно?

Ну, я вижу два способа сделать это:

1) вы можете изобрести свой собственный язык для конкретного домена. Это причудливый способ сказать, что вы пишете интерпретатор с некоторыми очень очень высокоуровневыми функциями. Нетехнические люди пишут что-то вроде командных файлов, а вы пишете некоторый C #, который читает файл, выполняет оператор switch, затем запускает команды. FIT, пожалуй, самый распространенный способ сделать это - это фреймворк для интегрированных тестов. (Способ сделать это - разделить вещи запятыми: command, param1, param2. Представьте, что это невероятно простая программа на ассемблере. Тогда ваш оператор switch принимает param1..paramx и помещает их в массив строк и передает их функции . Функция обрабатывает массив.)

Проблема в том, что ваши клиенты будут хотеть переменные. Они захотят зацикливаться. И довольно скоро вы внедрили полный в Турине программный интерпретатор, который считывает данные в формате columner. Это воняет.

Чтобы ты мог ...

2) Научите своих клиентов языку сценариев. Я бы посмотрел на Perl и протестировал :: more - или, возможно, некоторые из тестовых рубинов.

И если это не сработает, возможно, вы могли бы ...

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

Если бы вы управляли браузером, я бы порекомендовал selenium или watIR, но похоже, что вы командная строка-y.

Напишите мне письмо (matt.heusser@gmail.com) или прочитайте о тестовых фреймворках в моем блоге (xndev.blogspot.com) для получения дополнительной информации. Мой блог - это результат поиска №2, по которому я спрашиваю Google, что такое тестовый фреймворк, поэтому я рекомендую его. : -)

С уважением,

- Heusser

...