Поблочное тестирование против больших баз данных

  • Является ли [G_L Entry] правильная таблица?

Это зависит от того, что вам нужно проанализировать. GL - главная книга. Показывает движение денег между счетами GL. Требуется ли перемещение элемента, см. «Запись в книгу». Для получения информации о стоимости см. Ввод значения.

  • Есть ли способ найти поля даты и времени?

Вероятно, нет, если они не добавляются при настройке. Для Nav время не актуально в большинстве случаев. Возможно, вам все равно, когда вы продаете что-либо днем, утром или вечером. Это ERP, а не фондовый рынок. Начальный баланс, конечный баланс - это все, что вам нужно.

  • Является ли отсутствующая часть времени в столбцах даты и времени результатом настройки клиента?

Нет. Если поле datetime содержит только часть даты, это означает, что в Nav это просто поле даты. Nav имеет три отдельных типа: дата, время и дата и время. Все они являются datetime на sql. Иногда дата может иметь часть времени, так как 23:59:59 это все еще тип даты в Nav, но значение называется датой закрытия.

7
задан George Stocker 9 April 2009 в 20:38
поделиться

3 ответа

I ' Я не уверен, что полностью согласен с вашим предположением, что вы не сможете восстановить базу данных после пробного запуска. Хотя я определенно согласен с тем, что некоторые тесты следует запускать на полноразмерной базе данных с множеством ТБ, я не Я не понимаю, почему вы не можете запустить большинство ваших тестов в гораздо меньшей базе данных. Существуют ли ограничения, которые необходимо протестировать, например «Не может быть более миллиарда одинаковых строк?»

Моя рекомендация будет заключаться в том, чтобы использовать меньшую тестовую базу данных для большинства ваших функциональных спецификаций и создавать и отбрасывать все ее таблицы. с каждым тестом, с таким количеством образцов данных, которое необходимо для проверки вашей функциональности.

3
ответ дан 7 December 2019 в 10:07
поделиться

Для создания данных фикстуры для тестов у вас есть несколько вариантов:

(a) Создать сценарий, который создает пустую базу данных, а затем добавляет небольшое количество записей в качестве данных фикстуры . Эти данные могут быть созданы вручную или из нескольких записей из реальной базы данных. Это подход Rails, довольно распространенный в мире Java.

(b) Также часто используется «фабрика» для создания этих данных (своего рода код приложения). Создание этих классов требует первоначальных инвестиций, но после их создания их можно повторно использовать для всех ваших тестов. Сейчас это очень популярно в коде Ruby / Rails. (Это ваш второй подход, описанный выше.)

(c) Конечно, вы можете использовать копию «производственных» данных и попытаться проверить их. Но это, вероятно, самый сложный подход, поскольку вы всегда будете соревноваться с реальным миром, изменяя данные. И это также имеет тенденцию быть на порядки медленнее, чем небольшой набор данных прибора.

Определенно существует стоимость перехода из состояния (c) в состояние (a) или (b), но это инвестиции в будущее. Это не займет так много времени - даже если на это уйдет целый день, ускорение выполнения теста быстро его компенсирует.

Есть некоторая независимая проблема. После того, как вы поместите свои данные в базу данных, а затем запустите тесты, вам необходимо восстановить их. Есть несколько общих подходов:

(1) откат транзакции. Это отличный способ, если он практичен. Иногда, однако, вам действительно нужно подтвердить завершение транзакции, поэтому это не работает.

(2) просто повторно загрузите новый набор данных фикстуры. Если данные вашего прибора малы, это возможно. Немного медленнее, чем (1).

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

Рекомендация?

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

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

2
ответ дан 7 December 2019 в 10:07
поделиться

Как насчет тестирования всего в транзакции, а затем отката? Например:

BeginTransaction
DoThings
VerifyResult
RollbackTransaction
1
ответ дан 7 December 2019 в 10:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: