Написание тестового кода для проверки записей базы данных при тестировании API - PullRequest
3 голосов
/ 04 августа 2010

Я пишу тестовый код для тестирования клиент-серверного приложения.Тестируемое приложение состоит из

  1. приложения, которое выполняется на Tomcat или другом сервере приложений Java EE, и
  2. клиентских jar-файлов, предоставляющих API.

Я в основном пишу тестовый код, который использует этот клиентский API для подключения к серверу.

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

Ошибки обнаруживаются при сбое определенной функциональности, но в любом случае это обнаруживается в коде, который тестирует сам API.Кажется, что проверка данных в БД не очень полезна, особенно учитывая дополнительные усилия, необходимые для написания и поддержки всего этого кода.

Мой вопрос:

Есть ли какие-либореальная выгода в написании тестового кода для подключения к БД и проверки записей таким способом?Окупаются ли выгоды от затрат, связанных с написанием такого кода?

Ответы [ 4 ]

3 голосов
/ 04 августа 2010

Чтение базы данных не требуется для таких тестов. Вы можете достичь лучших результатов, протестировав, что:

  1. Запросы на сохранение возвращают статус успеха.
  2. Получение запросов возвращает сохраненные данные.
  3. Сохраненные данные возвращаются запросом на получение даже после сброса состояния клиента, т.е. принять во внимание кэширование на стороне клиента.

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

2 голосов
/ 05 августа 2010

Просмотр базы данных может найти ошибки, но это не очень вероятно, поэтому я бы свел проверку базы данных к минимуму.Пока API правильно сохраняет и восстанавливает данные, вам все равно, как они хранятся.

Вы можете проверить базу данных, но лично я бы не делал это систематическим образом.

Вы задаете правильные вопросы, цель тестирования - найти ошибки.Сколько ошибок вы обнаружили в этом тестировании?

Автоматическое регрессионное тестирование иногда рассматривается как бесплатная вещь, но если вам постоянно приходится обновлять тесты, это не так.

Если вы недовольны необходимостью поддерживать эти тесты, я бы записал, сколько времени вы тратите на их выполнение, а затем вы можете утверждать, что вместо этого вы могли бы выполнять более продуктивную работу, выполнять другие формы тестирования илиразвитие.

0 голосов
/ 25 сентября 2014

Запрос API для самопроверки - это все равно, что спросить кого-то, честны ли они, и попросить их ответить «потому что я честен» и принять это. Это круговые рассуждения. Есть ли выход из этого цикла? Мне неловко принимать результаты чего-то, чья корректность не была тщательно проверена.

0 голосов
/ 04 августа 2010

С помощью таких тестов вы проверяете содержимое базы данных. Другие тесты проверяют только операции API, но не результаты в БД.

...