Особенности тестирования объектно-ориентированных программных систем

Проектирование и исполнение теста

Сравнение

Восходящее тестирование

Нисходящее тестирование

Нисходящее и восходящее тестирование

Стратегия

Предположение об ошибке

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

Приемлемая стратегия состоит в следующем:

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

2. В любом случае необходимо использовать анализ граничных значений.

3. Определить правильные и неправильные классы эквивалентности для входных и выходных данных и дополнить, тесты.

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

5. Проверить логику программы на полученном наборе тестов.

Нисходящее тестирование начинается с верхнего, головного класса (или модуля) программы.

Данная стратегия предполагает начало тестирования с терминальных классов.

Преимущества Недостатки
Нисходящее тестирование
1. Имеет преимущества, если ошибки главным образом в верхней части программы. 2. Представление теста облегчается после подключения функции ввода-вывода. 3. Раннее формирование структуры программы позволяет провести ее демонстрацию пользователю и служит моральным стимулом. 1. Необходимо разрабатывать заглушки. 2. Заглушки часто оказываются сложнее, чем кажется вначале. 3. До применения функций ввода/вывода может быть сложно представлять тестовые данные в заглушки. 4. Может оказаться трудным или невозможным создать тестовые условия. 5. Сложнее оценка результатов тестирования. 6. Допускается возможность формирования представления о совмещении тестирования и проектирования. 7. Стимулируется незавершение тестирования некоторых классов/модулей.
Восходящее тестирование
1. Имеет преимущества, если ошибки главным образом в классе/модуле нижнего уровня. 2. Легче создавать тестовые условия. 3. Проще оценка результатов. 1. Необходимо разрабатывать драйверы. 2. Программа как единое целое не существует до тех пор, пока не добавлен последний класс/модуль.

Оно включает в себя следующие этапы:

1) задаться целью теста;

2) написать входные значения;

3) написать предполагаемые выходные значения;

4) выполнить тест и зафиксировать результат;

5) проанализировать результат.

 

 


Лекция 16 «Тестирование ОО систем»

 

Объектно-ориентированный подход не гарантирует создания правильных программ. Следовательно, тестирования так же необходимо для объектно-ориентированных программ, как и для структурных.

Основные свойства объектов добавляют новые аспекты тестирования.

Инкапсуляция.

Наследование.

Полиморфизм.

Несколько вопросов, которые необходимо разрешить для успешного проведения тестирования:

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