Особенности тестирования объектно-ориентированных программных систем
Проектирование и исполнение теста
Сравнение
Восходящее тестирование
Нисходящее тестирование
Нисходящее и восходящее тестирование
Стратегия
Предположение об ошибке
При наличии определенной программы тестировщик интуитивно предполагает вероятные типы ошибок и затем разрабатывает тесты для их обнаружения.
Приемлемая стратегия состоит в следующем:
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 «Тестирование ОО систем»
Объектно-ориентированный подход не гарантирует создания правильных программ. Следовательно, тестирования так же необходимо для объектно-ориентированных программ, как и для структурных.
Основные свойства объектов добавляют новые аспекты тестирования.
Инкапсуляция.
Наследование.
Полиморфизм.
Несколько вопросов, которые необходимо разрешить для успешного проведения тестирования:
- Какая часть унаследованных свойств должна заново тестироваться.
- Когда и как можно проверять информацию о состоянии класса.
- Как можно проверить поведение системы, зависящее от состояния, когда отсутствует единый механизм управление состояниями в программе.
- Как следует тестировать интеграцию классов, и какие стратегии тестирования применять.