2010-01-13 4 views
3

Недавно я столкнулся с вопросом интервью: «Если есть база данных, содержащая множество хранимых процедур и функций, то как бы вы разрабатывали и разрабатывали инфраструктуру для тестирования автоматизации?»Как создать рамки автоматизации для базы данных

Как вы ответите на этот вопрос?

+1

Вы бы усовершенствовали этот вопрос, указав свой ответ и попросив более конкретный ответ. Звучит как кандидат на CW, но, возможно, нет. – 2010-01-13 14:19:44

ответ

0

повторить обработку и функции и сгенерировать код для вызова их с определенными параметрами?

1

Проблема эквивалентна заданию «базы данных с четко определенными интерфейсами» и проверочными тестами для тестирования этих интерфейсов.
Все, что нужно сделать, это автоматизировать ручной процесс запуска тестовой системы, сравнивая ее результаты с идеальным и выводить результат как «пройденный» или «сбой».
Это может быть одним из способов сделать это:

  1. магазин идеальные результаты каждого TestCase в файле сказать (idealResults.txt)
  2. итерацию по testcases и перенаправить вывод в файл сказать (currentResults.txt)
  3. Написать код для сравнения файлов idealResults.txt и currentResults.txt. Если единственными допустимыми результатами для тестовых таблиц являются точные результаты, все будет просто (простой скрипт perl будет делать).
    Если диапазон значений разрешен, код необходимо соответствующим образом изменить.
4

Ну, я бы начал с вопроса, какие тесты: модульные тесты? системные/интеграционные тесты? регрессионные тесты? Это одноразовое упражнение для (скажем) тестирования успеха процесса обновления базы данных? Или это основа для перемещения слоя базы данных в проект TDD?

В зависимости от ответов на эти вопросы я мог бы затем спросить «какую базу данных», так как есть некоторые рамки тестирования, которые были специально написаны для определенных вкусов базы данных. В противном случае существуют такие общие продукты, как dbUnit. Я, конечно, не хотел бы писать фреймворк с нуля. В этот раз лучше провести письменные тесты.

Я хотел бы узнать о характере хранимых процедур: сколько из них являются табличными API, сколько из них являются API транзакций и сколько из них - утилиты (т. Е. Не выполняют DML)? Это приводит к обсуждению тестовых данных.

Смежные вопросы