Автор: Ничик Дмитрий
Регистр пациентов с заболеваниями почек (РПЗП) – пилотный проект для апробации модели получения информации о результатах ведения и лечения больных в реальных условиях и последующего расчета необходимых ресурсов здравоохранения на региональном и национальном уровнях.
Задание по курсовой работе включает в себя написание тестов для РПЗП с целью проверки качества кода, выявления ошибок и их дальнейшего исправления. Для выполнения задания требуется ознакомиться со структурой существующей системы, выбрать методологию тестирования для соответствующих методов, при необходимости изучить системы тестирования.
Разработке подлежат следующие вопросы:
а) анализ и уточнение задания;
б) ознакомление со структурой существующей системы;
в) непосредственное написание тестов;
г) разработка рекомендаций по рефакторингу.
Итак, первой задачей курсовой работы является ознакомление со структурой существующей системы.
Проведя огромное количество времени с разработчиком проекта, был составлен краткий обзор тестируемой системы (который представлен в курсовой работе – глава 2), что и стало отправной точкой для создания тестов.
В зависимости от того, известна ли тестировщику реализация поведения информационной системы или нет, процесс тестирования разделяется на метод «белого» и «черного ящика» соответственно. Однако, на практике использовался смешанный вариант.
Само тестирование разделялось на несколько этапов.
Первое: это модульное (Unit) тестирование, т.е. тестирование программы на уровне отдельно взятых модулей, методов или классов. При тестировании кода, использующего внешние компоненты, был применен подход mock-объектов (объектов, которые имеют тот же интерфейс, что и используемые компоненты, но их поведение полностью задаётся в тесте). Их использование позволяет избежать поднятия полной инфраструктуры, необходимой приложению для запуска. Так были протестированы два пакета, содержащих в себе около 10 классов.
Второе: использование в тестировании DbUnit. Создавать mock-объект подключения к базе данных и писать возвращаемые запросы - не самый оптимальный вариант. Поэтому на замену mock-объеков был взят DbUnit - Javaopensource фреймворк (расширение JUnit). DbUnitвыгружает данные из локальной базы в xml-файл и передает их в тест. Если данные изменялись в базе, по окончанию работы DbUnit приведет их в изначальное состояние между вызовами тестов. Так был протестирован один из пакетов проекта, выполняющий некоторую работу с базой.
И последнее – это подведение итогов результатов тестирования и разработка рекомендаций по рефакторингу системы.
В итоге функционирование самой системы не изменилось, но полностью изменилась структура системы, были упрощены и «очищены» многие классы системы, упростилась взаимосвязь между классами (с помощью использования одного из столбов ООП – полиморфизма) и оптимизировалась обработка SQL-запросоввнедрением в проект ApacheDbUtils – обертки над пакетом Java JDBC.
Председатель студенческого научного общества: Копылов Д.С.
197101, Санкт-Петербург, пр. Кронверкский, д.49, ауд. 455