Опубликован: 05.03.2005 | Доступ: свободный | Студентов: 14303 / 1958 | Оценка: 4.11 / 3.63 | Длительность: 13:20:00
ISBN: 978-5-9556-0027-7
Специальности: Тестировщик
Лекция 13:

Регрессионное тестирование: методики, не связанные с отбором тестов и методики порождения тестов

< Лекция 12 || Лекция 13: 12345 || Лекция 14 >

Методы упорядочения

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

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

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

Проблему упорядочения тестов можно сформулировать следующим образом:

  • Дано: T - набор тестов, PT - набор перестановок T, f - функция из PT на множество вещественных чисел.
  • Найти: набор T'\in PT такой, что:
    (\forall T'') (T''\in PT)(T''\ne T') [f(T')\ge f(T'')]

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

Упорядочение может преследовать различные цели:

  • Увеличение частоты обнаружения ошибок наборами тестов, то есть увеличение вероятности обнаружить ошибку раньше при выполнении регрессионных тестов из этих наборов.
  • Ускорение процесса покрытия кода тестируемой системы и достижение требуемой степени покрытия кода на более ранних этапах процесса тестирования.
  • Быстрейший рост вероятности того, что тестируемая система надежна.
  • Увеличение вероятности обнаружения ошибок, связанных с конкретными изменениями кода, на ранних этапах процесса тестирования и т.п.

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

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

Например, упорядочивать тесты можно по количеству покрываемых ими изменений кода. При безопасном отборе тестов из рис. 12.1 будут выбраны тесты 1, 2 и 5, из которых наиболее приоритетным является тест 2, так как он затрагивает оба изменения, тогда как тесты 1 и 5 – только одно.

Сведения о методике упорядочения тестов суммированы в Табл. 13.3.

Таблица 13.3. Результаты применения методики упорядочения тестов
Характеристика Изменение в результате применения методики
Время работы метода отбора Увеличивается незначительно
Частота обнаружения ошибок Увеличивается
Скорость покрытия кода Увеличивается
Результаты применения методики на практике Положительные
< Лекция 12 || Лекция 13: 12345 || Лекция 14 >
Олександр Савенко
Олександр Савенко

В дополнительных материалах есть руководство по подготовке класса. Там есть инструкция по инсталяции, но где взять сам инсталятор?

Анастасия Соляник
Анастасия Соляник
Даниил Яковлев
Даниил Яковлев
Россия, Чувашская республика
Евгения Жиленкова
Евгения Жиленкова
Россия, Люберцы