Тестирование программного модуля.
Цель тестирования модуля: выявить несоответствие логики работы модуля с его спецификацией.
Модуль – минимальная единица программирования (процедура, метод, класс).
1.Составляется в соответствии со спецификацией тест как «черный ящик». Из спецификации выявляются классы эквивалентности для входных и выходных данных. Класс эквивалентности – множество однородных наборов данных.
2.Тестирование базового пути (каждая ветвь при ветвлении в модуле должна быть выполнена хотя бы 1 раз).
3.Выполняется в соответствии со стратегией содержательного тестирования (проверяется каждая ветвь).
4.Тестирование прохождения циклов (проверяются не все значения, по одному из диапазонов значений – крайние, промежуточное, все значения находятся в области допустимых значений).
5.Тестирование устойчивости к данным. Локальные переменные приняли граничные значения, возникла ситуация деления на ноль, переполнение.
Восходящее и нисходящее тестирование.
Цель интегрированного тестирования - выявление ошибок в механизмах интеграции модулей.
Порядок выполнения ИТ определяется порядком проектирования.
Восходящее тестирование – программа тестируется снизу вверх:
-автономно тестируются только модули нижнего уровня (модули, не вызывающие другие модули);
- далее происходит интеграция на более высоких уровнях.
Для тестирования снизу вверх необходимо количество драйверов (процедура, которая используется для тестирования других процедур) равное количеству модулей, за исключением родительского (корневого) модуля.
|
|
Недостаток: поздно выявляются принципиальные ошибки (только на высших уровнях).
Нисходящее тестирование – тестирование сверху вниз.
Автономно тестируется только модуль первого уровня.
На первом этапе для этого модуля создаются заглушки (stub), эмитирующие модули нижнего уровня. Так как это заглушки, а не сами модули, то тестирование ненадежно.
Ненадежность тестирования:
1. заглушки, а не сами модули (на первом этапе)
2. ограничение передачи данных модуля верхнего уровня
3. необходимость модуля нижнего уровня для модуля верхнего уровня (модулей ввода-вывода), решением чего является создание веток к модулям ввода/вывода
Недостатки:
1. низкая надежность тестирования модуля нижнего уровня (из-за недостаточности данных у модулей верхнего уровня)
2. наличие большого числа отложенных решений (создание большого количества заглушек или модулей-каркасов нижнего уровня).
Достоинства:
1. на ранних стадиях выявляются ошибки на функциональном уровне (функциональное тестирование);
2. меньшее количество тестов из-за ограниченности данных в дочерних модулях;
|
|
3. отсутствие необходимости в разработке драйверов (драйвер создать сложнее, чем заглушки).
Методы тестирования: модифицированный нисходящий, монолитный, сандвич, модифицированный сандвич.
Модифицированный нисходящий метод – отличается от нисходящего метода тем, что каждый модуль тестируется автономно перед включением его в интегрируемую систему, что ведет к повышению надежности тестирования.
Монолитное тестирование – метод большого скачка
1. Все модули пишутся одновременно.
2. Все модули собираются вместе (мгновенная сборка)
3. Производится тестирование сверху вниз.
Недостатки:
1. модули создавались одновременно, следовательно, несогласованность данных и большое количество ошибок, которые очень сложно локализовать;
2. модули тестируются ненадежно (см. тестирование сверху вниз: невозможность выполнить полное тестирование из-за недостаточности данных на нижних уровнях иерархии модулей).
3. для каждого модуля необходимо проектировать драйвер и заглушки на первой стадии проектирования.
4. выявление принципиальных ошибок происходит на нижних этапах проектирования.
Достоинство – распараллеливание труда; высокая точность планирования работы.
|
|
Метод сандвича – комбинация нисходящего и восходящего метода.
Проектирование, сборка и тестирование с двух сторон, с верхних и нижних уровней, а затем стыковка этих сторон:
- модули нижних уровней тестируются снизу вверх;
- модули верхних уровней тестируются сверху вниз;
- необходимость определения уровня соединения модулей.
Достоинства: раннее начало интеграции системы, надежное тестирование модулей низкого уровня.
Модифицированный метод сандвича:
- тестирование верхних модулей выполняется модифицированным нисходящим методом
- тестирование модулей нижнего уровня – восходящим тестированием.
Показатели:
1. время сборки (чем раньше выполнится сборка, тем раньше выявляются ошибки в интерфейсах).
2. время создания работающего варианта (чем раньше создается рабочий вариант, тем раньше выявляются принципиальные ошибки)
3. необходимость в драйверах (чем больше драйверов, тем хуже).
4. необходимость в заглушках (чем больше, тем дольше тестирование).
5. параллельность в начале работы (чем выше параллельность работы, тем лучше (не во всех случаях)
6. возможность тестирования отдельных модулей (такая возможность обеспечивает более надежное тестирование)
|
|
7. возможность планирования процессов тестирования (возможность управления проектом более качественно)
Восходящее: 1. рано; 2. поздно; 3. да; 4. нет; 5. средняя; 6. легко; 7. легко.
Нисходящее: 1. рано; 2. рано; 3. нет; 4. да; 5. слабая; 6. трудно; 7.трудно.
Модифицированный нисходящий: 1.рано; 2.рано; 3.да; 4.да; 5.средняя; 6.легко ; 7.трудно.
Монолитный: 1.поздно; 2.поздно; 3.да; 4.да; 5.высокая; 6.легко; 7.легко. (худший)
Сандвича: 1.рано; 2.рано; 3.частично; 4.частично; 5.средняя; 6.средняя; 7.трудно.
Модифицированный сандвича: 1.рано; 2.рано; 3.да; 4.частично; 5.высокая; 6.легко; 7.трудно.
Дата добавления: 2018-06-01; просмотров: 1166; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!