Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Testirovanie_programmnogo_obespechenia.doc
Скачиваний:
32
Добавлен:
19.08.2019
Размер:
1.08 Mб
Скачать

12. Тестирование классов.

Тестирование классов направлено на проверку соответствия реализации данного класса его спецификации.

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

  1. Роль класса в системе, в частности, степень связанного с ним риска

  2. Сложность класса, которая измеряется количеством состояний, операций и связей с другими классами

  3. Объем трудозатрат на разработку тестового драйвера для тестирования этого класса

Важно!

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

Факторы оценивания при тестировании классов

5 факторов оценки:

1) Кто будет выполнять тестирование? - разработчик

2) Что тестировать? – программный код на точное соответствие его требованиям к этому классу. Статические методы также тестируются.

3) Когда тестировать? – тестирование класса должно проводиться до его использования. Проводится регрессионное тестирование при изменениях.

Тестовый случай – алгоритм проверки. Ранняя разработка тестовых случаев позволяет лучше понять спецификацию класса, построить более успешную его реализацию.

4) Каким образом тестировать? – тестирование классов обычно выполняется путем разработки тестового драйвера. Драйвер создает (потом и удаляет) экземпляры класса и окружает их соответствующей средой, чтобы стал возможен прогон соответствующего тестового случая. Драйвер также составляет протокол о прохождении/непрохождении тестового случая.

5) В каких объемах тестировать? – объем тестирования м.б. измерен полнотой охвата тестами спецификации и реализации класса.

3 меры охвата тестирования:

1. покрытие, ориентированное на состояние. Т.е. разраб-ся набор тестовых случаев для покрытия переходов из одного состояния в другое.

2. покрытие, ориентированное на ограничения, т.е. разраб-ся тестовые случаи для проверки входных значения, близких к каждой границе.

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

Построение тестового драйвера

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

3 способа реализации (С++):

1) реализовать функцию main, которую можно подвергать условной компиляции для некоторых методов класса с последующим ее выполнением.

2) реализовать статический метод класса для прогона каждого тестового случая.

3) реализовать отдельный класс для выполнения и сбора результатов прогона каждого тестового случая.

Наиболее предпочтительный – 3.

Требования к тестовому случаю:

  1. сообщить о начале тестового случая

  2. построить новый экземпляр класса

  3. установить экземпляр класса в соответствующее состояние

  4. реализация тестового случая

  5. проверка на соответствие ожидаемых результатов полученным

  6. сообщение о результатах проверки

  7. уничтожить экземпляр класса

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]