воскресенье, 27 июля 2008 г.

Тестирование баз данных - поделитесь опытом

Я начал дискуссию под этим названием на сервисе "Мой круг" и вот что из этого получилось

Вопросы:
Кто и как тестирует БД - поделитесь опытом.
Что тестируется?
Как тестируется?
Какие инструменты и технологии используются?
Всказывайте свой опыт, а не ссылки в Google или Яндексе

Светлана Ефимова автоматизация производства

А зачем отдельно тестировать базу данных? Если она построена с использованием 3-й нормальной формы, то насколько мне известно, MSSQL сервер сам проверит соблюдение основных правил построения и выскажется, если найдет что-то не верным. Да и ErWin на эту тему тоже подсказки выдает, по-моему.
И потом сейчас есть много методик тестирования программного обеспечения.

Александр Лещинский Quis custodiet ipsos custodes?

Re: Светлана Ефимова

Нормализовать все-таки - до 4... И 3НФ - не цель, а средство, и кроме отнормализованной базы важны (иногда - жизненно) еще и индексы. И, скажу по секрету, работа базы на 100 записей с 10 транзациями в минуту сиьно отличается от нее же - но с 100 лямами записей и 10 транзакций в секунду. Иногда и денормализовывать приходится... И не пользоваться МСовским ужасом, летящим на крыльях ночи. Да и база это не только таблицы,это еще и сторедки, и вьюхи, которые (криво сделанные) могут убить все остальное правильное

Светлана Ефимова автоматизация производства

Re: Александр Лещинский

Конечно, конечно. И индексы, и хранимые процедуры, и представления - это все я для себя включаю в базу данных. И сейчас работаю с базами, занимающими от 30Гб и выше. Та что с этими проблемами сталкивалась лично. Да, наверно, Oracle лучше, чем MS, но он значительно дешевле и на мой взгляд, проще в использовании. И выбирать SQL-сервер надо, конечно, по потребностям пользователя.
Иногда и денормализация нужна, но в этом случае мне кажется, лучше OLAP-кубы использовать. Или что-нибудь подобное.

Александр Лещинский Quis custodiet ipsos custodes?

Да, я забыл ответить на вопрос
Тестирование - глазами... а потом - стресс-текст на тушке предполагаемого объема и интенсивности пользования

Андрей Архангельский Программист, разработчик БД

Re: Светлана Ефимова

И потом сейчас есть много методик тестирования программного обеспечения.

Вы уже много раз пишите эту фразу.
В данном конкретном случае можно привести те, которые Вы используете?
Только напомню - тестируем не программное обеспечение, а БД.

Светлана Ефимова автоматизация производства

Re: Андрей Архангельский

Я использую для тестирования собственно базы данных:
сначала визуальная проверка корректности всех отношений,
а потом после создания базы данных - ввод данных причем и последовательный (начиная со справочников и заканчивая оперативными данными) и наоборот, ввожу заведомо некорректные оперативные данные и проверяю все ли ссылки у меня правильно работают.
Для проверки скорости работы при больших объемах - надо ввести как минимум 1000 записей в таблицы с оперативными данными.

А разве в инете нет методик тестирования программного обеспечения? Составление TEST-Case и отработка по ним всех веточек работы ПО.

Андрей Архангельский Программист, разработчик БД

Re: Светлана Ефимова

а потом после создания базы данных - ввод данных

Сколько, какие, сколько человек это делает, какое у них образование?

ввожу заведомо некорректные оперативные данные

Как узнать какие данные некоректные?

Для проверки скорости работы при больших объемах - надо ввести как минимум 1000 записей в таблицы с оперативными данными.

У меня минимальный размер транзакции - 100000 записей. А ввожу 2-3 млн. записей. Измерением скорости занимается сама БД (есть встроенные таблицы)

А разве в инете нет методик тестирования программного обеспечения? Составление TEST-Case и отработка по ним всех веточек работы ПО.

Еще раз повторяю! Как тестировать ПО я знаю. Я говорю о тестированиее БД.
Я ведь не только здесь этот вопрос задаю. На нескольких специализированных форумах за 2 недели ни одного ответа.

Светлана Ефимова автоматизация производства

Re: Андрей Архангельский

Данные для меня некорректны
1. неверные ссылки на справочники. Если можно ввести неверное значение в поле ссылки (если быть точной, то значение отсутствует в справочнике и может быть введено в ссылке). Значит отсутствует ссылочная целостность.
2. нет проверки на типы данных.
3. неверно обрабатывается 0 и пусто
4. Если должны быть ограничения по вводу данных (например, нельзя вводить в заданное поле отрицательных значений), это тоже должно быть проверено. Правда обычно такие вещи сейчас на базу не вешают.
5. Проверка на обязательность заполнения.
6. Проверка на уникальность индексов (если у вас в базе должны быть уникальные индексы)
Хватит?


Диана Рысина неотразимый программист-психоаналитик

Господа, вы все намешали в кучу. Что именно обсуждаем: выбор СУБД; адекватность построения Инфологической модели; достаточную степень нормализации или оптимизация физической модели?
"Котлеты отдельно, мухи отдельно..." (с) Путин В.В.


Александр Лещинский Quis custodiet ipsos custodes?

Re: Диана Рысина

Мы обсуждаем "Как проверить, что все работает как надо"

Диана Рысина неотразимый программист-психоаналитик

Re: Александр Лещинский

Видимо, уже никому не надо...

Андрей Архангельский Программист, разработчик БД

Re: Диана Рысина

Никто ничего не мешает.
Придумали БД. Сделали БД. Хотим убедится что БД выполняет свои функции.
Главная функция БД - если кто-то внес в БД данные, то мы должны найти их унифицированным для ЭТОЙ БД способом. ВСЕ!
Все остальные мухи и котлеты отдельно.

Как говорил мой хороший знакомый Кушниренко Анатолий Георгиевич (из МГУ) "Бессмысленно обсуждать производительность неработающей программы".

Точно также бессмысленно тестировать БД на производительность, если внесенные данные "пропадают в туне" и через год работы количество "мусора" в БД достигает 50%.

Андрей Архангельский Программист, разработчик БД

Re: Светлана Ефимова

Мне кажется у Вас идеальная БД. Могу ли я ознакомится со структурой этой БД и тогда в моей книге появится единственный пример правильно спроектированной БД.
Судя по Вашим высказываниям у Вас суперинструменты для разработки, которые могут создавать любые отчеты. У меня этих инструментов нет. Поэтому буду благодарен, если Вы покажете мне структуру Вашей БД и ответите на возможные впоследствие вопросы.

P.S. Ответа на эту просьбу не последовало

Дискуссия на форумах sql.ru, ibase.ru, source.ru и др. были еще короче!!!


Понравилась статья? Добавь в социальные закладки!

Комментариев нет: