Каковы важные соображения при проведении бэкэнд-тестирования?
Вопрос
Я хотел знать, какие важные моменты следует учитывать при проведении бэкэнд-тестирования.
В моем проекте нет графического интерфейса, по сути, это вся работа, связанная с бэкэндом.Полная серверная часть написана на Java, и мы используем Oracle Db.
Я был бы очень признателен, если бы вы все могли поделиться некоторыми экспертными советами о том, что следует учитывать при тестировании бэкэнд-тестирования.
Решение
Поскольку ваш вопрос очень общий, то и мой ответ должен быть таким же.Вот несколько вещей, которые следует иметь в виду:
- Вы должны иметь возможность вернуться к единой отправной точке для каждого запуска теста.Создайте снимок БД и используйте механизм восстановления БД из этого снимка перед каждым запуском.
- Ваш снимок должен представлять рабочую базу данных.Поскольку вы можете не захотеть копировать фактические производственные данные по соображениям конфиденциальности и безопасности, это, вероятно, означает наличие средств для генерации данных (и повторного создания их при наличии изменений, напримерсхема меняется).
- Для регрессионного тестирования вам необходимо иметь модульные тесты для всех распространенных случаев использования и, надеюсь, для многих необычных.JUnit, вероятно, является хорошей основой для этого.
- Рассмотрите возможность включения инструмент покрытия кода чтобы увидеть, какая часть вашего уровня персистентности затрагивается вашими модульными тестами.100%-ное покрытие кода не означает, что вы используете все пути принятия решений, но оно, по крайней мере, дает вам представление о том, какую часть охватывают ваши тесты.
- Вам необходимо протестировать как пропускную способность (достаточно ли быстро выполняются вставки и выборки для одного пользователя?), так и параллелизм (работают ли несколько пользователей - больше, чем вы ожидаете в рабочей среде - доступ к одним и тем же таблицам как для чтения, так и для вставки/обновления - вызывает проблемы с производительностью). или тупики?Если есть взаимоблокировки, разрешаются ли они должным образом?)
Не связан с StackOverflow