Какова наилучшая практика тестирования SQL (хранимые процедуры, представления, запросы, триггеры ...), исключая автоматическое тестирование? В большинстве случаев запрос работает или возвращает тысячи строк, поэтому их немного сложно проверить. Я хочу знать, как вы обычно выполняете тестирование SQL-запроса. Можете ли вы указать мне хорошую (онлайн) ссылку?Лучшая практика тестирования SQL
ответ
Для вставки, обновления, удаления я проверить состояние таблицы до и после того, как процедура является г un для записей, которые соответствуют условиям обновления или удаления вставки. Поэтому, если я добавляю 7 записей, они не должны быть в таблице заранее и должны быть там после.
Выбирается с тысячами записей может быть сложнее. Нет никакой замены для фактического знания ваших данных и того, что вы ожидаете получить. Например, я знаю, что у определенного клиента около 2000 продавцов. Если я запустил запрос, в котором должны быть все повторы, и их будет всего около 1000, я знаю, что что-то не так. Иногда я помещаю результаты запроса в временную таблицу, поэтому я могу запускать статистику по ней. Если я делаю отчет участника, я могу увидеть, что в отчетном периоде в отчете есть 200 различных встреч в соответствии с моим запросом. Если я посмотрю только на эту таблицу и вижу, что за один и тот же период происходит 350 встреч, я смотрю, чтобы посмотреть, что исключает собрания, и обычно просматривайте детали одного или нескольких исключенных встреч и связанных таблиц, чтобы понять, почему это не появляется. Обычно вы найдете статус, который необходимо учитывать, или плохие данные.
Я также ищу записи, которые дублируются. Если я ожидаю, что одна запись на встречу и одна и та же встреча там дважды, я знаю, что в одной из таблиц объединений больше записей, чем я ожидал для условий запроса.
Я часто прошу некоторых из наших сотрудников проверить результаты запроса для отчета. Поскольку они ближе к использованию данных, чем я, они часто обнаруживают то, что у меня нет.
Другой метод заключается в том, чтобы преднамеренно ограничить предложение where для тестирования меньшим подмножеством данных, которое вы можете вручную проверить, чтобы узнать, что вы ожидаете от того, что вы получили. Это особенно полезно, если у вас много расчетов или сложных вычислений. В любое время, когда я делаю сложный расчет, я просматриваю необработанные данные для одного типичного случая и вручную вычисляю формулу из необработанных данных, тогда я могу проверить, правильно ли это в моем запросе.
Триггеры, которые я тестирую, сначала записывая их как обычные запросы (после первого создания и заполнения таблиц temp для #incerted и #deleted). Я обязательно добавлю несколько записей в свои временные таблицы, потому что каждый триггер должен иметь возможность правильно обрабатывать несколько вложений/обновлений или удалений записи. Затем я пишу код для отображения состояния before и состояния after и помещаю его в транзакцию, чтобы я мог откатить его во время тестирования.
Попробуйте устранить дополнительные переменные.
способов сделать это:
- Каждый тест должен проверить только одна функция (вид, хранимая процедура и т.д.)
- Используйте известные данные тестирования (она должна быть от реальной среды (но на самом деле не настоящая среда)
- Используйте наименьшее количество тестовых данных, адекватно тестирует функцию.
- 1. Лучшая практика тестирования модулей
- 2. Лучшая практика для тестирования отчетов
- 3. Лучшая практика тестирования тестирования интеграции данных
- 4. Лучшая практика для тестирования ресурсов тестирования Path?
- 5. Лучшая практика для тестирования. Архитектура
- 6. Лучшая практика тестирования сервера сокетов?
- 7. SQL Select Лучшая практика
- 8. Лучшая практика для организации автоматизированного тестирования?
- 9. Лучшая практика для модульного тестирования Enum Translator
- 10. PHPUnit: Лучшая практика для тестирования статического метода
- 11. Лучшая практика для тестирования супервизоров в Elixir
- 12. Лучшая практика для развязывания запросов от тестирования
- 13. Лучшая практика тестирования возвращаемого значения indexOf
- 14. Лучшая практика для тестирования определения сборки TFS
- 15. Лучшая практика повторения SQL-заявлений
- 16. Лучшая практика: Oracle SQL присоединяется
- 17. Лучшая практика пользователей SQL Server
- 18. Лучшая практика Объекты из SQL
- 19. Лучшая практика с классами
- 20. Лучшая практика хранения географии
- 21. Лучшая практика Many_to_Many
- 22. Лучшая практика источника данных Linq to SQL
- 23. Лучшая практика для модуля подключения SQL-DB
- 24. Lucene и SQL Server - лучшая практика
- 25. Общительная репликация экземпляра SQL Server - лучшая практика
- 26. Лучшая практика для конкатенации в SQL Server?
- 27. Лучшая практика для написания нескольких SQL-запросов
- 28. Лучшая практика для значений констант SQL
- 29. Лучшая практика для SQL в .NET-проекте
- 30. Лучшая практика: SQL Scripting или Trusting GORM