Методы и средства инженерии программного обеспечения


Динамические методы тестирования


Динамические методы используются в процессе выполнения программ. Они базируются на  графе, который  связывает причины ошибок с ожидаемыми реакциями на эти ошибки. В процессе тестирования накапливается информация об ошибках, которая используется при оценке надежности и качества ПС.

Динамическое тестирование ориентировано на  проверку корректности ПС на множестве тестов, прогоняемых по ПС, в целях проверки и  сбора данных на этапах ЖЦ и проведения измерения отдельных элементов тестирования для оценки характеристик качества, указанных в требованиях посредством   выполнения системы  на ЭВМ. Оно основывается на  систематических, статистических, (вероятностных) и  имитационных  методах.

Дадим краткую характеристику этим методам.

Систематические методы   тестирования делятся  на  методы,  в которых программы  рассматриваются  как  "черный ящик" (используется информация  о  решаемой  задаче),  и  методы,  в которых программа    рассматривается    как   " белый   ящик" (используется информация о структуре программы). Этот вид  называют тестированием с управлением по данным  или  управлением  по входу–выходу. Цель –   выяснение обстоятельств, при    которых  поведение    программы не соответствует ее   спецификации.  При  этом количество обнаруженных ошибок в программе является критерием качества  входного тестирования.

Целью  динамического тестирования программ  по  принципу  «черного  ящика» является выявление одним тестом максимального числа  ошибок с   использованием небольшого подмножества  возможных входных данных.

Методы «черного ящика» обеспечивают:

– эквивалентное разбиение;

– анализ граничных значений;

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

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




- Начало -  - Назад -  - Вперед -