К. П. Ивкин московский инженерно-физический институт (государственный университет) автоматизированная система минимизации количества тестов регрессионного тестирования вдоклад

Вид материалаДоклад
Подобный материал:

УДК 004.9(06) Автоматизированные системы обработки информации и управления

К.П. ИВКИН

Московский инженерно-физический институт (государственный университет)


АВТОМАТИЗИРОВАННАЯ СИСТЕМА

МИНИМИЗАЦИИ КОЛИЧЕСТВА ТЕСТОВ

РЕГРЕССИОННОГО ТЕСТИРОВАНИЯ


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


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


Существует несколько методик минимизации наборов тестов (выборочного тестирования):

- случайные методы;

- безопасные методы;

- методы минимизации;

- методы покрытия.


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

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

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

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

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


ISBN 978-5-7262-0883-1. НАУЧНАЯ СЕССИЯ МИФИ-2008. Том 13