Тестирование программного модуля.



Цель тестирования модуля: выявить несоответствие логики работы модуля с его спецификацией.

Модуль – минимальная единица программирования (процедура, метод, класс).

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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!