Тестирование информационной системы входит в более общий процесс верификации, полноценное рассмотрение которого выходит за рамки дисциплины «Объектно-ориентированное программирование». Тем не менее, следует отметить ряд моментов, учёт которых является обязательным даже в том случае, когда речь не идёт о менеджерах проектов или специалистах в области верификации и тестирования.
Во-первых, следует различать процессы тестирования и отладки программного кода. Отладка выполняется программистом с помощью встроенных средств среды разработки и исходя из опыта написания программного кода. В основном она сводится к выявлению синтаксических и семантических ошибок в тексте программы. Тестирование – это процесс, требующий планирования и выполнения ряда предварительных процедур, основной из которых является составление набора тестовых примеров, образующих тест-план. Тестовые примеры в большинстве случаев основаны на функциональных требованиях к системе и могут затрагивать различные уровни разработки (модульное тестирование, интеграционное тестирование, системное тестирование).
В ходе курсовой работы необходимо выполнить упрощённый вариант модульного тестирования, сводящийся к тестированию всех методов разработанной библиотеки классов. Так, если в системе классов «фигура-точка-шар» присутствует виртуальный метод «нарисовать», необходимо спланировать по крайней мере два теста на корректность использования этого метода для классов «точка» и «шар» (класс «фигура» является абстрактным).
В итоге, под методикой тестирования в курсовой работе будем понимать список различных вариантов вызова методов классов с ожидаемыми результатами и порядок тестового выполнения этих вызовов. Поскольку некоторые методы могут оказаться однотипными (как в примере с точкой и шаром), то тесты для их проверки можно сгруппировать, чтобы на следующем этапе учесть это при проектировании тестового приложения.
Проектирование и программная реализация тестового приложения
Процесс проектирования и программной реализации тестового приложения очень похож на описанный выше процесс разработки библиотеки классов. Однако, по своему наполнению он может сильно варьироваться для разных тем курсовых работ. Поэтому данный этап курсового проектирования предполагает больший объём самостоятельной работы, связанный с необходимостью изучения значительного количества справочной информации, не рассматриваемой в рамках основного курса.
Следует отметить те моменты и требования, которые присутствуют при разработке тестового приложения.
1. Тестовое приложение должно иметь оконный интерфейс, включающий меню и интерактивные интерфейсные средства, с помощью которых можно протестировать созданную систему классов.
2. Набор интерфейсных элементов (кнопки, списки, поля ввода, диалоговые окна, графические элементы и т.д.) должен быть определён на основе описанной на предыдущем этапе методики тестирования.
3. Жёсткие требования к качеству интерфейса тестового приложения (с точки зрения удобства использования и степени интерактивности) не предъявляются. Основное требование – возможность реализации методики тестирования.
4. Жёсткие требования на документирование процесса разработки тестового приложения не накладываются. В текст расчётно-пояснительной записки следует обязательно включить лишь структурную схему, описывающую компоненты приложения и связи между ними (с сопроводительным текстом) и экранные формы, наглядно демонстрирующие интерфейс программы. По собственной инициативе студент может включить в описание тестового приложения функциональные схемы, блок-схемы алгоритмов, таблицы, схемы классов, т.е. любые материалы, позволяющие лучше понять процесс разработки и функционирование тестового приложения.
5. Полный исходный программный код модулей тестового приложения (кроме описания системы классов предметной области) должен быть помещён в приложение Б к расчётно-пояснительной записке.
Таким образом, целями разработки тестового приложения являются не столько тестирование библиотеки классов, сколько стимулирование самостоятельной творческой работы студента и освоение технологии разработки оконных приложений. При этом в требованиях к курсовой работе отсутствует упоминание об операционной системе, на базе которой должно функционировать приложение. Выбор операционной системы остаётся на усмотрение студента.