<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>РЕГРЕССИВНОЕ ТЕСТИРОВАНИЕ: МЕТОДЫ И БУДУЩИЕ НАПРАВЛЕНИЯ ИССЛЕДОВАНИЙ</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>03187, Київ, проспект Академіка Глушкова</institution>
          ,
          <addr-line>40. тел.: 526 3309. E-mail:</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2014</year>
      </pub-date>
      <fpage>133</fpage>
      <lpage>145</lpage>
      <abstract>
        <p>Критическим этапом в жизненном цикле программного обеспечения является этап сопровождения, на котором предполагается поддержка командой разработчиков программного обеспечения, поставляемого их клиентам. По таким причинам как исправление ошибок, сопровождение программного обеспечения приводит к расширению его возможностей, отказу от неактуальных возможностей и оптимизации. Измененное или модифицированное программное обеспечение требует тестирования, которое известно как регрессивное тестирование. В статье представлен обзор двух основных групп методов регрессивного тестирования (методы выбора регрессивных тестов и методы приоритезации) и обсуждение открытых проблем и потенциальных направлений будущих исследований. The most crucial phase in the software life cycle is maintenance phase, in which the development team is supposed to maintain the software which is delivered to the clients by them. Software maintenance results for the reasons like error corrections, enhancement of capabilities, deletion of obsolete capabilities and optimization. Now the changed or modified software needs testing known as regression testing. This paper surveys the two main groups of methods of regression testing (regression test selection methods and methods of prioritization) and discuss open problems and potential directions for future research Введение Одним из наиболее важных этапов жизненного цикла программного обеспечения (ПО) является этап сопровождения. Согласно данным, приведенным в [1], затраты на этом этапе могут превышать две трети затрат на весь жизненный цикл ПО. На этом этапе разработчику от пользователей ПО поступают сообщения об обнаруженных дефектах, запросы на расширение, улучшение или адаптирование к изменяющейся среде существующей функциональности, предложения по переносимости его на различные платформы или языки программирования и т. п. В течение некоторого времени вся эта информация интегрируется, а затем осуществляется модификация данного ПО, чтобы удовлетворить потребности пользователей. Новая версия ПО обязательно подвергается, так званому, регрессивному тестированию (РТ), чтобы гарантировать, что никакие новые ошибки (называемые ошибками регресса) не были введены в ранее проверенный код (т. е. неизмененные части программы) [2]. После того как РТ завершено, выпускается новая версия ПО, которая затем подвергается подобному циклу. РТ является дорогим действием. Оно требует больших ресурсо-временных затрат, которые часто составляют почти половину всех затрат на поддержку ПО [2]. Поэтому м и н и м и з а ц и я р е с у р с о - в р е м е н н ы х з а т р а т н а р е г р е с с и в н о е т е с т и р о в а н и е является очень важной как научной, так и прикладной проблемой, решение которой позволит улучшить качество и существенно сократить общие затраты на поддержку ПО. Несмотря на большое количество появившихся в последние два десятилетия публикаций, посвященных этой проблеме, она еще весьма далека от своего полного решения. Как показывают результаты некоторых исследований [3], подходы, которые чаще всего используются на практике для идентификации необходимых регрессивных тестов, основаны или на экспертной оценке, или на некоторой форме ручного анализа программы. Поскольку выбор тестов на основе экспертной оценки имеет тенденцию становиться все менее эффективным и надежным с увеличением размера и сложности ПО, а при ручном анализе ПО даже для умеренно сложных программ, обычно, чрезвычайно трудно вручную идентифицировать тесты, которые имеют отношение к изменениям в ПО, то в конечном итоге все это приводит к излишне высоким стоимостновременным затратам на РТ и значительной потере тестов, которые в состоянии обнаружить ошибки регресса. Можно констатировать, что на сегодня при наличии большого количества публикаций, посвященных различным аспектам РТ, все же наблюдается острая нехватка инструментальных средств поддержки автоматической генерации наборов регрессивных тестов, разработка которых требует дальнейших серьезных как теоретических, так и экспериментальных исследований. В данной работе для лучшего понимания состояния дел в области РТ мы сначала рассмотрим две основные группы методов (подходов) к РТ, а затем остановимся на некоторых перспективных, по нашему мнению, направлениях будущих исследований.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Регрессивное тестирование заключается в многократном использовании T0 на P1 и определении новых
тестов, необходимых для эффективной проверки кода, а также добавленных или измененных функциональных
возможностей при разработке P1 [4]. Одним из стандартных методов регрессивного тестирования (РТ) является
больших ресурсо-временных затрат, необходимых для выполнения всего набора тестов, и ограничений графика
выпуска, которому часто подвергаются проекты ПО, этот метод практически неприемлем [
        <xref ref-type="bibr" rid="ref41">2</xref>
        ]. Другой простой
метод РТ состоит в произвольном выборе тестов из T0 . Стоимость и время на его проведение могут быть
заметно меньше чем на полное перетестирование, однако случайный выбор тестов может пропустить
существенно больше ошибок регресса. Поэтому этот метод тоже не представляет особого практического
интереса.
      </p>
      <p>На сегодня можно выделить две основные группы методов РТ: (1) методы Выбора Регрессивных Тестов
(ВРТ), (2) методы приоритезации (т. е. установления приоритетов) тестов.</p>
      <p>П р о б л е м а в ы б о р а р е гр е с с ив но го т е с т а формально может быть определена таким образом [5]:
Дано: P0 , P1 и T0 .
Приоритезация регрессивных тестов упорядочивает их таким образом, чтобы в процессе РТ тесты с
более высоким приоритетом (относительно некоторой метрики) всегда выполнялись раньше, чем тесты с более
низким приоритетом. В качестве такой метрики в большинстве случаев берется метрика APFD (Average of the
Percentage of Faults Detected) или ее модификации [7]. Она выражается в процентах и имеет вид:
n
TFi
APDF  1  i1
nm
 1 ,
2n
где n – количество тестов в наборе; m – количество ошибок, выявленных данным набором тестов; T Fi –
порядковый номер теста в упорядоченном наборе, первым обнаружившим i -ю ошибку.</p>
      <p>Чем больше ее значение, тем быстрее выявляются ошибки.
2. Методы выбора регрессивных тестов</p>
      <p>В зависимости от парадигмы программирования методы ВРТ по разному устанавливают компромис
между стоимостью выбора и выполнения тестов, с одной стороны, и эффективностью обнаружения ошибок – с
другой. Далее рассмотрим подходы к ВРТ для процедурных, объектно-ориентированных,
компонентноориентированных и аспектно-ориентированных программ, а также приложений с базами даннях,
Вебприложений и сервисов.</p>
      <p>2.1. Методы ВРТ для процедурных программ. Различные подходы к ВРТ для таких программ можно
условно сгруппировать в следующие основные классы:
1) методы на основе анализа потока данных;
2) методы, основанные на срезах;
3) методы, основанные на брандмауэре или брандмауэр-методы;
4) методы на основе различий;
5) методы, основанные на анализе потока управления.
Методы, основанные на анализе потока данных. Эти методы ВРТ обнаруживают пары «определение –
использование» переменных, которые затрагиваются модификациями программы, и выбирают тесты, которые
отрабатывают пути от определения измененных переменных до их использования. Методы ВРТ на основе
потока данных, приведенные в [8], обычно выполняют анализ либо путем отработки одного изменения за другим
и постепенного обновления информации потока данных в P1, либо вычисляют полную информацию потока
данных для P0 и P1 и сравнивают различия между парами «определение - использование». Оба эти метода
требуют сохранения информации потока данных в ходе сеансов тестирования или повторного вычисления в
начале каждого сеанса тестирования.</p>
      <p>Методы, основанные на срезах. Современные технологии создания программ предполагают
так называемый slicing — выделение из программы ее определенных частей, называемых срезами
программы. Agrawal и другие [9] предложил ряд методов ВРТ, основанных на срезах программы. Цель этих
методов состоит в выборе таких тестов, которые могут порождать разные выходы при их выполнении с
измененной версией программы P1 . Авторы определяют срез теста t как набор выполняемых операторов
программы, когда P0 выполняется с t . Они предложили подходы к вычислению четырех типов срезов:
исполнительный срез, динамический срез, релевантный срез и приближенно релевантный срез. Методы к ВРТ,
предложенные в [9], выбирают тест t для РТ только в том случае, если срез t , вычисленный с помощью любого
из четырех подходов, содержит оператор, измененный в P1 .</p>
      <p>
        Брандмауэр-методы уровня модуля. Брандмауэр-метод ВРТ, впервые предложенный Leung и White
[
        <xref ref-type="bibr" rid="ref19">10</xref>
        ], основан на анализе зависимостей по данным и управлению между модулями в процедурной программе.
Брандмауэр определяется как совокупность всех измененных модулей в программе, а также тех модулей,
которые взаимодействуют с модифицированными модулями. Брандмауэр представляет собой
концептуальную границу, которая помогает ограничить количество необходимого повторного тестирования, определяя и
ограничивая тестирование только теми модулями, которые были подвергнуты изменениям. Технологии
брандмауэра используют граф вызовов для представления структуры потока управления программы.
из таких методов на основе изменения сущности кода был предложен Chen и др. в [11] для С программ.
Авторы разложили элементы программы на функциональные и нефункциональные сущности кода. Сущность
кода определяется либо как непосредственно исполняемая единица кода, например, функция или оператор,
либо неисполнимая единица, такая как глобальная переменная или макрос. Оригинальная программа P0
выполняется с каждым тестом t T0 . Анализируется информация о тестовом покрытии для определения набора
выполнимых сущностей кода, которые исполняются каждым тестом t T0 . Для каждой функции, которая
выполняется тестом t , вычисляется транзитивное замыкание глобальных переменных, макросов и т. д., на
которые ссылается функция. При изменении исходной программы P0 определяются все сущности кода,
которые были изменены для того, чтобы создать программу P1 . Тесты, использующие любую из измененных
сущностей, отбираются для регрессивного тестирования P1 .
      </p>
      <p>Vokolos и Frankl [12, 13] предложили метод ВРТ, который основан на определении расхождения
программ P0 и P1 , а не на использовании какого-либо промежуточного представления программ. Примитивное
определение текстового расхождения программ включает в себя поиск тривиальных различий между двумя
версиями, таких как вставка пустых строк, комментариев и т. д. Поэтому в предложенном подходе
программы перед сравнением преобразуется в каноническую форму [12]. Каноническая версия P0 снабжается
средствами измерения и затем выполняется с целью формирования информации тестового покрытия. Эта
информация идентифицирует базисные блоки, которые выполняются каждым тестом вместо операторов
программы. Канонические версии P0 и P1 синтаксически сравниваются для определения изменений в коде.
Ин</p>
      <p>Методы, основанные на анализе потока управления. В ряде работ были предложены методы ВРТ,
которые анализируют модели потока управления исходной программы для выбора тестов регрессии. Так, Laski и
Szermer [14] предложили технику идентификации кластера, основная концепция которой состоит в локализации
изменений программы в одну или несколько областей кода, именуемых кластерами. Кластеры определяются
как части кода с одним входом и одним выходом, которые изменялись от одной версии программы к другой.
Техника идентификации кластера моделирует программы P0 и P1 как графы потока управления (ГПУ),
обозначаемые G0 и G1 . Определяются вершины в G0 и G1 , которые соответствуют изменениям в коде, и набор
всех таких вершин образует кластер. Техника, основанная на идентификации кластера, использует информацию
о зависимости по управлению исходной и измененной процедурами для вычисления кластеров в двух графах.
Как только все кластеры идентифицированы в ГПУ P0 и P1 , каждый из них далее представляется единственной
вершиной для формирования сокращенного ГПУ. Анализ сокращенных графов потока основывается на
предположении, что любая сложная модификация программы может быть достигнута одной из следующих трех
операций: вставка кластера в код, удаление кластера или изменение функциональных возможностей кластера.</p>
      <p>Rothermel и Harrold в предложили метод ВРТ, который основан на пересечении ГПУ исходной и
измененной программ [15]. Этод метод более эффективен по сравнению с методами ВРТ на основе обхода графа,
основанных на моделях графа зависимостей [5].</p>
      <p>Ball в работе[16] предложил более точный метод ВРТ по сравнению с предложеным в [15], моделируя
ГПУ G0 для программы P0 специальным детерминированным конечным автоматом (ДКА), который допускает</p>
      <p>Брандмауэр-подходы. Эти подходы призваны определить классы, подвергшиеся воздействию в
измененной версии ПО. Брандмауэр может быть определен как набор всех затронутых классов, которые должны
быть повторно протестированы. В этих подходах выбираются все тестовые сценарии, которые охватывают по
меньшей мере один класс в брандмауэре.</p>
      <p>Kung и другие [18] предложили брандмауэр-подход к ВРТ для C++ программ на уровне классов. Было
предложено три модели для представления зависимостей между их различными элементами: диаграмма
отношений объектов (ДОО), диаграмма переходов блока (ДПБ) и диаграмма состояний объектов (ДСО). ДОО
является орграфом, который представляет наследование, отношения агрегирования и ассоциации и
концентрирует информацию о статических зависимостях между классами. Дуга в ДОО аннотируется типом отношения
(наследование, ассоциация, агрегация), которое существует между конечными вершинами, связанными с этой
дугой. ДПБ представляет интерфейс и структуру управления методами класса, а также связь класса с другими
классами в программе. ДСО предназначена для охвата динамического поведения классов.</p>
      <p>
        Jang и другие в [
        <xref ref-type="bibr" rid="ref37">19</xref>
        ] представили брандмауэр-подход на уровня методов к ВРТ для C++ программ. В то
время как в [18] и [20] в качестве единицы тестирования рассматриваются класс и оператор, в [
        <xref ref-type="bibr" rid="ref37">19</xref>
        ] в качестве
единицы повторного тестирования рассматривается метод и ставится цель идентифицировать все затронутые
методы. Авторы определили некоторые общие типы модификаций, возможных для C ++ программ, и для
каждой модификации построили брандмауэр уровня метода, чтобы идентифицировать влияние изменений.
      </p>
      <p>Подходы на основе модели программы. Rothermel и Harrold были одними из первых, кто предложил
такой поход в [20]. Они разделили проблему ВРТ для ООП на две части: ВРТ прикладной программы и ВРТ
измененных или производных (полученных) классов. Для ВРТ прикладной программы в подходе моделируется
оригинальная программа P0 и измененная программа P1 с помощью моделей Графа Межпроцедурных
Зависимостей Программ.</p>
      <p>В работе [21] предложен подход ВРТ для C ++ программ, основанный на анализе представлений потока
управления оригинальной и измененной программ, расширяющий поход, что дан в [15]. Так как ГПУ
представляет информацию о потоке управления только единственного метода, были введены понятия графа
межпроцедурного потока управления (ГМПУ) и графа потока управления класса (ГПУК), чтобы представить поток
управления многофункциональных программ и объектно-ориентированных программ, соответственно. ГМПУ
используется для моделирования программ, имеющих единственную точку входа, тогда как класс может иметь
несколько точек входа [21]. ГПУК используется для моделей классов и состоит из индивидуальных ГПУ для
всех методов класса. Учитывая модели графа для исходной и модифицированной программ, алгоритм ВРТ [21]
расширяет подход, основанный на обходе графа [15], чтобы пересечь модели и выбрать соответствующие
регрессивные тесты.</p>
      <p>В работе [22] впервые был предложен безопасный подход к ВРТ для Java-программ, основанный на
анализе потока управления. Их подход является адаптацией подходов к обходу графа, предложенных в [15,
21], и может работать с различными объектно-ориентированными свойствами, такими как наследование,
полиморфизм, динамическое связывание и обработка исключений. Подход включает три шага: построение
промежуточных представлений для исходных программ, анализ графов и определение набора опасных дуг и
выбора тестов.</p>
      <p>Необходимость объединения эффективности точных, но дорогих, подходов к ВРТ с подходами, которые
работают на более высоком уровне абстракции и являются относительно неточними, привела к поялению
подходов, основанных на разбиении. В работе [23] Orso и другие представили подход двухэтапного разбиения для
ВРТ больших Java программ. Подход работает в два этапа: разбиение и отбор. На этапе разбиения оригинальная
и измененная программы моделируются как графы отношений между классами [23]. На этапе отбора
проводится более детальный анализ разбиения и строятся модели JIG (Java Interclass Graph), представляющие
измененные области кода из разбиения. JIG модели затем анализируются с помощью метода ВРТ,
предложенного в [15] и отбираются тесты, которые выполняют затронутые части кода.</p>
      <p>Mansour и Statieh в [24] предложили двухэтапный подход ВРТ, предназначенный для C # программ. В их
подходе к ВРТ сначала создается диаграмма затронутых классов (ДЗК), основанная на изменениях, сделанных к
модифицированной программе. ДЗК представляет модификации, сделанные на уровне класса, интерфейса,
Вебили оконных сервисов и компонентов COM+. Затем используется критерий покрытия тестами, основанный на
ДЗК, для выбора подмножества тестовых сценариев.
пользуется для выбора соответствующих регрессивных тестов.</p>
      <p>Gorthi и другие [30] предложили подход к ВРТ, основанный на UML-диаграммах прецедентов. Они
использует концепцию поведенческих срезов, по которой прецеденты декомпозируются на пользовательские
действия, сопровождаемые некоторыми вычислениями и выходом.</p>
      <p>Briand и другие [26]. предложили подход к ВРТ, основанный на анализе моделей проекта UML. Их
подход предполагает полную отслеживаемость между моделью(моделями) проекта, кодом и тестами.
Отслеживаемость между проектом и тестами помогает ассоциировать изменения в моделях проекта с тестами, которые
должны быть выполнены, чтобы отработать затронутые части в проекте.
Подходы к ВРТ, основанные на спецификации. Часто сложность осуществления ВРТ состоит в том,
что тестировщики не имеют доступа к моделям проекта или фактическому исходному коду. В таких случаях
анализ на основе моделей или на основе кода невозможен. Эти ограничения заставили исследователей
развивать подходы к ВРТ на основе спецификаций, которые обычно доступны для тестировщиков. В этом контексте
нужно отметить, что, хотя мы классифицировали эти подходы как подтип объектно-ориентированных подходов
к ВРТ, они могут быть распространены на более широкий спектр парадигм программирования, таких как
компонентно-ориентированное.</p>
      <p>Chen и другие [31] предложили основанный на спецификации подход к ВРТ, который использует UML
диаграммы деятельности для моделирования потенциально затрагиваемых требований и поведение системы.
Они также классифицировали регрессивные тесты, подлежащие отбору, на целевые тесты и тесты
безопасности. Идея состоит в том, чтобы более тщательно проверить те части кода, для которых вероятность
присутствующей ошибки и ее стоимость (то есть, последствие воздействия) высока.</p>
      <p>Chittimalli и Harrold [32] предложили подход к ВРТ, который, по существу, основан на отслеживании
того, какие спецификации проверяются и какими тестами из T0 . Эта информация представляется в виде матрицы
покрытия требований между набором требований и тестами. Подход, предложенный в [23], использовался для
идентификации задетых частей кода, а также набора требований, которые затронуты вследствие изменений.</p>
      <p>2.3. Подходы к ВРТ для компонентно-ориентированного ПО. В модели разработки
компонентноориентированного ПО (КОПО) программный продукт создается путем интеграции различных компонентов
собственной разработки или сторонних поставщиков. Надежность КОПО в значительной степени зависит от
надежности отдельных компонентов. Эти компоненты, представляющие “черный ящик”, часто
модифицируются поставщиками с целью исправления ошибок и включения расширений. Поэтому при РТ КОПО должно
определяться, каким образом изменения, внесенные в компоненты, могут повлиять на выполнение прикладных
программ, использущих эти измененные компоненты. Подходы к ВРТ для традиционных программ не могут
обоснованно применяться для ВРТ ПО, использующего готовые коммерческие компоненты потому, что код
этих компонентов, как правило, не доступен. Остановимся кратко на основных методах ВРТ для КОПО.</p>
      <p>Методы ВРТ на основе метаконтента. Трудности неадекватного информационного обмена между
пользователем компонента (К-пользователем) и разработчиком компонента (К-разработчиком) во время
разработки КОПО могут быть преодолены путем совместного использования релевантной информации о
компоненте, необходимой для анализа ВРТ. Orso и другие [33] предложили концепцию информации об
измененном содержимом, называемую метаконтентом компонента, как средства совместного использования
информации об изменениях, которым компонент подвергается от версии к версии. Различные подходы к ВРТ
могут определять свои собственные наборы необходимых метаконтентов, которые должны быть разделены с
К-разработчиками. Ниже мы обсуждаем различные подходы ВРТ, основанные на метаконтенте.</p>
      <p>Orso A. в [34] предложен подход к ВРТ на основе покрытия кода для КОПО и существующих
процедурных подходов к ВРТ [11, 15]. В случае, если К-пользователи не знают о компонентах, которые претерпели
изменения, тогда во время ВРТ прикладного кода для РТ отбирается любой тест, в котором вызывается метод
модифицированных компонентов. Это может привести к выбору тестов, не связанных с конкретными
изменениями. С информацией об изменениях, внесенных в компоненты, можно сделать более точный выбор тестовых
сценариев.</p>
      <p>Mao и другие обнаружили [35], что применимость подхода, предложенного в [33, 34], ограничена из-за
того, что он нуждается в очень подробной метаконтентной информации, предоставляемой К-разработчиком.
Они предложили подходы ВРТ [35, 36], которые акцентируют внимание на доступности для К-пользователей
определенных данных от К-разработчиков.</p>
      <p>Подход, основанный на встроенных тест-скриптах. О подходе к ВРТ для КОПО, который использует
иной уровень информационного обмена между К-пользователями и К-разработчиками, сообщалось в [36].
Появление подхода обусловлено тем фактом, что только К-разработчики имеют подробные знания о работе
компонента и модификациях, подготовленных для каждой из его версий. Этот подход предлагает, чтобы
Кразработчики помещали тестовые скрипты в исходный код компонента во время модификации. Цель этих
тестовых скриптов заключается в сборе информации о шаблоне выполнения компонента во время исполнения
тестов. Эта информация помогает находить тесты, которые покрывают измененные операторы компонента.</p>
      <p>Подходы к ВРТ, основанные на моделях. Предложенные для КОПО подходы к ВРТ, основанные на
моделях, являются по существу развитием подходов к ВРТ, основанных на моделях, предложенных для
процедурных и ООП. Ниже мы кратко обсуждаем несколько таких подходов.</p>
      <p>В работе [37] предложен подход к ВРТ, использующий модели UML и OCL (Object Constraint Language).
Предполагается, что функциональные возможности, предоставляемые измененным компонентом, являются
сверхнабором функциональных возможностей, предоставленных оригинальным компонентом, то есть, новая
версия компонента может включать исправления ошибок и оптимизацию существующих функциональных
возможностей наряду с новыми функциональными возможностями, которые были введены.</p>
      <p>Wu и Offutt в [38] предложили другой подход к ВРТ, основанный на моделях UML, в котором
диаграммы кооперации и последовательности используются для анализа поведения потока управления компонента и
того, каким образом объекты взаимодействуют друг с другом через описание сообщений. Изменения,
внесенные в модифицированную версию компонента, будут отражаться в диаграмме кооперации как изменения в
методе класса или изменения в последовательностях взаимодействия.</p>
      <p>В работе [39] предложен подход к ВРТ для КОПО, в котором с использованием моделей анализируется
динамическое поведения (например, взаимодействие методов во время выполнения) компонентов для выбора
тестовых сценариев. В этом подходе есть возможность выбрать регрессивные тесты для компонентов,
разработанных в .NET и Java.</p>
      <p>Анализ исполняемого кода. Zheng и другие [40] предложили семейство подходов к ВРТ, основанных на
анализе исполняемого кода (двоичных файлов, таких как .dll. или lib) измененных компонентов. Эти подходы
известны как I-BACCI (Integrated-Black-box Approach for Component Change Identification, Интегрированный
подход “черного ящика” для идентификации изменения компонентов), с указанием номера версии для
конкретизации подхода семейства. Семейство I-BACCI использует подход брандмауэра для анализа связующего кода
(прикладного кода, который интегрирует готовые коммерческие компоненты).</p>
      <p>2.4. Подходы к ВРТ для аспектно-ориентированных программ. Парадигма
аспектноориентированной разработки ПО является относительно новой и направлена на улучшение разбиения ПО на
модули, изолируя низкоприоритетную и вспомогательную функциональность от основной и значимой для
приложения бизнес-логики. В традиционном программировании программисту свойственно иметь дело со
вспомогательными функциями и располагать их чередующимися пластами (называемыми слоями функциональности,
concerns) в основном коде приложения. Слои, которые распространяются через несколько модулей, называются
сквозными (пересекающими), образуя сквозную функциональность (crosscutting concerns).
Аспектноориентированное программирование (AOП) позволяет программистам отсылать эту вторичную сквозную
функциональность к автономным модулям, называемым аспектами. АОП усвоено многими
объектноориентированными языками программирования, а АОП-языки, такие как AspectJ, приобрели большую
популярность среди Java разработчиков. Введение аспектов обычно изменяет поведение исходной Java программы.
Таким образом, программы на AspectJ также должны быть подвержены тщательному РТ после внесения
изменений. Ниже мы обсуждаем предлагаемые подходы к ВРТ для AspectJ программ.</p>
      <p>ВРТ программ на AspectJ с использованием моделей потока управления. Zhao и другие [41]
предложили подход ВРТ для AspectJ-программ, расширяя работу Harrold и др. [22]. Они предложили граф потока
управления системой (ГПУС) и Граф Потока Управления Аспектом для моделирования AspectJ программ.
После того как построены графы ГПУС для оригинальной и измененной пары AspectJ программ, используется
метод поиска вглубь (depth-first search), предложенный в [22], для идентификации опасных дуг в графе.
Тестовые сценарии, которые выполняют опасные дуги, отбираются для РТ.</p>
      <p>Подход к ВРТ для AspectJ-программ, основанный на расширенном JIG. В работе [42] приведен
подход безопасного ВРТ, который основан на представлении вспомогательного графа для AspectJ программ.
Авторы сначала предложили модель графа, основанного на потоке управления для AspectJ-программ, назвав его
AspectJ межмодульный граф (AspectJ Intermodule Graph, AJIG), который является расширением межклассового
графа Java (JIG, Java Interclass Graph). Соответствующие регрессивные тесты выбираются путем сравнения
графов AJIG для P0 и P1. Авторы расширили алгоритм обхода графа, предложенный в [22]. Их двухфазный
алгоритм также обрабатывает ситуации, когда вершины назначения для пары сравниваемых дуг являются
следами описания оператора.</p>
      <p>2.5. Подходы к ВРТ для приложений с базами даннях. В настоящее время используется большое
количество приложений с базами данных (БД), которые обычно состоят из нескольких компонентов,
способствующих повышению их сложности [43]. Приложения с БД также должны часто изменяться из-за различных
требований, например, изменений в компонентах, растущего количества пользователей и данных и т. д.
Поэтому РТ приложений с БД является еще одним важным видом деятельности. Требования и проблемы при
выборе регрессивных тестов для приложений с БД отличаются от таковых для классов программ, которые мы
обсуждали до сих пор. При выборе регрессивных тестов для приложений с БД нужно учитывать следующие
особенности [43, 44]:</p>
      <p>– подходы к ВРТ для других классов программ неявно предполагают, что тесты независимы друг от
друга и могут быть выполнены в любом порядке. Это предположение неверно для приложений с БД, поскольку
выход теста может изменить состояние базы данных, влияя на выполнение других тестов. Поэтому помимо
глобального состояния программы, для приложений с БД необходимо рассматривать состояния базы данных в
ходе ВРТ;</p>
      <p>– в процессе РТ состояние базы данных обычно приходится многократно сбрасывать, то есть,
восстанавливать начальную конфигурацию БД. Переустановка БД является дорогостоящей деятельностью как с точки
зрения затрат, так и времени;</p>
      <p>– языки БД поддерживают такие возможности как структурированные запросы, ограничения
целостности, обработка исключений и триггеры таблиц, которые усложняют анализ влияния измененных частей
программы. Например, срабатывание триггеров может создать неявные зависимости межмодульного управления.
Традиционные понятия безопасности и зависимостей не могут быть применены в РТ приложений с БД,
поскольку соответствующие подходы были разработаны для простых приложений. В этой связи для
приложений с БД были предложены несколько подходов к ВРТ, которые мы кратко рассмотрим.</p>
      <p>Двухэтапный подход ВРТ для систем, основанных на SQL. В этом подходе, предложенном Haraty и
др. [44], помимо традиционных зависимостей по управлению и данным между элементами в приложении с БД,
определяются следующие аспекты, которые необходимо учитывать:</p>
      <p>зависимости потока данных – зависимости потока данных могут возникать между модулями базы
данных за счет использования сквозных таблиц модулей;</p>
      <p>зависимости компонентов – они возникают между различными модулями БД из-за срабатывания
триггеров таблиц, изменений в таблицах или представлениях, а также вследствие изменения инструкций SQL;
обработка исключений (особых случаев) – возникновение исключительных состояний может повлиять на
отношения в потоке управления, которые должны учитываться в ходе анализа ВРТ.</p>
      <p>Подход безопасного ВРТ, основанный на ГПУ. Willmor и Embury [45] развили алгоритм ВРТ,
основанный на безопасном анализе потока управления, предложенном Rothermel и Harrold [15] для процедурных
программ, применительно к приложениям с БД. ВРТ, основанный только на отношениях
определениеиспользование данных, не безопасен для приложений с БД, поскольку возможна ситуация, когда инструкция
запишет в БД какие-то данные, которые позже будут прочитаны оператором программы, обрабатывающим
более раннюю инструкцию в каком-то пути исполнения [45]. Поэтому авторы ввели понятие зависимостей базы
данных, чтобы охватить дополнительные зависимости, которые возникают между элементами в программе
базы данных.</p>
      <p>Подход к ВРТ для Web приложений, основанный на срезах. Такой подход предложили Xu и другие в
[46]. Они предполагали, что Веб-приложения состоят из множества статических HTML-страниц и программ,
выполняемых на стороне сервера. Типы изменений, которым может подвергнуться страница HTML, могут быть
разделены на следующие основные классы: вставка элемента страницы (например, якорь, гиперссылка и т. д.),
удаление элемента страницы, вставка страницы и удаление страницы. Более сложные изменения
декомпозируются на комбинацию из этих базовых модификаций.</p>
      <p>Подход к ВРТ, основанный на моделях системы. Tarhini и другие [47]. предложили подход
безопасного ВРТ для приложений на основе Веб-сервисов. В подходе Веб-сервисы определяются как автономные
компонентные приложения, которые находятся в разных местах и имеют коммуникацию с помощью
XMLсообщений, используя интерфейсы SOAP. Коммуникация, использующая обмен сообщениями, может также
быть ограничена во времени. Услуги, предоставляемые Веб-сервисом, являются коллективно используемыми с
помощью спецификаций WSDL.</p>
      <p>Подходы к ВРТ, основанные на анализе моделей потока управления. Подход к ВРТ, предложенный
Ruth и другие [48], является подходом серого-ящика (gray-box), так как сложно провести РТ белого ящика
(white-box) для Веб-сервисов из-за того, что зачастую исходный код компонентов не может быть доступным
разработчикам Веб-сервисов. Это подход серого-ящика, поскольку он не требует наличия исходного кода
Вебсервисов. Вместо этого предполагается, что поставщики компонентных Веб-сервисов смогут предоставить
следующую информацию в виде метаданных наряду с новым вариантом сервиса: спецификация WSDL, набор
тестов, ГПУ для Веб-сервисов и данные о покрытии тестами.</p>
      <p>Lin и другие [49] предложили подход безопасного ВРТ для Веб-сервисов Java на основе преобразования
кода. В их подходе моделируется Java-код на стороне клиента и на стороне сервиса как единая объединенная
программа. Услуги и интерфейсы, предоставляемые Веб-сервисом, доступны из спецификаций WSDL.
3. Методы приоритезации</p>
      <p>
        Чтобы лучше понять динамику исследований в области приоритезации регрессивных тестов, было, с
определенной долей условности, выделено шесть основных категорий методов и подходов, которые кратко
описаны ниже.
Подход, основанный на покрытии. Приоритезация на основе покрытия базируется на том факте, что
чем большее покрытие достигнуто тестовым набором, тем больше шансов обнаружить ошибки на ранних
стадиях процесса тестирования. В работе [50] Rothermel и др. продемонстрировали четыре метода на основе
покрытия: общее/дополнительное, операторов/ветвей, соответственно. При сравнении этих методов
использовался инструмент для анализа программ «Аристотель» [
        <xref ref-type="bibr" rid="ref24">51</xref>
        ], а результаты были измерены с помощью
метрики APFD. Упорядочение тестового набора проводилось по степени способности к быстрому
обнаружению ошибок. При сравнении методов было установлено, что приоритезация по общему покрытию
выигрывает у метода приоритезации по дополнительному покрытию. Эта работа была расширена Elbaum и др.
в [6] для заданной версии программы. Авторы предложили восемь методов, из которых «общая
функциональность» и «дополнительная функциональность» были основаны на покрытии. При этом скорость
обнаружения ошибок улучшилась. В результате сравнения всех 12 методов (4 на уровне операторов и 8 на
уровне функций) худшим признан метод fn-total, лучшим - fn-fi-fep-addtl.
      </p>
      <p>Srivastava и Thigarajan [52] предложили подход к приоритезации на основе двоичного кода. Была
построена тестовая система Echelon для расположения по приоритетам множества ошибок на основе
изменений, внесенных в программу. Предлагаемое преимущество использования двоичного представления
состоит в устранении шага перекомпиляции для покрытия набора ошибок и т. д., что облегчает интеграцию
процесса встраивания тестовой системы в производственную среду.</p>
      <p>Приоритезация на основе графовой модели Веб-системы ISELTA с использованием подхода нечеткой
кластеризации была предложена Belli и другие в [53]. Показано, что этот подход полезен, когда наборы тестов
упорядочиваются в рамках ограниченного времени и способа. Влияние ограничения времени на стоимость РТ
были изучены Do и другие [54]. Они предложили четыре метода приоритезации, два из которых были основаны
на общем/дополнительном покрытии и два на сетях Байеса. Метод с дополнительным покрытием оказался
более эффективным, чем с общим.</p>
      <p>Jiang и другие [55] предложили девять основанных на покрытии методов приоритезации тестов при
адаптивном случайном тестировании (Adaptive Random Test, АRТ). Эти методы были разделены на три группы,
а именно: maxmin, maxavg и maxmax. Для каждой группы уровень покрытия данных основывался на
операторах, функциях и ветвях. Сравнение предлагаемых методов из случайным упорядочением показало, что
ART методы являются более эффективными, чем случайное упорядочение. Также были найдены лучший и
худший методы среди всей группы ART методов.</p>
      <p>В работе [56] Bryce и другие рассмотрен основанный на покрытии подход, касающийся разработки
единой абстрактной модели тестирования путем комбинирования GUI (интерфейса пользователя) и
Вебприложений. Определение приоритетов было выполнено на основе покрытия взаимодействующих значений
параметров или частоты. Был также определен обобщенный критерий приоритезации как для GUI, так и для
Веб-приложений.</p>
      <p>Подход, основанный на изменении. Цель этого подхода состоит в установлении приоритетов тестов на
основе изменений, сделанных в программе. Впервые этод подход был предложен Wong и другие [57]. Korel и
другие [58] предложили методы избирательной приоритезации тестов на основе системной модели и
приоритезации тестов на основе модельной зависимости с использованием расширенных конечных автоматов
для системных моделей. Хотя последний метод был более дорогим, улучшение в эффективности
приоритезации наблюдалось при использовании метрик скорости обнаружения ошибки для обоих методов. В
работе [59] Korel и другие предложили еще пять эвристических методов и сравнили все семь методов. Метод,
основанный на модельной зависимости, показал лучшую эффективность из всех семи методов.</p>
      <p>Основанный на модели подход к приоритезации тестов, опирающийся на связи трассируемости между
моделями, тестами и артефактами кода, был предложен Filho и др. в [60]. Этот метод поддерживает РТ,
основанное на изменениях, используя временные метки и приоритезацию на основе свойств. Авторы
выполняли приоритезацию и фильтрацию как часть процесса генерации тестов, использующего модификаторы
набора тестовых сценариев.</p>
      <p>Подход, основанный на ошибках. Методы приоритезации на основе ошибок впервые были предложены
в [50]. Согласно этому подходу свойство ошибки быть выявленной тестом зависит не только от того, будет ли
протестирован определенный оператор, но также от вероятности того, что ошибка в операторе повлечет за
собой отказ этого теста. В исследовании были представлены два метода, касающиеся потенциала теста в
выявлении ошибки – метод приоритезации с учетом FEP (Fault Exposing Potential – Потенциал выявления
ошибки) при общем покрытии и метод приоритезация по FEP при дополнительном покрытии.</p>
      <p>Elbaum и другие в [6] представили шесть методов функционального уровня для определения
приоритетности тестов относительно ошибок. Два из них являются методами приоритезации функционального
уровня с учетом FEP; два других основаны на индексе ошибок (fault index, FI), который представляет собой
склонность к содержанию ошибок в соответствующей функции, и еще два объединяют как FI, так и FEP, сперва
применяя общую приоритезацию индекса ошибок ко всем тестам, а затем, в качестве вторичного
упорядочивания, приоритезацию FEP к тем из них, которые обладают равными значениями FI. Было
предоставлено достаточно статистических доказательств, чтобы показать, что методы функционального уровня
менее эффективны, чем методы уровня оператора.
В дополнение к вышеупомянутым методам в [7] представлено еще четыре метода приоритезации на
уровне функций, которые являются DIFF-базируемыми методами. Эти методы требуют вычисления
синтаксических различий между двумя версиями программы. Степень изменения измеряется для каждой
функции, присутствующей в обеих версиях, с помощью количества строк, добавленных, удаленных или
измененных в выводе команды UNIX diff, примененной к обеим версиям. Два из этих четырех методов
основаны только на DIFF, а два других сочетают DIFF с FEP.</p>
      <p>Подход на основе требований. Srikant и другие [61] был предложен метод системного уровня PORT V
1.0 (Prioritization Of Requirements for Testing) для приоритезации на основе требований и разработан
инструмент для его реализации. Подход основан на четырех факторах: назначенных потребителем приоритетов
требований, сложности реализации с точки зрения разработчика, изменчивости требований и
предрасположенности требований к ошибкам. Цель состоит в раннем выявлении серьезных ошибок и
улучшении качества ПО с точки зрения потребителя. Более серьезными считались ошибки в требованиях с
большим диапазоном PFV, где PFV – значение коэффициента приоритетов для конкретного требования,
вычисленное по формуле, предложенной авторами. Исследование показало, что метод PORT может повысить
эффективность тестирования благодаря концентрации внимания на наиболее значимой для потребителя
функциональности и на улучшении скорости обнаружения серьезной ошибки, тем самым минимизируя область
появления ошибок.</p>
      <p>Krishnamoorthi и другие в [62] для повышения удовлетворенности пользователя и скорости обнаружения
серьезной ошибки была представлена модель приоритезации тестов для системного уровня исходя из
спецификации требований к ПО. Модель расположила по приоритетам тесты системы, основываясь на
следующих шести факторах: приоритет потребителя, изменения в требованиях, сложность реализации,
удобство и простота использования, поток управления в приложении и последствия ошибки. Другой метод тех
же авторов был представлен в [63]. Он отличался только по двум факторам, затрагивающим алгоритм
установления приоритетов. Факторы, представленные в [63]: назначенный потребителем приоритет, изменения
в требованиях, сложность реализации кода с точки зрения разработчика, последствия ошибки, полнота и
трассируемость. При сравнении методов с общим покрытием операторов и общим покрытием методов было
установлено, что для метода авторов скорость обнаружения серьезных ошибок возрасла.</p>
      <p>Подход, базирующийся на прошлом опыте. Kim і Porter [64] предложили метод установления
приоритетов, основанный на исторических данных выполнения программы. Они показывают, что историческая
информация может быть полезной для сокращения затрат и увеличения эффективности процесса РТ. Для этого
ими было введено понятие РТ с полной памятью.</p>
      <p>Fazlalizadeh и другие [65] усовершенствовали базируемый на прошлом метод приоритезации,
предложенный в [64] для ускорения обнаружения ошибок в средах с ограниченным ресурсом и временем. В
работе представлено уравнение, которое учитывает историческую эффективность тестов в обнаружении
ошибки, историю выполнения тестов и последний приоритет, присвоенный тестам.</p>
      <p>Подход, на основе метаэвристик глобальной оптимизации. Метод установления приоритетов с
учетом времени, использующий генетический подход, был предложен Walcott и другие [66]. Эксперимент
проводился на уровне детализации программ двух объектов: Gradebook и JDepend. Были задействованы
инструменты отслеживания процесса Emma и Linux и результаты были определены количественно, используя
метрику APFD. В конечном счете, осуществление приоритезации с помощью генетического алгоритма (ГА)
дало улучшение по сравнению с неупорядочиванием, обратным упорядочиванием и установлением
приоритетов с учетом ошибок.</p>
      <p>Другой вид приоритезации тестов на основе ГА был предложен Conrad и другие в [67]. Работа
представила широкий спектр мутаций, кроссинговеров, селекций и операторов преобразования, которые
использовались для изменения порядка тестов. Экспериментальное исследование было проведено на 8
реальных приложениях (таких же, как в [68]), используя одну и ту же метрику эффективности покрытия [49] и
их тесты JUnit на уровне системы. Результаты были проанализированы с помощью горохообразных (beanplots)
диаграмм, являющихся альтернативой диаграммам размаха. При сравнении предлагаемого метода с методами
случайного поиска и поиска экстремума ГА дал лучшие результаты.
Заключение и направления будущих исследований</p>
      <p>Признано, что подходы к РТ, которые анализируют изменения программы на более низком уровне
детализации (например, на уровне операторов), более точны, чем подходы, которые выполняют анализ на
сравнительно более высоком уровне абстракции (например, моделях проекта). Однако, объемные вычисления для
низкоуровневого анализа делают эти подходы более дорогими и менее эффективными по сравнению с
высокоуровневыми подходами. Поэтому при выборе подходящего метода ВРТ, необходимо придерживаться
компромисса между стоимостью и эффективностью, с одной стороны, и уровнем детализации, с другой.</p>
      <p>Современные коммерческие программные продукты становятся все более крупными и сложными, и для
их проверки, обычно, требуется тысячи тестов. Поэтому для получения дополнительной экономии усилий при
РТ исследователи должны помнить:
– с тенденцией увеличения размера приложений подходы к ВРТ должны масштабироваться для очень
больших программ, имеющих размеры кода порядка миллионов KLOC. Для современных больших
программных систем масштабируемость является важной проблемой. Поэтому интересным направлением исследования
могло бы быть изучение композиционных и интеграционных подходов к ВРТ;</p>
      <p>– подход к ВРТ должен учитывать при выборе тестов все возможные взаимосвязи в зависимости от
рассматриваемого класса программ, то есть, он должен быть безопасным для этого класса программ.</p>
      <p>Основанное на модели РТ. Учитывая тот факт, что статический анализ больших программных систем
является в вычислительном отношении дорогостоящим, перспективными представляются подходы к ВРТ,
основанные на модели, поскольку они не только хорошо масштабируются, но являются более эффективными.
Кроме того, в последнее время МОР уделяется много внимания. В МОР существует тесная взаимосвязь между
моделью (моделями) проекта и кодом в том смысле, что любое изменение в модели получает отражение в коде и
наоборот. Поэтому вместо осуществления ВРТ на коде, его можно автоматически выполнять, базируясь на
моделях проекта. Основанный на модели ВРТ может также помочь учесть некоторые аспекты поведения
программы (например, переходы состояний, пути сообщений, критичность задач и т. д.), которые нелегко
идентифицируются при статическом анализе кода.</p>
      <p>Улучшенная инструментальная поддержка РТ. В будущих работах по РТ следует постепенно
переходить от теоретических исследований к инструментам реализации. В ряде исследований [3] отмечалось, что
текущая инструментальная поддержка для автоматизации ВРТ довольно слабая. Поэтому совместные усилия
должны быть направлены на разработку интегрированных инструментов ВРТ, используя механизмы записи и
воспроизведения (capture-and-replay).</p>
      <p>Синтезированные методы РТ. Большинство упоминаемых в литературе подходов к РТ основаны либо на
коде, либо на модели. Так как у обоих этих подходов есть свои собственные уникальные преимущества,
возможно эти подходы могут быть обоснованно синтезированы, и эта проблема заслуживает дальнейшего
исследования. Например, осуществляемый анализ в методе ВРТ, основанном на коде, может быть сделан более
эффективным при использовании информации, доступной по UML-моделям проекта, документам Спецификации
требований к ПО и т. д.</p>
      <p>Большая часть работ, посвященных многоцелевому РТ, находится в областях минимизации набора
тестов и установления приоритетов [69]. Однако в реальном РТ при выборе тестов, необходимо учитывать
множество целевых показателей, таких как количество выполненных тестов, затраты, привлеченные для
тестирования, достигнутое покрытие кода, время, доступное для тестирования и т. д. Интересный путь исследований мог
бы состоять в объединении методов выбора регрессивных тестов с подходами либо минимизации, либо
приоритезации. При таком обобщенном подходе техника выбора тестов могла бы затем включать дальнейшую
минимизацию/приоритезацию. РТ, используя такой синтезированный подход, может учесть одновременно
несколько целевых критериев в ходе тестирования и потенциально может помочь добиться дальнейшей экономии
усилий РТ, не ставя под угрозу тщательность тестирования.</p>
      <p>Встроенное ПО. Возрастающее использование встроенного ПО реального времени в критических по
безопасности приложениях (ПО атомных станций, космических кораблей, самолетов и т. п.) привело к
повышенным требованиям к качеству их кода. Высокая стоимость и сложность выполнения РТ для такого ПО должны
были бы стать дополнительным стимулом к разработке особых подходов к РТ для этих программ. Однако к
настоящему времени успехи в этом направлении весьма скромны, несмотря на то, что это направление
исследований представляется весьма важным.</p>
      <p>Приложения с гибридным управлением. Для приложений с дискретным управлением обычно используют
UML-модели, тогда как для приложений с гибридным управлением популярны модели MATLAB
Simulink/Stateflow [70]. В этом контексте необходимы подходящие подходы к ВРТ для приложений с гибридным
управлением. Кроме того, более детальное исследование требуется для изучения эффективности подходов к
ВРТ для тестирования нефункциональных требований.</p>
      <p>Агентно-ориентированное программирование. В последние годы стремительно развивается
агентноориентированная парадигма ПО [71], которую можно рассмотреть как естественное расширение
объектноориентированной парадигмы. Сегодня программные агенты являются ключевой технологией для
удовлетворения потребностей современного бизнеса. Они предлагают также эффективную концептуальную методологию
для разработки адаптивных и динамичных сложных систем. На практике исследования по разработке
программных агентов и мультиагентных систем приобрели очень больших масштабов и используются в различных
активных областях. Однако, поскольку агенты имеют более высокий уровень абстракции по сравнению с
объектами и во многих аспектах существенно отличаются от них, то известные методы РТ для ООП совершенно
непреемлемы для агентно-ориентированых программ (АОП). Разработка эффективных методов РТ для АОП –
еще одна очень важная область исследований.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>Далее приводится несколько подходов к ВРТ для Веб-приложений. 1</article-title>
          .
          <string-name>
            <surname>Pressman R. Software</surname>
          </string-name>
          <article-title>Engineering: A Practitioner's Approach</article-title>
          . New York:
          <string-name>
            <surname>McGraw-Hill</surname>
          </string-name>
          ,
          <article-title>-</article-title>
          <year>2010</year>
          . - 895 p.
          <fpage>2</fpage>
          .
          <string-name>
            <surname>Leung</surname>
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>White</surname>
            <given-names>L</given-names>
          </string-name>
          .
          <article-title>Insights into regression testing //</article-title>
          <source>Proceedings of the Conference on Software Maintenance</source>
          ,
          <article-title>-</article-title>
          <year>1989</year>
          . - P.
          <fpage>60</fpage>
          -
          <lpage>69</lpage>
          . 3.
          <string-name>
            <surname>Grindal</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Offutt</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mellin</surname>
            <given-names>J</given-names>
          </string-name>
          .
          <article-title>On the testing maturity of software producing organizations // In TAIC-PART: Proceedings of the Testing: Aca-</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <source>demic &amp; Industrial Conference on Practice And Research Techniques. - 2006</source>
          . - P.
          <fpage>171</fpage>
          -
          <lpage>180</lpage>
          . 4.
          <string-name>
            <surname>Elbaum</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kallakuri</surname>
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malishevsky</surname>
            <given-names>A. G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rothermel</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <article-title>Kanduri S. Understanding the Effects of Changes on the Cost- Effectiveness of</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Regression</surname>
          </string-name>
          Testing Techniques // Journal of Software Testing, Verification, and
          <string-name>
            <surname>Reliability</surname>
          </string-name>
          . -
          <year>2003</year>
          . - Vol.
          <volume>13</volume>
          , N 2 - P.
          <fpage>65</fpage>
          -
          <lpage>83</lpage>
          . 5.
          <string-name>
            <surname>Rothermel</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harrold</surname>
            <given-names>M.</given-names>
          </string-name>
          <article-title>Selecting tests and identifying test coverage requirements for modified software /</article-title>
          / Proceedings of the International
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <source>Symposium on Software Testing and Analysis. - 1994</source>
          . - P.
          <fpage>169</fpage>
          -
          <lpage>184</lpage>
          . 6.
          <string-name>
            <surname>Elbaum</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malishevsky</surname>
            <given-names>A</given-names>
          </string-name>
          .,
          <string-name>
            <surname>G.Rothermel G.</surname>
          </string-name>
          <article-title>Prioritizing test cases for regression testing /</article-title>
          / Proceedings of the International Symposium on
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>Software</given-names>
            <surname>Testing</surname>
          </string-name>
          and
          <string-name>
            <surname>Analysis</surname>
          </string-name>
          .
          <source>- 2000</source>
          . - P.
          <fpage>102</fpage>
          -
          <lpage>112</lpage>
          . 7.
          <string-name>
            <surname>Elbaum</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malishevsky</surname>
            <given-names>A.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>G.Rothermel G.</surname>
          </string-name>
          <article-title>Test case prioritization: A family empirical studies /</article-title>
          / IEEE Transactions on Software
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <surname>Engineering</surname>
          </string-name>
          . - 2002. - Vol.
          <volume>28</volume>
          , N 2. P.
          <volume>159</volume>
          -
          <fpage>182</fpage>
          . 8.
          <string-name>
            <surname>Harrold</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Soffa</surname>
            <given-names>M.</given-names>
          </string-name>
          <article-title>Interprocedural data flow testing // Proceedings of the ACM SIGSOFT third symposium on Software testing, analysis</article-title>
          , and
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <surname>verification</surname>
          </string-name>
          . -
          <source>1989</source>
          . - P.
          <fpage>158</fpage>
          -
          <lpage>167</lpage>
          . 9.
          <string-name>
            <surname>Agrawal</surname>
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horgan</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Krauser</surname>
            <given-names>E.</given-names>
          </string-name>
          , London S. Incremental regression testing // International Conference on Software Maintenance.
          <article-title>-</article-title>
          <year>1993</year>
          . - P.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          348-
          <fpage>357</fpage>
          .
          <fpage>10</fpage>
          .
          <string-name>
            <surname>Leung</surname>
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>White L</surname>
          </string-name>
          .
          <article-title>A firewall concept for both control-flow and data-flow in regression integration testing /</article-title>
          / Proceedings of the Conference on
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <given-names>Software</given-names>
            <surname>Maintenance</surname>
          </string-name>
          .
          <article-title>-</article-title>
          <year>1992</year>
          . - P.
          <fpage>262</fpage>
          -
          <lpage>270</lpage>
          . 11.
          <string-name>
            <surname>Chen</surname>
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosenblum</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vo</surname>
            <given-names>K.</given-names>
          </string-name>
          <article-title>TestTube: A system for selective regression testing //</article-title>
          <source>Proceedings of the 16th International Conference on Soft-</source>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <surname>ware Engineering</surname>
          </string-name>
          .
          <article-title>-</article-title>
          <year>1994</year>
          . - P.
          <fpage>211</fpage>
          -
          <lpage>222</lpage>
          .
          <fpage>12</fpage>
          .
          <string-name>
            <surname>Vokolos</surname>
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Frankl</surname>
            <given-names>P.</given-names>
          </string-name>
          <article-title>A regression test selection tool based on textual differencing //</article-title>
          <source>Proceedings of the 3rd International Conference on Reli-</source>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <surname>ability</surname>
          </string-name>
          ,
          <source>Quality &amp; Safety of Software-Intensive Systems. -1997</source>
          . - P.
          <fpage>3</fpage>
          -
          <lpage>21</lpage>
          .
          <fpage>13</fpage>
          .
          <string-name>
            <surname>Frankl</surname>
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rothermel</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sayre</surname>
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vokolos</surname>
            <given-names>F.</given-names>
          </string-name>
          <article-title>An empirical comparison of two safe regression test selection techniques</article-title>
          .
          <source>Proceedings of the</source>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <source>2003 International Symposium on Empirical Software Engineering. - 2003</source>
          . - P.
          <fpage>195</fpage>
          -
          <lpage>204</lpage>
          .
          <fpage>14</fpage>
          .
          <string-name>
            <surname>Laski</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Szermer</surname>
            <given-names>W.</given-names>
          </string-name>
          <article-title>Identification of program modifications and its applications in software maintenance /</article-title>
          / Proceedings of the Conference on
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <string-name>
            <given-names>Software</given-names>
            <surname>Maintenance</surname>
          </string-name>
          .
          <article-title>-</article-title>
          <year>1992</year>
          . - P.
          <fpage>282</fpage>
          -
          <lpage>290</lpage>
          .
          <fpage>15</fpage>
          .
          <string-name>
            <surname>Rothermel</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harrold</surname>
            <given-names>M.</given-names>
          </string-name>
          <article-title>A safe, efficient regression test selection technique // ACM Transactions on Software Engineering and Methodology</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <string-name>
            <surname>-</surname>
          </string-name>
          <year>1997</year>
          . - Vol.
          <volume>6</volume>
          ,
          <issue>N2</issue>
          . - P.
          <fpage>173</fpage>
          -
          <lpage>210</lpage>
          .
          <fpage>16</fpage>
          .
          <string-name>
            <surname>Ball</surname>
            <given-names>T.</given-names>
          </string-name>
          <article-title>On the limit of control flow analysis for regression test selection // ISSTA: Proceedings of the 1998 ACM SIGSOFT international sym-</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          <source>posium on Software testing and analysis. - 1998</source>
          . - P.
          <fpage>134</fpage>
          -
          <lpage>142</lpage>
          . 17.
          <string-name>
            <surname>McGregor</surname>
          </string-name>
          J.,
          <string-name>
            <surname>Sykes</surname>
            <given-names>D.</given-names>
          </string-name>
          <article-title>A Practical Guide to Testing Object-Oriented Software</article-title>
          .
          <string-name>
            <surname>Addison-Wesley</surname>
          </string-name>
          .
          <article-title>-</article-title>
          <year>2001</year>
          . - 416 p.
          <fpage>18</fpage>
          .
          <string-name>
            <surname>Kung</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gao</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hsia</surname>
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wen</surname>
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Toyoshima</surname>
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            <given-names>C</given-names>
          </string-name>
          .
          <article-title>On regression testing of object oriented programs //</article-title>
          <source>Journal of Systems and Software.</source>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          <string-name>
            <surname>-</surname>
          </string-name>
          <year>1996</year>
          . - Vol.
          <volume>32</volume>
          ,
          <string-name>
            <surname>N1</surname>
          </string-name>
          . - P.
          <fpage>21</fpage>
          -
          <lpage>40</lpage>
          .
          <fpage>19</fpage>
          .
          <string-name>
            <surname>Jang</surname>
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Munro</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kwon</surname>
            <given-names>Y.</given-names>
          </string-name>
          <article-title>An improved method of selecting regression tests for C+</article-title>
          + programs // Journal of Software Maintenance: Research
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          <string-name>
            <surname>and Practice. -</surname>
          </string-name>
          <year>2001</year>
          . - Vol.
          <volume>13</volume>
          ,
          <string-name>
            <surname>N5</surname>
          </string-name>
          . - P.
          <fpage>331</fpage>
          -
          <lpage>350</lpage>
          .
          <fpage>20</fpage>
          .
          <string-name>
            <surname>Rothermel</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harrold</surname>
            <given-names>M.</given-names>
          </string-name>
          <article-title>Selecting regression tests for object-oriented software</article-title>
          // International Conference on Software Maintenance. -
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          <string-name>
            <surname>March</surname>
          </string-name>
          <year>1994</year>
          . - P.
          <fpage>14</fpage>
          -
          <lpage>25</lpage>
          .
          <fpage>21</fpage>
          .
          <string-name>
            <surname>Rothermel</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harrold</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dedhia</surname>
            <given-names>J</given-names>
          </string-name>
          .
          <article-title>Regression test selection for C+</article-title>
          + software // Software Testing,
          <source>Verification and Reliability. - 2000</source>
          . -
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          Vol.
          <volume>10</volume>
          ,
          <string-name>
            <surname>N2</surname>
          </string-name>
          . - P.
          <fpage>77</fpage>
          -
          <lpage>109</lpage>
          .
          <fpage>22</fpage>
          .
          <string-name>
            <surname>Harrold</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jones</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Liang</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Orso</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pennings</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sinha</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Spoon</surname>
            <given-names>S. A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gujarathi</surname>
            <given-names>A</given-names>
          </string-name>
          .
          <article-title>Regression test selection for Java software //</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          <source>Proceedings of the 16th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications</source>
          ,
          <year>January 2001</year>
          . -
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          P.
          <fpage>312</fpage>
          -
          <lpage>326</lpage>
          .
          <fpage>23</fpage>
          .
          <string-name>
            <surname>Orso</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shi</surname>
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harrold</surname>
            <given-names>M</given-names>
          </string-name>
          .
          <article-title>Scaling regression testing to large software systems // Proceedings of the 12th ACM SIGSOFT Twelfth Interna-</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          <source>tional Symposium on Foundations of Software Engineering. - 2004</source>
          . - P.
          <fpage>241</fpage>
          -
          <lpage>251</lpage>
          .
          <fpage>24</fpage>
          .
          <string-name>
            <surname>Mansour</surname>
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Statieh</surname>
            <given-names>W.</given-names>
          </string-name>
          <article-title>Regression test selection for C# programs</article-title>
          // Advances in Software Engineering.
          <article-title>-</article-title>
          <year>2009</year>
          . - P.
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          .
          <fpage>25</fpage>
          .
          <string-name>
            <surname>Briand</surname>
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Labiche</surname>
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Soccar</surname>
            <given-names>G</given-names>
          </string-name>
          .
          <article-title>Automating impact analysis and regression test selection based on UML designs Proceedings of the Interna-</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          <source>tional Conference on Software Maintenance. - 2002</source>
          . - P.
          <fpage>252</fpage>
          -
          <lpage>261</lpage>
          .
          <fpage>26</fpage>
          .
          <string-name>
            <surname>Briand</surname>
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Labiche</surname>
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>He</surname>
            <given-names>S.</given-names>
          </string-name>
          <article-title>Automating regression test selection based on UML designs // Information</article-title>
          and
          <string-name>
            <given-names>Software</given-names>
            <surname>Technology</surname>
          </string-name>
          .
          <article-title>-</article-title>
          <year>2009</year>
          . -
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          Vol.
          <volume>51</volume>
          ,
          <string-name>
            <surname>N9</surname>
          </string-name>
          . - P.
          <fpage>16</fpage>
          -
          <lpage>30</lpage>
          .
          <fpage>27</fpage>
          .
          <string-name>
            <surname>Ali</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nadeem</surname>
            <given-names>A.</given-names>
          </string-name>
          , Iqbal
          <string-name>
            <given-names>Z.</given-names>
            ,
            <surname>Usman</surname>
          </string-name>
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Regression testing based on UML design models //</article-title>
          <source>Proceedings of the 13th Pacific Rim International</source>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          <string-name>
            <surname>Symposium on Dependable Computing</surname>
          </string-name>
          .
          <article-title>-</article-title>
          <year>2007</year>
          . - P.
          <fpage>85</fpage>
          -
          <lpage>88</lpage>
          .
          <fpage>28</fpage>
          .
          <string-name>
            <surname>Farooq</surname>
            <given-names>Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Iqbal</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Malik Z.</given-names>
            ,
            <surname>Riebisch</surname>
          </string-name>
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>A model-based regression testing approach for evolving software systems with flexible tool sup-</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          port.
          <source>In 17th IEEE International Conference on Engineering of Computer-Based Systems. - March</source>
          <year>2010</year>
          . - P.
          <fpage>41</fpage>
          -
          <lpage>49</lpage>
          .
          <fpage>29</fpage>
          .
          <string-name>
            <surname>Naslavsky</surname>
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Richardson</surname>
            <given-names>D.</given-names>
          </string-name>
          <article-title>Using traceability to support model-based regression testing // Proceedings of the twenty-second IEEE/ACM</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          <source>international conference on Automated software engineering, ASE. November</source>
          <year>2007</year>
          . - P.
          <fpage>567</fpage>
          -
          <lpage>570</lpage>
          .
          <fpage>30</fpage>
          .
          <string-name>
            <surname>Gorthi</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Pasala</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chanduka</surname>
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leong</surname>
            <given-names>B</given-names>
          </string-name>
          .
          <article-title>Specification-based approach to select regression test suite to validate changed software // Pro-</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          <source>ceedings of 15th Asia-Pacific Software Engineering Conference. - 2008</source>
          . - P.
          <fpage>153</fpage>
          -
          <lpage>160</lpage>
          . 31.
          <string-name>
            <surname>Chen</surname>
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Probert</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sims</surname>
            <given-names>D</given-names>
          </string-name>
          .
          <article-title>Specification based regression test selection with risk analysis //</article-title>
          <source>Proceedings of the 2002 conference of the Centre</source>
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          <source>for Advanced Studies on Collaborative research. - 2002</source>
          . - P.
          <fpage>322</fpage>
          -
          <lpage>323</lpage>
          .
          <fpage>32</fpage>
          .
          <string-name>
            <surname>Chittimalli</surname>
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harrold</surname>
            <given-names>M.</given-names>
          </string-name>
          <article-title>Regression test selection on system requirements //</article-title>
          <source>Proceedings of the 1st conference on India software engineering</source>
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          <string-name>
            <surname>conference</surname>
          </string-name>
          ,
          <year>August 2008</year>
          . - P.
          <fpage>87</fpage>
          -
          <lpage>96</lpage>
          .
          <fpage>33</fpage>
          .
          <string-name>
            <surname>Orso</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harrold</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosenblum</surname>
            <given-names>D.</given-names>
          </string-name>
          <article-title>Component metadata for software engineering tasks // Revised Papers from the Second International</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          <string-name>
            <surname>Workshop</surname>
          </string-name>
          on Engineering Distributed Objects, EDO. Springer-Verlag.
          <article-title>-</article-title>
          <year>2000</year>
          . - P.
          <fpage>129</fpage>
          -
          <lpage>144</lpage>
          .
          <fpage>34</fpage>
          .
          <string-name>
            <surname>Orso</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harrold</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosenblum</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rothermel</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Soffa</surname>
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Do H</surname>
          </string-name>
          .
          <article-title>Using component metacontent to support the regression testing of</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          <source>component-based software Proceedings of the IEEE International Conference on Software Maintenance</source>
          ,
          <year>November 2001</year>
          . - P.
          <fpage>716</fpage>
          -
          <lpage>725</lpage>
          .
          <fpage>35</fpage>
          .
          <string-name>
            <surname>Mao</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lu</surname>
            <given-names>Y.</given-names>
          </string-name>
          <article-title>Regression testing for component-based software systems by enhancing change information // APSEC: Proceedings of the 12th</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          <string-name>
            <surname>Asia-Pacific Software</surname>
          </string-name>
          Engineering Conference. IEEE Computer Society,
          <year>December 2005</year>
          . - P.
          <fpage>611</fpage>
          -
          <lpage>618</lpage>
          .
          <fpage>36</fpage>
          .
          <string-name>
            <surname>Mao</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lu</surname>
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
            <given-names>J</given-names>
          </string-name>
          .
          <article-title>Regression testing for component-based software via built-in test design //</article-title>
          <source>Proceedings of the 2007 ACM symposium</source>
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          <source>on Applied computing. - 2007</source>
          . - P.
          <fpage>1416</fpage>
          -
          <lpage>1421</lpage>
          .
          <fpage>37</fpage>
          .
          <string-name>
            <surname>Sajeev</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wibowo</surname>
            <given-names>B</given-names>
          </string-name>
          .
          <source>Regression test selection based on version changes of components // Proceedings of the Tenth Asia-Pacific Software</source>
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          Engineering Conference Software Engineering Conference,
          <year>December 2003</year>
          . - 78 p.
          <fpage>38</fpage>
          .
          <string-name>
            <surname>Wu</surname>
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Offutt</surname>
            <given-names>J</given-names>
          </string-name>
          .
          <source>Maintaining evolving component-based software with UML // Proceedings of 7th European Conference on Software Mainte-</source>
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          <source>nance and Reengineering</source>
          , March
          <year>2003</year>
          . - P.
          <fpage>133</fpage>
          -
          <lpage>142</lpage>
          .
          <fpage>39</fpage>
          .
          <string-name>
            <surname>Pasala</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fung</surname>
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Akladios</surname>
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Raju</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gorthi</surname>
            <given-names>R</given-names>
          </string-name>
          .
          <article-title>Selection of regression test suite to validate software applications upon deployment of up-</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          <source>grades // 19th Australian Conference on Software Engineering</source>
          ,
          <year>March 2008</year>
          . - P.
          <fpage>130</fpage>
          -
          <lpage>138</lpage>
          . 40.
          <string-name>
            <surname>Zheng</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Robinson</surname>
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Williams</surname>
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Smiley</surname>
            <given-names>K.</given-names>
          </string-name>
          <article-title>Applying regression test selection for COTS based applications // ICSE: Proceedings of the 28th</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          <source>international conference on Software engineering</source>
          , May
          <year>2006</year>
          . - P.
          <fpage>512</fpage>
          -
          <lpage>522</lpage>
          .
          <fpage>41</fpage>
          .
          <string-name>
            <surname>Zhao</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xie</surname>
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            <given-names>N.</given-names>
          </string-name>
          <article-title>Towards regression test selection for AspectJ programs</article-title>
          // Proceedings of the 2nd workshop on Testing aspect-oriented
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          <string-name>
            <surname>programs</surname>
          </string-name>
          . -
          <source>2006</source>
          . - P.
          <fpage>21</fpage>
          -
          <lpage>26</lpage>
          . 42.
          <string-name>
            <surname>Xu</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <article-title>Rountev A. Regression test selection for AspectJ software //</article-title>
          <source>Proceedings of the 29th international conference on Software Engineering,</source>
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          <string-name>
            <surname>December</surname>
          </string-name>
          <year>2007</year>
          . - P.
          <fpage>65</fpage>
          -
          <lpage>74</lpage>
          .
          <fpage>43</fpage>
          .
          <string-name>
            <surname>Haftman</surname>
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kossmann</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lo</surname>
            <given-names>E.</given-names>
          </string-name>
          <article-title>A framework for efficient regression tests on database applications // The VLDB Journal</article-title>
          .
          <article-title>-</article-title>
          <year>2007</year>
          . - Vol.
          <volume>10</volume>
          ,
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          <string-name>
            <surname>N</surname>
          </string-name>
          <year>2</year>
          . - P.
          <fpage>145</fpage>
          -
          <lpage>164</lpage>
          .
          <fpage>44</fpage>
          .
          <string-name>
            <surname>Haraty</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mansour</surname>
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Daou</surname>
            <given-names>B. Advanced</given-names>
          </string-name>
          <article-title>Topics in Database Research</article-title>
          . Idea Group.
          <article-title>-</article-title>
          <year>2004</year>
          . - Vol.
          <volume>3</volume>
          . - P.
          <fpage>141</fpage>
          -
          <lpage>165</lpage>
          .
          <fpage>45</fpage>
          .
          <string-name>
            <surname>Willmor</surname>
            <given-names>D.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Embury S</surname>
          </string-name>
          .
          <article-title>A safe regression test selection technique for database-driven applications //</article-title>
          <source>Proceedings of the 21st IEEE Interna-</source>
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          <source>tional Conference on Software Maintenance.- 2005</source>
          . - P.
          <fpage>421</fpage>
          -
          <lpage>430</lpage>
          . 46.
          <string-name>
            <surname>Xu</surname>
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xu</surname>
            <given-names>B</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jiang</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            <given-names>H</given-names>
          </string-name>
          .
          <article-title>Regression testing for web applications based on slicing //</article-title>
          <source>Proceedings of the 27th Annual International</source>
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          <string-name>
            <given-names>Computer</given-names>
            <surname>Software</surname>
          </string-name>
          and
          <string-name>
            <given-names>Applications</given-names>
            <surname>Conference</surname>
          </string-name>
          . -
          <year>2003</year>
          . - P.
          <fpage>652</fpage>
          -
          <lpage>656</lpage>
          .
          <fpage>47</fpage>
          .
          <string-name>
            <surname>Tarhini</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fouchal</surname>
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mansour</surname>
            <given-names>N.</given-names>
          </string-name>
          <article-title>Regression testing web services-based applications // AICCSA Proceedings of</article-title>
          the IEEE International
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          <source>Conference on Computer Systems and Applications</source>
          . - 2006. - P.
          <fpage>163</fpage>
          -
          <lpage>170</lpage>
          .
          <fpage>48</fpage>
          .
          <string-name>
            <surname>Ruth</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tu</surname>
            <given-names>S.</given-names>
          </string-name>
          <article-title>A safe regression test selection technique for</article-title>
          web services // Proceedings of the Second International Conference on Internet and
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          <string-name>
            <given-names>Web</given-names>
            <surname>Applications</surname>
          </string-name>
          and Services. -
          <year>2007</year>
          . - P.
          <year>47</year>
          . 49.
          <string-name>
            <surname>Lin</surname>
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ruth</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tu</surname>
            <given-names>S.</given-names>
          </string-name>
          <article-title>Applying safe regression test selection techniques to Java</article-title>
          web services // International Conference on Next Generation
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          <string-name>
            <given-names>Web</given-names>
            <surname>Services Practices</surname>
          </string-name>
          .
          <article-title>-</article-title>
          <year>2006</year>
          . - P.
          <fpage>133</fpage>
          -
          <lpage>142</lpage>
          .
          <fpage>50</fpage>
          .
          <string-name>
            <surname>Rothermel</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Untch</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chu</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harrold</surname>
            <given-names>M.J.</given-names>
          </string-name>
          <article-title>Test case prioritization: An empirical study</article-title>
          // Proceedings of International Conference Software
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          <string-name>
            <surname>Maintenance</surname>
          </string-name>
          ,
          <year>August 1999</year>
          . - P.
          <fpage>179</fpage>
          -
          <lpage>188</lpage>
          .
          <fpage>51</fpage>
          .
          <string-name>
            <surname>Harrold</surname>
            <given-names>M. J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Larsen</surname>
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lloyd</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nedven</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Page</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rothermel</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manvinder</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Smith</surname>
            <given-names>M.</given-names>
          </string-name>
          <article-title>Aristotle: A System for Development of Pro-</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref48">
        <mixed-citation>
          <source>gram Analysis Based Tools // Proceedings of the 33rd annual on Southeast regional conference. - 1995</source>
          . - P.
          <fpage>110</fpage>
          -
          <lpage>119</lpage>
          .
          <fpage>52</fpage>
          .
          <string-name>
            <surname>Srivastava</surname>
            <given-names>A. Thiagarajan J</given-names>
          </string-name>
          . Effectively prioritizing tests in development environment // Proceedings of the International Symposium on
        </mixed-citation>
      </ref>
      <ref id="ref49">
        <mixed-citation>
          <string-name>
            <given-names>Software</given-names>
            <surname>Testing</surname>
          </string-name>
          and
          <string-name>
            <surname>Analysis</surname>
          </string-name>
          .
          <source>- 2002</source>
          . - P.
          <fpage>97</fpage>
          -
          <lpage>106</lpage>
          .
          <fpage>53</fpage>
          .
          <string-name>
            <surname>Belli</surname>
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eminov</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gokco</surname>
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Coverage-Oriented</surname>
          </string-name>
          ,
          <article-title>Prioritized Testing-A Fuzzy Clustering Approach</article-title>
          and Case Stud // Proceedings of the Third
        </mixed-citation>
      </ref>
      <ref id="ref50">
        <mixed-citation>
          <source>Latin-American conference on Dependable Computing. - 2007</source>
          . - P.
          <fpage>95</fpage>
          -
          <lpage>110</lpage>
          .
          <fpage>54</fpage>
          .
          <string-name>
            <surname>Do</surname>
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mirarab</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tahvildari</surname>
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rothermel</surname>
            <given-names>G.</given-names>
          </string-name>
          <article-title>An Empirical Study of the effect of time constraints on the cost benefits of regression testing //</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref51">
        <mixed-citation>
          <source>Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering. - 2008</source>
          . - P.
          <fpage>71</fpage>
          -
          <lpage>82</lpage>
          .
          <fpage>55</fpage>
          .
          <string-name>
            <surname>Jiang</surname>
            <given-names>B.</given-names>
          </string-name>
          , Zhang Z.,
          <string-name>
            <surname>Chan</surname>
            <given-names>W.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tse</surname>
            <given-names>T.H.</given-names>
          </string-name>
          ,
          <source>Adaptive Random test case prioritization // Proceedings of International Conference on Automated</source>
        </mixed-citation>
      </ref>
      <ref id="ref52">
        <mixed-citation>
          <string-name>
            <given-names>Software</given-names>
            <surname>Engineering</surname>
          </string-name>
          .
          <article-title>-</article-title>
          <year>2009</year>
          . - P.
          <fpage>233</fpage>
          -
          <lpage>243</lpage>
          .
          <fpage>56</fpage>
          .
          <string-name>
            <surname>Bryce</surname>
            <given-names>R.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sampath</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Memon</surname>
            <given-names>A.M.</given-names>
          </string-name>
          <string-name>
            <surname>Developing</surname>
          </string-name>
          <article-title>a Single Model and Test Prioritization Strategies for Event Driven Software // Transactions</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref53">
        <mixed-citation>
          <string-name>
            <given-names>on Software</given-names>
            <surname>Engineering</surname>
          </string-name>
          .
          <article-title>-</article-title>
          <year>2010</year>
          . - P.
          <fpage>48</fpage>
          -
          <lpage>63</lpage>
          .
          <fpage>57</fpage>
          .
          <string-name>
            <surname>Wong</surname>
            <given-names>W.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horgan</surname>
            <given-names>J.R.</given-names>
          </string-name>
          , London S.,
          <string-name>
            <surname>Aggarwal</surname>
            <given-names>A</given-names>
          </string-name>
          .
          <article-title>A study of effective regression testing in practice /</article-title>
          / Proceedings of the Eighth International
        </mixed-citation>
      </ref>
      <ref id="ref54">
        <mixed-citation>
          <string-name>
            <given-names>Symposium</given-names>
            <surname>Software Reliability Engineering</surname>
          </string-name>
          ,
          <year>November 1997</year>
          . - P.
          <fpage>230</fpage>
          -
          <lpage>238</lpage>
          .
          <fpage>58</fpage>
          .
          <string-name>
            <surname>Korel</surname>
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tahat</surname>
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harman</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <source>Test Prioritization Using System Models // The Proceedings of 21st International Conference on Software</source>
        </mixed-citation>
      </ref>
      <ref id="ref55">
        <mixed-citation>
          <string-name>
            <surname>Maintenance</surname>
          </string-name>
          .
          <article-title>-</article-title>
          <year>2005</year>
          . - P.
          <fpage>247</fpage>
          -
          <lpage>256</lpage>
          .
          <fpage>59</fpage>
          .
          <string-name>
            <surname>Korel</surname>
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Koutsogiannakis</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Talat</surname>
            <given-names>L.H.</given-names>
          </string-name>
          <article-title>Modelbased test suite prioritization Heuristic Methods</article-title>
          and Their Evaluation // Proceedings of 3rd
        </mixed-citation>
      </ref>
      <ref id="ref56">
        <mixed-citation>
          <source>workshop on Advances in model based testing. - 2007</source>
          . - P.
          <fpage>34</fpage>
          -
          <lpage>43</lpage>
          .
          <fpage>60</fpage>
          .
          <string-name>
            <surname>Filho</surname>
            <given-names>R.S.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Budnik</surname>
            <given-names>C.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hasling</surname>
            <given-names>W.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kenna</surname>
            <given-names>M.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Subramanyam</surname>
            <given-names>R</given-names>
          </string-name>
          .
          <article-title>Supporting concern based regression testing and prioritization in a</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref57">
        <mixed-citation>
          <source>model driven environment // Proceedings of 34th Annual Computer software and Applications conference Workshops</source>
          .
          <article-title>-</article-title>
          <year>2010</year>
          . - P.
          <fpage>323</fpage>
          -
          <lpage>328</lpage>
          .
          <fpage>61</fpage>
          .
          <string-name>
            <surname>Srikanth</surname>
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Williams</surname>
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Osborne</surname>
            <given-names>J</given-names>
          </string-name>
          .
          <source>System Test Case Prioritization of New and Regressionb</source>
          Test Cases // Proceedings of International Sym-
        </mixed-citation>
      </ref>
      <ref id="ref58">
        <mixed-citation>
          <source>posium on Empirical Software Engineering. - 2005</source>
          . - P.
          <fpage>64</fpage>
          -
          <lpage>73</lpage>
          .
          <fpage>62</fpage>
          .
          <string-name>
            <surname>Krishnamoorthi</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mary</surname>
            <given-names>S.A.</given-names>
          </string-name>
          <article-title>Incorporating varying requirement priorities and costs in test case prioritization for new and regression testing //</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref59">
        <mixed-citation>
          <source>Proceedings of International Conference on Computing, Communication and Networking. - 2008</source>
          . - P.
          <fpage>1</fpage>
          -
          <lpage>9</lpage>
          .
          <fpage>63</fpage>
          .
          <string-name>
            <surname>Krishnamoorthi</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mart</surname>
            <given-names>S.A.</given-names>
          </string-name>
          <article-title>Factor oriented requirement coverage based system test case prioritization of new and regression test cases //</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref60">
        <mixed-citation>
          <source>Journal of information and software technology. - 2009</source>
          . - Vol.
          <volume>51</volume>
          . - P.
          <fpage>799</fpage>
          -
          <lpage>808</lpage>
          . 64.
          <string-name>
            <surname>Kim</surname>
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Porter</surname>
            <given-names>A</given-names>
          </string-name>
          .
          <article-title>A History-Based Test Prioritization Technique for Regression Testing</article-title>
          in Resource Constrained Environment // Proceed-
        </mixed-citation>
      </ref>
      <ref id="ref61">
        <mixed-citation>
          <source>ings of the 24th International Conference Software Engineering</source>
          , May
          <year>2002</year>
          . - P.
          <fpage>119</fpage>
          -
          <lpage>129</lpage>
          .
          <fpage>65</fpage>
          .
          <string-name>
            <surname>Fazlalizadeh</surname>
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Khalilian</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Azgomi</surname>
            <given-names>H.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parsa</surname>
            <given-names>S.</given-names>
          </string-name>
          <article-title>Incorporating historical test case performance data and resource constraints into test case</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref62">
        <mixed-citation>
          <source>prioritization // Lecture notes in Computer Science</source>
          , Springer. -
          <year>2009</year>
          . - P.
          <fpage>43</fpage>
          -
          <lpage>57</lpage>
          .
          <fpage>66</fpage>
          .
          <string-name>
            <surname>Walcott</surname>
            <given-names>K.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Soffa</surname>
            <given-names>M.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kapfhammer</surname>
            <given-names>G.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roos R</surname>
          </string-name>
          .S. Time aware test suite Prioritization // Proceedings of International Symposium on soft-
        </mixed-citation>
      </ref>
      <ref id="ref63">
        <mixed-citation>
          <source>ware Testing and Analysis</source>
          ,
          <string-name>
            <surname>July</surname>
          </string-name>
          <year>2006</year>
          . - P.
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          .
          <fpage>67</fpage>
          .
          <string-name>
            <surname>Conrad</surname>
            <given-names>A.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roos</surname>
            <given-names>R. S.</given-names>
          </string-name>
          <article-title>Empirically Studying the role of selection operators during search based test suite prioritization /</article-title>
          / Proceedings of the
        </mixed-citation>
      </ref>
      <ref id="ref64">
        <mixed-citation>
          <source>ACM SIGEVO Genetic and Evolutionary Computation Conference</source>
          , Portland, Oregon. -
          <year>2010</year>
          . - P.
          <fpage>1373</fpage>
          -
          <lpage>1380</lpage>
          68.
          <string-name>
            <surname>Smith</surname>
            <given-names>A.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kapfhammer</surname>
            <given-names>G.M.</given-names>
          </string-name>
          <article-title>An empirical study of incorporating cost into test suite reduction</article-title>
          and prioritization // Proceedings of ACM
        </mixed-citation>
      </ref>
      <ref id="ref65">
        <mixed-citation>
          <source>Symposium on Applied Computing. - 2009</source>
          . - P.
          <fpage>461</fpage>
          -
          <lpage>467</lpage>
          .
          <fpage>69</fpage>
          .
          <string-name>
            <surname>Yoo</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harman</surname>
            <given-names>M.</given-names>
          </string-name>
          <article-title>Pareto efficient multi-objective test case selection //</article-title>
          <source>Proceedings of the 2007 International Symposium on Software Testing</source>
        </mixed-citation>
      </ref>
      <ref id="ref66">
        <mixed-citation>
          and
          <string-name>
            <surname>Analysis</surname>
          </string-name>
          .
          <source>- 2007</source>
          . - P.
          <fpage>140</fpage>
          -
          <lpage>150</lpage>
          .
          <fpage>70</fpage>
          . The Mathworks, Inc. MATLAB. Website,
          <year>April 2011</year>
          . http://www.mathworks.
          <source>com. 71</source>
          .
          <string-name>
            <surname>Jennings</surname>
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wooldridge</surname>
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Agent-Oriented Software</surname>
          </string-name>
          Engineering // Artificial intelligence.
          <source>- 2000</source>
          . - Vol.
          <volume>117</volume>
          . - Р.
          <fpage>277</fpage>
          -
          <lpage>296</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>