Операция: Кодирование
Следующий шаг - собственно написание кода для задачи по разработке базы данных. Это означает обновление существующих объектов схемы базы данных или создание новых. После реализации очередного пакета изменений его нужно развернуть на изолированном сервере для тестирования.
Создание новых или обновление существующих объектов схемы |
При необходимости создайте новые объекты схемы |
Сборка проекта базы данных |
Соберите проект базы данных |
Развертывание проекта баз данных на изолированном сервере |
Разверните проект баз данных на изолированном сервере |
Операция: Выполнение теста модуля базы данных
С помощью теста модуля проверяется корректность реализации определенного программного компонента. Выполнение тестов модулей при разработке снижает число дефектов, обнаруживаемых на этапе тестирования, и позволяет бороться с регрессом - появлением новых дефектов при исправлении уже выявленных дефектов или при добавлении новых функций. Тесты модулей не являются тестами функций или взаимодействия; их единственное назначение - проверка автономной работы фрагмента кода. Разработчики должны убедиться, что существующие тесты модулей проходят после написания нового кода. Тестирование должно проводиться на протяжении всего проекта - от реализации архитектурных основ в начале до внесения дополнений в конце проекта. При этом все разновидности тестов единообразно выполняются и выявляют дефекты. При тестировании модулей баз данных необходимо перед написанием тестов модулей создать или обновить план генерирования данных, чтобы при тестировании имелись необходимые тестовые данные.
Определение типа теста модуля |
Определите типы разрабатываемых тестов модулей базы данных. Тесты правильной работы ( positive unit tests ) проверяют код в нормальном режиме и контролируют корректность результатов. Тесты неправильной работы ( negative unit tests ) умышленно некорректно используют код и проверяют его устойчивость и адекватность обработки ошибок |
Создание или изменение плана генерации тестовых данных |
Если плана генерации тестовых данных не существует, создайте его |
Создание или изменение теста модуля базы данных |
Напишите новые тесты модулей для проверки объектов схемы |
Выполнение теста модуля базы данных |
Убедитесь в правильной настройке параметров выполнения теста модуля базы данных |
Анализ результатов теста |
Если тест модуля не прошел по той причине, что был неверным, исправьте его и снова выполните |
Отладка кода |
Исправьте ошибки в программе, относящейся к задаче |
Выполнение тестов модуля приложения |
При итеративной разработке базы данных иногда целесообразно выполнять тесты модулей приложения совместно с тестами модулей базы данных. Поскольку приложение зачастую очень интенсивно обращается к данным, изменения в базе данных могут повлиять на прикладной слой, если их не принимать во внимание. Совместное выполнение тестов приложения и базы данных даст уверенность в том, что проблемы будут замечены заблаговременно |
Операция: Рефакторинг базы данных
В процессе рефакторинга кода прогоняйте тесты модуля после каждого изменения. При таком подходе риск повреждения программы минимален. По возможности выполняйте автоматизированный рефакторинг, поскольку автоматизированные процессы минимизируют вероятность ошибок. Отметим, что рефакторинг надо проводить постоянно.
Определение сложности |
При добавлении новых функций обратите внимание на те части программы, структура которых стала более сложной |
Применение рефакторинга |
При рефакторинге вносите за раз одно изменение. Измените код и все ссылки на измененную область |
Сборка проекта базы данных |
Соберите проект базы данных |
Развертывание проекта баз данных на изолированном сервере |
Разверните проект баз данных на изолированном сервере |
Выполнение тестов модуля базы данных |
Выполните тесты модуля, чтобы убедиться в семантической целостности кода после рефакторинга |
Операция: Обзор кода
Обзор кода применяется для выявления областей, с которыми могут возникнуть проблемы в процессе дальнейшей разработки или тестирования. Обзор кода также дает возможность узнать мнения других разработчиков о рассматриваемом коде. Обзоры кода позволяют участникам, работающим в той же области, следовать прецедентам, созданным предыдущими разработчиками. В таких партнерских встречах требуется присутствие второго знающего коллеги, с которым разработчик должен рассмотреть все изменения, прежде чем зарегистрировать код в системе управления версиями.
Проверка правильности имен |
Имена объектов схемы базы данных должны отражать назначение соответствующих сущностей |
Проверка адекватности кода |
Рассматриваемый код должен соответствовать задаче, для которой он написан. Допустимы только такие изменения кода, которые добавляют или изменяют функции системы |
Проверка допустимой сложности кода |
Повторяющийся код должен быть собран в общих функциях |
Внесение изменений по результатам обзора |
Внесите все изменения, запланированные в результате обзора |
Сборка проекта базы данных |
Соберите проект базы данных |
Развертывание проекта баз данных на изолированном сервере |
Разверните проект баз данных на изолированном сервере |
Выполнение тестов модуля базы данных |
Выполните тесты модуля и убедитесь в отсутствии регресса |
Операция: Интеграция изменений
Чтобы приложение было устойчивым и согласованным, необходимо организовать интеграцию изменений в код. Когда код состоит из небольших изменений, каждое из которых соответствует задаче по разработке или исправлению дефекта, его проще поддерживать в стабильном состоянии. Легче найти и изолировать потенциальную проблему. Для состояния сценария или требования к качеству устанавливается значение Resolved (Обработан) и описатель назначается тестировщику.
Проверка зависимостей |
Если задача зависит от других задач, которые еще не завершены, дождитесь, когда они будут интегрированы в систему |
Сборка проекта базы данных |
Соберите проект базы данных |
Развертывание проекта баз данных на изолированном сервере |
Разверните проект баз данных на изолированном сервере |
Тестирование и интегрирование других задач по разработке баз данных |
Проверьте, что вносимые вами изменения, связанные с исправлением дефекта, реализацией части сценария или требования к качеству, нормально работают совместно с уже интегрированными изменениями |
Регистрация пакета изменений |
Зарегистрируйте измененный код в системе управления версиями исходного кода. Если тест реализован или выполнен не полностью, сохраните весь код как промежуточную версию (shelveset). В противном случае установите признак решенной задачи. В результате описателю будет сопоставлен новый пакет изменений |
Завершение задачи |
Установите для описателя признак Resolved (Обработан) и назначьте сценарий одному из тех тестировщиков, которые писали тестовые задания для данного сценария. Назначьте этого тестировщика новым владельцем описателя задачи |