Використання інформації про вартість тестів та серйозність помилок у процесі пріоритезації тестів

This work has examined introducing information on test costs and fault severities into test case prioritization in regression testing. Methods to estimate test costs and fault severities are presented. New prioritization techniques and a metric to measure their efficiency are demonstrated. The appli...

Full description

Saved in:
Bibliographic Details
Date:2017
Main Author: Malishevsky, A. G.
Format: Article
Language:Russian
Published: The National Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute" 2017
Online Access:https://journal.iasa.kpi.ua/article/view/109775
Tags: Add Tag
No Tags, Be the first to tag this record!
Journal Title:System research and information technologies
Download file: Pdf

Institution

System research and information technologies
_version_ 1866302129940987904
author Malishevsky, A. G.
author_facet Malishevsky, A. G.
author_sort Malishevsky, A. G.
baseUrl_str http://journal.iasa.kpi.ua/oai
collection OJS
datestamp_date 2018-04-11T11:06:06Z
description This work has examined introducing information on test costs and fault severities into test case prioritization in regression testing. Methods to estimate test costs and fault severities are presented. New prioritization techniques and a metric to measure their efficiency are demonstrated. The application of these techniques and the metric, and also the influence of selecting test costs and fault severities on prioritization have been investigated.
first_indexed 2025-07-17T10:23:08Z
format Article
fulltext © А.Г. Малышевский, 2008 Системні дослідження та інформаційні технології, 2008, № 1 63 УДК 004.415.53 ИСПОЛЬЗОВАНИЕ ИНФОРМАЦИИ О СТОИМОСТИ ТЕСТОВ И СЕРЬЕЗНОСТИ ОШИБОК В ПРОЦЕССЕ ПРИОРИТЕЗАЦИИ ТЕСТОВ А.Г. МАЛЫШЕВСКИЙ Рассмотрено использование информации о стоимости тестов и серьезности ошибок в процессе приоритезации в регрессивном тестировании. Описаны способы оценки стоимости тестов и серьезности ошибок. Приведены новые методы приоритезации и метрика для оценки их эффективности. Исследовано применение описанных методов и метрики, а также влияние выбора стоимости тестов и серьезности ошибок на приоритезацию. ВВЕДЕНИЕ Одним из методов проверки, удовлетворяет ли программа заданным требо- ваниям и ее спецификации, является тестирование (выполнение программы и проверка ее поведения на соответствие спецификациям). Каждый тест из набора тестов T, использующегося в тестировании, состоит из множества входных значений (сценариев тестирования). Обычно набор тестов создает- ся, исходя из некоторого множества правил, называемого критерием адек- ватности. Этот критерий выражает условия, которым должен удовлетворять набор тестов [1]. На стадии сопровождения программы многократно ис- пользуется регрессивное тестирование, проверяющее, что внесенные в про- грамму модификации не только изменили программу в соответствии с но- выми спецификациями и исправили найденные ошибки, но и не внесли новых ошибок [1]. В регрессивном тестировании растет набор тестов, увеличивая стои- мость и продолжительность тестирования. Например, одна из систем ПО из 20 000 строк кода требует семь недель для тестирования при использовании всех тестов в наборе. Во многих случаях в процессе регрессивного тестиро- вания можно использовать только подмножество набора тестов для провер- ки модифицированной программы. Но иногда бывает сложно или не допус- кается использование неполного набора тестов, например, для программ, надежность которых является критичной (авионика или управление меди- цинским оборудованием). В данном случае для уменьшения стоимости рег- рессивного тестирования может быть применен иной подход: тесты упоря- дочиваются (приоритезируются) для регрессивного тестирования таким образом, чтобы более важные из них выполнялись в первую очередь. Вопросам приоритезации уделено много внимания [2–12]. В методах приоритезации тесты сортируют таким образом, чтобы эффективнее дос- тичь заданной цели, например, наиболее быстрого покрытия операторов программного кода, функций программы в порядке частоты их использова- ния или подсистем в порядке частоты их сбоев в прошлом. Возможная цель А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2008, № 1 64 приоритезации — увеличение скорости выявления ошибок набором тестов в процессе тестирования. Возросшая скорость выявления ошибок может обеспечить более раннюю обратную связь с регрессивно тестируемой сис- темой и позволить разработчикам начать поиск местонахождения ошибок, а также их исправление раньше, чем это было бы возможно в ином случае. Такая обратная связь обеспечивает выявление ранних признаков того, что заданные цели еще не достигнуты, и позволяет принимать стратегические решения о сроках реализации на ранних этапах. Повышенная скорость об- наружения ошибок увеличивает вероятность того, что в случае преждевре- менного прекращения процесса тестирования тесты, обеспечивающие наи- большую способность выявлять ошибки в сроки, выделенные на тестирование, уже были выполнены. В работах [4–6, 8, 12] представлена метрика APFD, которая определяет скорость выявления ошибок во время выполнения набора тестов в заданном порядке, и показано, что она может быть использована для оценки скорости выявления ошибок в наборах тестов числовыми значениями и их после- дующего сравнения. В этих работах описано несколько методов приорите- зации для увеличения скорости выявления ошибок в регрессивном тестиро- вании и эмпирически оценена их эффективность. Результаты оценки показали, что несколько методов могут улучшить значения APFD наиболее простыми (и дешевыми) методами. Несмотря на то, что разработанные ранее методы приоритезации и мет- рика APFD успешно применялись, в них содержалось допущение о том, что не только стоимость каждого теста одинакова, но и все ошибки одинаково серьезны. (В работе [3] кратко описывается метод приоритезации, в котором учитывается информация о стоимости тестов.) Такое допущение может быть приемлемо. В некоторых случаях — это чрезмерное упрощение [13,14]. Какие-то тесты просто могут обнаружить ошибку в исходных дан- ных и немедленно прекратить выполнение программы, другие же — выпол- нить долгие многочасовые вычисления. Аналогично в некоторых случаях один тест требует значительных ресурсов (оборудования, расходных мате- риалов или времени программистов), тогда как другой не требует ничего, кроме компьютерного времени. По иному сценарию выполнение всех тестов может быть коротким, но затраты на проверку результатов работы програм- мы значительно различаться. Таким образом, оценивая сравнительную цен- ность тестов, необходимо учесть эти различия в их стоимости. Как и в слу- чае с тестами, ошибки могут быть различными по серьезности. Незаметная для пользователей грамматическая ошибка в интерфейсе программы может привести к неправильному функционированию управляемого устройства, что, в свою очередь, привести к катастрофе. Известными примерами явля- ются потеря космических аппаратов для исследования Марса (Mars Polar Lander, Mars Climate Orbiter) и ракетоносителя Ariane, а также получение смертельной дозы радиации на аппарате лучевой терапии Therac-25. Серь- езность ошибок также может быть важным компонентом ценности выяв- ляющего их теста. На практике стоимость тестов и серьезность ошибок могут значительно различаться, а методы, разработанные для улучшения очередности выпол- нения тестов и сама метрика APFD могут не дать удовлетворительных ре- Использование информации о стоимости тестов и серьезности ошибок … Системні дослідження та інформаційні технології, 2008, № 1 65 зультатов. Поэтому в данной статье рассматриваются не только новые мето- ды приоритезации, учитывающие как стоимость тестов, так и серьезность ошибок, но и новая обобщенная метрика для измерения скорости их выяв- ления, учитывающая различающиеся стоимости тестов и серьезности оши- бок, а также приводятся результаты применения этих методов для разных распределений стоимости тестов и серьезности ошибок. Прежде всего для анализа приоритезации необходимо оценить количе- ственно ее эффективность. МЕТРИКА APFD В работах [4–6, 12] использовалась метрика APFD (weighted average of the percentage of faults detected), оценивающая скорость выявления ошибок на- бором тестов в интервале от 0 до 100. Чем больше значение метрики, тем быстрее выявляются ошибки. Однако данная метрика основывается на двух допущениях: 1) все ошибки идентичны по серьезности и 2) все тесты иден- тичны по стоимости. Эти допущения выражаются в том, что данная метрика просто определяет процент выявленных ошибок для выполненной части на- бора тестов. Следующие примеры поясняют проблемы с этими двумя допу- щениями. Пример 1. Рассмотрим сценарий, показанный на рис. 1. В метрике APFD, когда все десять ошибок одинаково серьезны и все пять тестов равны по стоимости, порядки A–B–C–D–E и B–A–C–D–E являются эквива- Рис. 1. Примеры, иллюстрирующие метрику APFD: а — тесты и выявленные ими ошибки; б — APFD для приоритезированного набора тестов Т1; в —для Т2; г —для Т3; д —для Т4 xxxE xD xxxxxxxC xxxxB xxA 10987654321 Ошибка Тест xxxE xD xxxxxxxC xxxxB xxA 10987654321 Ошибка Тест 20 40 60 80 0,2 0,4 0,6 0,8 1,00 0 100 П ро це нт вы яв ле нн ы х ош иб ок Выполненная часть набора тестов Порядок тестов: A-B-C-D-E Площадь = 50% 20 40 60 80 0,2 0,4 0,6 0,8 1,00 0 100 П ро це нт вы яв ле нн ы х ош иб ок Выполненная часть набора тестов Порядок тестов: C-E-B-A-D Площадь = 84% a б 20 40 60 80 0,2 0,4 0,6 0,8 1,00 0 100 П ро це нт вы яв ле нн ы х ош иб ок Выполненная часть набора тестов Порядок тестов: E-D-C-B-A Площадь = 64% в г д 0 0 0 Площадь = 76% Выполненная часть набора тестов П ро це нт в ы яв ле нн ы х ош иб ок Порядок тестов E-C-B-A-D А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2008, № 1 66 лентными с точки зрения скорости выявления ошибок. Т.е., если поменять местами тесты A и B, скорость выявления ошибок не изменится. Эта равно- ценность отражается в эквивалентных значениях метрики APFD (50%). (Значение метрики соответствует площади, ограниченной кривой.) Допус- тим, что стоимость теста B в два раза превосходит стоимость теста A, тре- бующего два часа машинного времени, тогда как тест A — один час. С точ- ки зрения ошибок, выявленных за час, порядок тестов A–B–C–D–E предпочтительней порядка B–A–C–D–E, который выявляет ошибки быст- рее. Однако метрика APFD считает эти два порядка равноценными. Пример 2. Работая опять со сценарием, показанным на рис. 1, предпо- ложим, что все пять тестов имеют равную стоимость и что ошибки 2…10 имеют значение серьезности, равное k , тогда как ошибка 1 имеет серьез- ность k2 . В данном случае тест A выявляет одну более серьезную ошибку и одну менее серьезную, тогда как тест B — только две менее серьезные ошибки. С точки зрения скорости выявления суммарной серьезности оши- бок порядок тестов A–B–C–D–E предпочтительней порядка B–A–C–D–E. Но снова метрика APFD оценивает эти два порядка одинаково. Пример 3. Примеры 1 и 2 демонстрируют ситуации, в которых метрика APFD оценивает два порядка тестов, как эквивалентные, а интуиция пока- зывает, что они не должны быть таковыми. Также возможна ситуация, когда при неодинаковой стоимости тестов или серьезности ошибок, метрика APFD дает более высокую оценку худшему порядку тестов. Предположим (рис. 1), что все десять ошибок равнозначны по серьезности и что каждый из тестов A, B, D и E требует один час для выполнения, но тест C — десять ча- сов. Метрика APFD порядку тестов C–E–B–A–D присвоила значение APFD 84% (рис. 1, г). Рассмотрим иной порядок E–C–B–A–D (рис. 1, д). Так как данная метрика не дифференцирует тесты согласно их стоимости, то все вертикальные столбики на графике (индивидуальные тесты) имеют одина- ковую ширину. Значение APFD для данного порядка 76% ниже значения для порядка C–E–B–A–D. Однако с точки зрения ошибок, выявленных за единицу времени, второй порядок (E–C–B–A–D) предпочтительнее: он вы- являет три ошибки в течение первого часа и остается лучшим, чем первый порядок, до конца выполнения второго теста. Аналогичный пример может быть приведен для использования ошибки с неравной серьезностью при равной стоимости тестов. НОВАЯ МЕТРИКА APFDC Примеры подсказывают, что метрика, которая предполагает равную стои- мость тестов и равную серьезность ошибок, может давать неудовлетвори- тельные результаты. Важно понимать: существует компромисс между стои- мостью тестов и стоимостью невыявленных в программе ошибок. Поэтому следует учесть этот компромисс в процессе приоритезации тестов. Метрика для оценивания порядков тестов должна содержать факторы, лежащие в ос- нове компромисса. В данной работе такая метрика оценивает порядки тес- тов, пропорционально скорости выявления единиц серьезности выявленных ошибок на единицу стоимости тестов. Автором создана такая метрика (адаптированная APFD). Назовем ее APFDC. Использование информации о стоимости тестов и серьезности ошибок … Системні дослідження та інформаційні технології, 2008, № 1 67 Создание новой метрики требует двух изменений (рис. 1). Во-первых, на горизонтальной оси на графике заменим «Выполненная часть набора тес- тов» на «Процент суммарной затраченной стоимости тестов». Теперь каж- дый тест в наборе представлен интервалом вдоль горизонтальной оси, и длина его пропорциональна доли стоимости данного теста в суммарной стоимости тестов в наборе. Во-вторых, на вертикальной оси графика заме- ним «Процент выявленных ошибок» на «Процент суммарной серьезности выявленных ошибок». Теперь каждая ошибка, выявленная набором тестов, представлена интервалом вдоль вертикальной оси, и высота его пропорцио- нальна доли ее серьезности в общей сумме серьезности ошибок. Здесь стои- мость теста и серьезность ошибки могут быть интерпретированы и измере- ны по-разному. Если время выполнения теста (подготовки, самого выполнения и проверки результатов) является основной составляющей стоимости теста, то оно может быть достаточным для ее измерения. Однако стоимость теста может также базироваться на таких факторах, как стои- мость оборудования и зарплата персонала. Аналогично серьезность ошибки также может быть измерена соответственно времени, необходимому для выявления и исправления ошибки, либо можно учесть стоимость потери бизнеса, судебных исков или ущерб, причиненный людям или собственно- сти, и т. д. В любом случае метрика APFDC позволяет учесть такие интер- претации. (Заметим, что в метрике APFDC мы не пытаемся предсказать стоимость тестов и ошибок, что может быть достаточно сложно, а пытаемся лишь измерить их постфактум для оценки различных порядков тестов.) С учетом этой новой интерпретации на графиках вклад теста взвешива- ется в горизонтальном направлении по его стоимости и вдоль вертикального направления по суммарной серьезности выявленных им ошибок. В таких графиках кривая ограничивает большую площадь для порядка тестов, кото- рый демонстрирует больше единиц серьезности ошибок, выявленных на единицу стоимости теста. Эта площадь и составляет нашу новую метрику APFDC. На рис. 2 показаны графики для каждого из трех примеров, описанных выше. Пара графиков, расположенная слева (рис. 2,а), соответствует приме- ру 1: верхний график — метрика APFDC для порядка тестов A–B–C–D–E, нижний — APFDC для порядка B–A–C–D–E. Отметим, что оригинальная метрика APFD не различила бы эти два порядка, а APFDC отдает предпочте- ние порядку A–B–C–D–E, который быстрее выявляет ошибки. Другие па- ры графиков иллюстрируют применение метрики APFDC в примерах 2 и 3. Пара графиков на рис. 2, б, соответствующая примеру 2, показывает, что новая метрика дает более высокую оценку порядку тестов, который раньше выявляет более серьезную ошибку (A–B–C–D–E), при допущении, что ошибкам 2…10 присвоено значение серьезности 1 и ошибке 1 — значение серьезности 2. Пара графиков на рис. 2, в, соответствующая примеру 3, по- казывает, что новая метрика различает порядки тестов, где тест C имеет вы- сокую стоимость: вместо недооценивания порядка E–C–B–A–D метрика теперь присваивает ему большее значение, чем порядку C–E–B–A–D. А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2008, № 1 68 Формула для новой метрики Пусть T будет набором, содержащим n тестов со стоимостями nttt ,,, 21 … ; F — множеством m ошибок, выявленных набором тестов T ; nfff ,...,, 21 — значениями серьезности этих ошибок. Пусть iFT будет пер- вым тестом в порядке T ′ набора T , который выявляет ошибку i . Тогда формула для метрики CAPFD будет иметь следующий вид [15]: ∑∑ ∑ ∑ == = = ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ − = m i i n i i m i TF n TFj ji C ft ttf i i 11 1 2 1 APFD . ОЦЕНКА СТОИМОСТИ ТЕСТОВ Существует две задачи, связанные со стоимостью тестов: 1) измерение или оценка стоимости с целью вычисления значения метрики CAPFD для по- рядка тестов и 2) оценивание стоимости для использования при приоритеза- ции тестов. Стоимость теста связана с ресурсами, затраченными на его вы- полнение и проверку результатов. Возможны различные объективные П ро це нт с ум м ар но й се рь ез но ст и вы яв ле нн ы х ош иб ок П ро це нт с ум м ар но й се рь ез но ст и вы яв ле нн ы х ош иб ок П ро це нт с ум м ар но й се рь ез но ст и вы яв ле нн ы х ош иб ок Процент суммарной затраченной стоимости тестов Процент суммарной затраченной стоимости тестов Процент суммарной затраченной стоимости тестов Порядок тестов: A–B–C–D–E Порядок тестов: C–E–B–A–D Порядок тестов: A–B–C–D–E П ро це нт с ум м ар но й се рь ез но ст и вы яв ле нн ы х ош иб ок П ро це нт с ум м ар но й се рь ез но ст и вы яв ле нн ы х ош иб ок П ро це нт с ум м ар но й се рь ез но ст и вы яв ле нн ы х ош иб ок Процент суммарной затраченной стоимости тестов Процент суммарной затраченной стоимости тестов Процент суммарной затраченной стоимости тестов Порядок тестов: B–A–C–D–E Порядок тестов: E–C–B–A–D Порядок тестов: B–A–C–D–E а б в Рис. 2. Примеры, иллюстрирующие метрику APFDС: а — для примера 1; б — для примера 2; в — для примера 1 Использование информации о стоимости тестов и серьезности ошибок … Системні дослідження та інформаційні технології, 2008, № 1 69 метрики, например: когда основную часть стоимости составляет машинное время или время персонала, стоимость теста может измерять фактическое время, затраченное на тестирование программы заданным тестом. Другая метрика учитывает денежные затраты на выполнение теста и проверку ре- зультатов. Она может отражать амортизированную стоимость оборудова- ния, зарплату, стоимость материалов для тестирования, потери дохода от задержки выпуска ПО, от срыва сроков релизации и т. д. Определить стоимость тестов относительно просто после тестирования, что приемлемо для метрики APFDC. Для этого следует знать, какие ресурсы затрачены на каждый тест. Однако гораздо сложнее оценить стоимость пе- ред началом тестирования, а это нужно для использования ее в процессе приоритезации тестов, т.е. необходимо предугадать стоимость тестов. Од- ним из подходов является анализ теста и программного кода, выполненного тестом. Другим подходом, который используется в этой работе, является использование данных о стоимости тестов на предыдущих сессиях тестиро- вания (что представляется возможным при регрессивном тестировании). Полагаем, что стоимость тестов значительно не меняется от одной версии программы к другой. ОЦЕНКА СЕРЬЕЗНОСТИ ОШИБОК Как и со стоимостью тестов, существует два подхода к серьезности ошибок: 1) их измерение или оценка в метрике APFDC для определения порядка тес- тов и 2) оценка ошибок для использования информации при приоритезации тестов. Серьезность ошибки связана с понесенными затратами, если она ос- талась в программе после реализации. Возможны различные подходы к из- мерению такой серьезности. • Измерение серьезности ошибки как суммы средств, потерянных в ре- зультате сбоя, вызванного данной ошибкой (с учетом его вероятности). Та- кой подход можно применять в ПО, где сбой приводит к катастрофическим последствиям, например, человеческим жертвам, судебным искам, потере оборудования. • Оценка влияния ошибки на надежность ПО. Применяется к ПО (на- пример, текстовый редактор для ПК), где ошибки вызывают всего лишь не- удобство для пользователей, и маловероятно, что сбой будет иметь серьез- ные последствия (например, снижение надежности ПО, приводящее к потере клиентов). Аналогично ситуации со стоимостью тестов, нас интересует как оценка серьезности ошибок до их обнаружения, так и оценка их серьезности после обнаружения. Когда тестирование закончено и уже есть информация об ошибках, можно оценить их серьезность для использования в метрике APFDC (хотя это не так просто, как со стоимостью тестов). С другой сторо- ны, перед началом тестирования нам необходимо оценить серьезность по- тенциальных ошибок для использования данной информации в процессе приоритезации, а это намного сложнее, чем оценка стоимости тестов. Таким образом, требуется метрика, связывающая тесты с серьезностью выявлен- ных ошибок. А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2008, № 1 70 Если бы мы знали, какие ошибки выявляет каждый тест и их серьез- ность, было бы несложно связать тесты с серьезностью ошибок. Однако на практике эта информация недоступна до завершения тестирования. Сущест- вует два подхода к такой оценке: 1) оценка критичности модулей и 2) оцен- ка критичности тестов. При оценивании критичности модуля необходимо связать серьезность ошибки с критичностью модуля (или любого другого компонента программного кода, например, основного блока, функции, фай- ла или объекта), в котором данная ошибка может содержаться. При оцени- вании критичности теста необходимо связать тесты с серьезностью ошибок, которые они могут выявить напрямую. Оценив критичность модулей или тестов, мы надеемся включить серьезность ошибок в процесс приоритеза- ции тестов, прежде чем начнется сам процесс тестирования. В данной рабо- те используется оценка критичности модулей. ПРИМЕР ИСПОЛЬЗОВАНИЯ ИНФОРМАЦИИ О СТОИМОСТИ ТЕСТОВ И СЕРЬЕЗНОСТИ ОШИБОК Для практического применения предложенной метрики и некоторых моди- фикаций ее использования нами проведено исследование, цель которого изучить, как различные распределения стоимости тестов и серьезности ошибок могут влиять на скорость их выявления измеряемой метрикой APFDC. Понятие критичности модуля применялось для оценки стоимости ошибок в приоритезации. Рассмотрено влияние различных распределений стоимости тестов, серьезности ошибок и их комбинаций на относительную эффективность методов приоритезации. Объект использования Как объект данного исследования использовалась программа space, разрабо- танная Европейским космическим агентством и состоящая из 6218 строк кода (space — это интерпретатор языка для задания конфигурации массива ADL), а также 50 наборов тестов, адекватных покрытию ветвлений. Создано и применено 29 версий данной программы с некоторым количеством оши- бок в каждой [15]. Методы приоритезации Выбраны следующие методы приоритезации [14, 15]: • fn-cov-ccmult-fb сортирует тесты по дополнительному покрытию критичности функций. Другими словами, ценность тестов вычисляется как сумма критичности покрытых ими функций (но при этом еще покрытых ра- нее упорядоченными тестами). Если более чем один тест имеет наибольшую сумму, то тест, покрывающий наибольшее количество непокрытых функ- ций, считается лучшим. • st-cov-ccmult-fb похож на fn-cov-ccmult-fb, но вместо покрытия по функциям используется покрытие по операторам (критичность операторов равна критичности содержащих их функций). • fn-fi-cov-ccmult-fb похож на fn-cov-ccmult-fb, но вместо суммиро- вания критичности покрытых функций каждое слагаемое еще умножается Использование информации о стоимости тестов и серьезности ошибок … Системні дослідження та інформаційні технології, 2008, № 1 71 на индекс ошибки [16], аппроксимирующий уровень склонности функции к содержанию ошибок [17, 18]. • random упорядочивает тесты случайным образом. Распределения стоимости тестов Мы случайным образом присвоили стоимость тестам соответственно пяти распределениям. 1. Unit. Стоимость каждого теста равна единице, что соответствует си- туации, в которой стоимость тестов не учитывается. 2. Random. Стоимость тестов равномерно распределена на интервале от 1 до 10. 3. Normal. Стоимость тестов нормально распределена с 5=µ и 5=σ , но ограничена интервалом [1, 10]. 4. Mozilla. Распределение стоимости тестов соответствует ее распреде- лению по четырем категориям в программе Mozilla (табл. 1).(Mozilla — это интернет-браузер с открытым кодом. См. www.mozilla.org. и budzilla. mozilla.org.) 5. QTB. Распределение стоимости тестов соответствует ее распределе- нию по двум категориям в программе QTB (табл. 2) [19]. Т а б л и ц а 1 . Распределение стоимости тестов в программе Mozilla Название Уровень Описание Процент HTML 1 Наименьшая стоимость 87 Printing 2 Большая — // — // 1 Smoke tests 3 Высокая — //— // 2 Buster 4 Наибольшая — //— // 10 Таблица 2. Распределение стоимости тестов в программе QTB Уровень Описание Процент 1 Низкая стоимость 88 10 Высокая —//—// 12 Для того чтобы задействовать каждое распределение стоимости тестов (кроме unit) сгенерировано множество стоимостей, элементы которых были случайным образом присвоены тестам. Распределение серьезности ошибок Мы использовали три следующих распределения серьезности ошибок: 1. Unit. Все ошибки имеют серьезность, равную единице, что соответ- ствует случаю, в котором серьезность ошибок не учитывается. 2. Mozilla-lin. Соответствует распределению в программе Mozilla (табл. 3) по шести уровням. Значения серьезности присвоены по линейной шкале от 1 до 6. 3. Mozilla-exp. Подобно Mozilla-lin, но в нем значения серьезности присвоены по экспоненциальной шкале от 20 до 25. А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2008, № 1 72 Т а б л и ц а 3 . Распределение серьезности ошибок в программе Mozilla Уровень по линейной шкале Уровень по экспоненциальной шкале Серьезность Процент 1 1 Тривиальная 2 2 2 Мелкая 11 3 4 Средняя 6 4 8 Крупная 76 5 16 Критическая 4 6 32 Блокирующая 2 Использование распределения серьезности ошибок unit тривиально по сравнению с распределениями Mozilla-lin и Mozilla-exp. Сложность состоя- ла в том, что наши методы приоритезации содержали информацию о кри- тичности модулей, но не имели никаких исторических данных для оценки критичности модулей. Таким образом, требовалось сгенерировать как кри- тичность модулей, так и серьезность ошибок. Если присвоить критичность модулям и серьезность ошибкам независимо, то взаимосвязь между ними не будет отражена. Существование такой взаимосвязи является необходимым требованием для методов приоритезации, которые используют критичность модулей в предсказании серьезности ошибок. Вместо этого в нашем подхо- де мы допустили, что существует корреляция между критичностью модулей и серьезностью содержащихся в них ошибок. Затем, полагаясь на это допу- щение, сгенерировали значения критичности модулей и серьезности оши- бок. Для использования каждого распределения серьезности ошибок (кроме распределения unit) сгенерировано множество значений критич- ности для каждого заданного распределения, и случайным образом эти зна- чения были присвоены модулям, после чего каждой ошибке f присвоено значение серьезности, равное критичности содержащего ее модуля. Такой подход не позволяет анализировать и объективно сравнивать ме- тоды приоритезации, если, конечно, наши исследования не ограничены гипотезой: существует значительная корреляция между критичностью мо- дуля и серьезностью содержащейся в нем ошибки. Однако данная работа направлена не на оценку эффективности методов приоритезации, а на оцен- ку влияния распределений серьезности ошибок на значения метрики APFDC. Комбинации распределений стоимости тестов и серьезности ошибок При пяти различных распределениях стоимости тестов и трех распределе- ниях серьезности ошибок можно создать пятнадцать комбинаций. Однако ограничимся девятью наиболее интересными (табл. 4, «X» указывает на рас- смотренные в исследованиях комбинации). Т а б л и ц а 4 . Комбинации распределения серьезности ошибок (слева) и стоимости тестов (сверху) Unit Random Normal Mozilla QTB Unit X X X X X Mozilla-lin X X Mozilla-exp X X Использование информации о стоимости тестов и серьезности ошибок … Системні дослідження та інформаційні технології, 2008, № 1 73 Результаты исследований Сгруппируем результаты исследований в три этапа. Сначала проанализиру- ем влияние распределений стоимости тестов, используя различные методы приоритезации, при распределении серьезности ошибок unit. Затем — влияние распределений серьезности ошибок, используя различные методы приоритезации, при распределении стоимости тестов unit. В конце проана- лизируем последствия комбинаций распределений для стоимости тестов и серьезности ошибок вместе. Варьирование распределения стоимости тестов На рис. 3 показаны значения APFDC для различных распределений стоимо- сти тестов. Здесь видны пять групп столбиков — одна соответствует значе- ниям APFDC, усредненным для всех методов приоритезации (слева), а четы- ре группы — усредненным значениям APFDC, по одной группе на каждый метод приоритезации. Группа содержит пять индивидуальных столбиков — по одному на распределение. Высота столбика определяет среднее значение APFDC, измеренное для наборов тестов, приоритезированных соответст- вующим методом и соответственно заданному распределению [13]. Как видно из рис. 3, распределение стоимости тестов влияет на ско- рость выявления ошибок приоритезированного набора тестов в соответст- вии с метрикой APFDC для всех методов приоритезации собранных вместе (группа столбиков слева). Эти различия были статистически значимыми, однако не оказались такими большими, как ожидалось: средние значения APFDC для различных распределений отличались не более чем на один про- цент. Также видно (внутри каждой из четырех групп столбиков справа), что Рис. 3. Средние значения APFDC для каждого распределения и каждого метода приоритезации A PF D C А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2008, № 1 74 степень влияния для разных методов была неодинакова. Например, для ме- тода st-cov-ccmult-fb различия между средними значениями APFDC для раз- ных распределений были статистически значимыми, тогда как для метода fn-fi-cov-ccmult-fb — нет. Анализ был выполнен для средних значений APFDC. Исследование же индивидуальных различий в значениях APFDC показывает иную картину. Графики на рис. 4 дают абсолютную разницу в значениях APFDC приорите- зированных наборов тестов с распределением стоимости тестов unit и при- оритезированных наборов тестов с остальными четырьмя распределениями стоимости тестов (графики от A до D, соответственно). На каждом графике горизонтальная ось содержит 2000 наблюдений APFDC — одно на каждый из 50 приоритезированных наборов тестов для каждой из десяти версий и для каждого из четырех методов приоритезации. Наблюдения отсортирова- ны по методам в следующем порядке: fn-cov-ccmult-fb, st-cov-ccmult-fb, fn- fi-cov-ccmult-fb, random, а затем по набору тестов и версиям. (Сплошные вертикальные линии на графиках разделяют наблюдения по четырем мето- дам.) На рис. 4 видно, насколько для индивидуальных приоритезированных наборов тестов значение APFDC для распределения стоимости тестов unit отличается от значений APFDC каждого другого распределения. Во многих случаях разница в значениях APFDC превышает 20%, а в некоторых — 50%. U ni t– R an do m U ni t– N or m al U ni t– M oz ill a U ni t– Q TB Observations Absolute differences: Unit vs Random Observations Absolute differences: Unit vs Normal Observations Absolute differences: Unit vs Mozilla Observations Absolute differences: Unit vs QTB Рис. 4. Абсолютные различия в значениях APFDC по всем наблюдениям между распределением unit и каждым из четырех оставшихся распределений стоимости тестов Использование информации о стоимости тестов и серьезности ошибок … Системні дослідження та інформаційні технології, 2008, № 1 75 Это дает дополнительные аргументы в поддержку необходимости использо- вания распределения стоимости тестов как составной части метрики APFDC (в противном случае это может привести к неэффективной приоритезации). Кроме того, при распределении стоимости тестов unit значения APFDC эк- вивалентны значениям оригинальной метрики APFD, что показывает вели- чину различий метрик APFD и APFDC. При использовании методов fn-cov- ccmult-fb и st-cov-ccmult-fb распределения стоимости тестов более непо- стоянны в значениях APFDC, чем при других методах (st-cov-ccmult-fb про- явил наибольшее непостоянство). Отсюда следует, что для некоторых мето- дов поведение распределений более предсказуемо, чем для других. В методе random в среднем для каждого распределения стоимости тес- тов все методы приоритезации дали значительные улучшения в оценках значений APFDC (см. рис. 3). Таким образом, независимо от распределения стоимости тестов, приоритезация улучшила скорость выявления ошибок. Варьирование распределения серьезности ошибок Проведенный анализ распределений серьезности ошибок показывает, что распределение имеет значительное влияние на значения APFDC для всех методов приоритезации (рис. 5). На рис. 5 изображены три группы диаграмм размаха (по одной на метод). В группе содержится одна диаграмма размаха для каждого из трех распределений серьезности ошибок. Индивидуальная диаграмма размаха показывает распределение значений APFDC для всех на- боров тестов, приоритезированных соответствующим методом и соответст- вующим распределением серьезности ошибок. Рис. 5. Распределения значений APFDC (по одному на распределение серьезности ошибок и на метод приоритезации) A PF D C MOZ EXP А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2008, № 1 76 Как видно из рис. 5, fn-fi-cov-ccmult-fb показал наиболее стабильное поведение среди всех распределений, а также более высокую эффективность приоритезации. Однако метод random наиболее склонен к вариациям рас- пределений и показал наихудшие результаты. Варьирование распределения стоимости тестов и серьезности ошибок Проанализировав влияние вариации распределений стоимости тестов и серьезности ошибок в отдельности, рассмотрим результаты, полученные варьированием обеих распределений одновременно. Для каждой из интересующей нас комбинации распределений приме- ним метод st-cov-ccmult-fb и представим значения APFDC лишь 50 случай- ным образом выбранных наблюдений (из 500). На рис. 6 показана диаграмма рассеяния для представления трех ком- бинированных распределений: 1) стоимость тестов unit и серьезность оши- бок unit, 2) стоимость тестов Mozilla-lin и серьезность ошибок Mozilla, 3) стоимость тестов Mozilla-exp и серьезность ошибок Mozilla. У каждой ото- браженной точки значение x соответствует значению APFDC при распреде- лении unit-unit и значение y соответствует значению APFDC при одном из двух распределений. Значения APFDC при распределении unit-unit сущест- венно отличаются от значений APFDC при других распределениях. Это оче- видно из большого разброса на графиках для обоих распределений Mozilla (рис. 6). Выбор различных комбинаций распределений стоимости тестов и серьезности ошибок имеет влияние на метрику APFDC. Для дальнейшей иллюстрации различий между распределениями на рис. 6 также показаны линии регрессии. Можно заметить, что комбинация распределений Mozilla и Mozilla-exp дает наивысшие значения APFDC, но с приближением значений APFDC к 100 обе комбинации распределений, ха- рактеризующих программу Mozilla, сходятся. A PF D C APFDC for unit-unit Рис. 6. Диаграмма рассеяния значений APFDC для комбинации распределений Использование информации о стоимости тестов и серьезности ошибок … Системні дослідження та інформаційні технології, 2008, № 1 77 ВЫВОДЫ Предложены методы приоритезации и метрика APFDC, учитывающие стои- мость тестов и серьезность ошибок. Исследованы влияние вариации комби- нации распределений и шкал (например, линейной или экспоненциальной), применяющихся для представления информации о стоимости тестов и серь- езности ошибок, механизмы использования такой информации в методах приоритезации, а также подходы к получению этой информации. Описано, как различные методы и распределения влияют на метрику APFDC и как эти методы сравниваются друг с другом в зависимости от различных распреде- лений. Показано, как распределения, шкалы и другие факторы влияют на исход приоритезации. Определено, что выбор распределения и шкалы должен быть сделан на основе анализа, содержащего оценку серьезности ошибок и стоимости тестов в реальной среде (которые нам пока еще недос- тупны). Автор благодарит Г. Ротермела и С. Элбаума за участие в проведении описанных исследований. ЛИТЕРАТУРА 1. Ghezzi C., Jazayeri M., Mandrioli D. Fundamentals of Software Engineering. — Upper Saddle River: Prentice Hall, 1991. — 573 p. 2. Avritzer A., Weyuker E.J. The automatic generation of load test suites and the as- sessment of the resulting software // IEEE Transactions on Software Engineer- ing. — 1995. — 21, № 9. — Р. 705–716. 3. Wong W., Horgan J., London S., Agrawal H. A study of effective regression testing in practice // In Proceedings of the Eighth International Symposium on Software Reliability Engineering. — Albuquerque, NM, USA. — 1997. — P. 230–238. 4. Rothermel G., Untch R., Chu C., Harrold M.J. Test case prioritization: an empirical study // In Proceedings of the International Conference on Software Mainte- nance. — Oxford, England, UK. — 1999. — P. 179–188. 5. Elbaum S., Malishevsky A., Rothermel G. Prioritizing test cases for regression testing // In Proceedings of the International Symposium on Software Testing and Analysis. — Portland, Oregon. — 2000. — Р. 102–112. 6. Rothermel G., Untch R.H., Chu C., Harrold M.J. Test case prioritization // IEEE Transactions on Software Engineering. — 2001. — 27, № 10. — Р. 929–948. 7. Jones J.A., Harrold M.J. Test-suite reduction and prioritization for modified condi- tion/decision coverage // In Proceedings of the International Conference on Soft- ware Maintenance. — Florence, Italy. — 2001. — Р. 92–101. 8. Elbaum Sebastian, Malishevsky Alexey G., Rothermel Gregg. Test Case Prioritiza- tion: A family of empirical studies // IEEE Transactions On Software Engineer- ing. — 2002. — 28, № 2. — P. 159–182. 9. Srivastava A., Thiagarajan J. Effectively prioritizing tests in development environ- ment // In Proceedings of the International Symposium on Software Testing and Analysis. — Via di Ripetta, Rome – Italy. — 2002. — Р. 97–106. 10. Kim J.-M., Porter A. A history-based test prioritization technique for regression test- ing in resource constrained environments // In Proceedings of the International Conference on Software Engineering. — Orlando, Florida, USA. — 2002. — Р. 119–129. А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2008, № 1 78 11. Srikanth H. Value-driven system level test case prioritization // Ph.D. Dissertation — North Carolina State University, Releigh, NC. — 2005. — 92 p. 12. Малышевский А.Г. Приоритезация тестов в регрессивном тестировании // Сис- темні дослідження та інформаційні технології. — 2006. — № 4. — С. 16–32. 13. Elbaum S., Malishevsky A., Rothermel G. Incorporating Varying Test Costs and Fault Severities into Test Case Prioritization // Technical Report 00-60-09. — Computer Science Department. — Oregon State University. — August 2000. — 14 p. 14. Elbaum S., Malishevsky A., Rothermel G. Incorporating varying test costs and fault severities into test case prioritization // In Proceedings of the 23rd International Conference on Software Engineering. — Toronto, Ontario, Canada. — May 2001. — P. 329–338. 15. Malishevsky A.G. Test case prioritization // Ph.D. Dissertation. — Oregon State University, Corvallis, Oregon, USA. — 2003. — 291 p. 16. Elbaum S.G., Munson J.C. Code churn: A measure for estimating the impact of code change // In Proceedings of the International Conference on Software Mainte- nance. — Bethesda, MD, USA. — 1998. — Р. 24–31. 17. Khoshgoftaar T.M., Munson J.C. Predicting software development errors using com- plexity metrics // Journal on Selected Areas in Communications. — 1990. — 8, № 2. — Р. 253–261. 18. Munson J.C. Software measurement: Problems and practice // Annals of Software Engineering. — 1995. — 1, № 1. — Р. 255–285. 19. Elbaum S.G., Munson J.C. Software evolution and the code fault introduction proc- ess // Empirical Software Engineering Journal. — 1999. — 4, № 3. — Р. 241– 262. Поступила 10.11.2007
id journaliasakpiua-article-109775
institution System research and information technologies
keywords_txt_mv keywords
language Russian
last_indexed 2025-07-17T10:23:08Z
publishDate 2017
publisher The National Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute"
record_format ojs
resource_txt_mv journaliasakpiua/8c/ff2cd4d8196622a9f5f64d50dfd9368c.pdf
spelling journaliasakpiua-article-1097752018-04-11T11:06:06Z Using information on test costs and fault severities in the test case prioritization process Использование информации о стоимости тестов и серьезности ошибок в процессе приоритезации тестов Використання інформації про вартість тестів та серйозність помилок у процесі пріоритезації тестів Malishevsky, A. G. This work has examined introducing information on test costs and fault severities into test case prioritization in regression testing. Methods to estimate test costs and fault severities are presented. New prioritization techniques and a metric to measure their efficiency are demonstrated. The application of these techniques and the metric, and also the influence of selecting test costs and fault severities on prioritization have been investigated. Рассмотрено использование информации о стоимости тестов и серьезности ошибок в процессе приоритезации в регрессивном тестировании. Описаны способы оценки стоимости тестов и серьезности ошибок. Приведены новые методы приоритезации и метрика для оценки их эффективности. Исследовано применение описанных методов и метрики, а также влияние выбора стоимости тестов и серьезности ошибок на приоритезацию. Розглянуто використання інформації про вартість тестів і серйозність помилок у процесі пріоритезації у регресивному тестуванні. Описано способи оцінювання вартості тестів та серйозності помилок. Наведено нові методи пріоритезації та метрика для оцінки їх ефективності. Дослідженно застосування описаних методів і метрики, а також вплив вибору вартості тестів та серйозності помилок на пріоритезацію. The National Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute" 2017-09-08 Article Article application/pdf https://journal.iasa.kpi.ua/article/view/109775 System research and information technologies; No. 1 (2008); 63-78 Системные исследования и информационные технологии; № 1 (2008); 63-78 Системні дослідження та інформаційні технології; № 1 (2008); 63-78 2308-8893 1681-6048 ru https://journal.iasa.kpi.ua/article/view/109775/104816 Copyright (c) 2021 System research and information technologies
spellingShingle Malishevsky, A. G.
Використання інформації про вартість тестів та серйозність помилок у процесі пріоритезації тестів
title Використання інформації про вартість тестів та серйозність помилок у процесі пріоритезації тестів
title_alt Using information on test costs and fault severities in the test case prioritization process
Использование информации о стоимости тестов и серьезности ошибок в процессе приоритезации тестов
title_full Використання інформації про вартість тестів та серйозність помилок у процесі пріоритезації тестів
title_fullStr Використання інформації про вартість тестів та серйозність помилок у процесі пріоритезації тестів
title_full_unstemmed Використання інформації про вартість тестів та серйозність помилок у процесі пріоритезації тестів
title_short Використання інформації про вартість тестів та серйозність помилок у процесі пріоритезації тестів
title_sort використання інформації про вартість тестів та серйозність помилок у процесі пріоритезації тестів
url https://journal.iasa.kpi.ua/article/view/109775
work_keys_str_mv AT malishevskyag usinginformationontestcostsandfaultseveritiesinthetestcaseprioritizationprocess
AT malishevskyag ispolʹzovanieinformaciiostoimostitestoviserʹeznostiošibokvprocesseprioritezaciitestov
AT malishevskyag vikoristannâínformacííprovartístʹtestívtaserjoznístʹpomilokuprocesípríoritezacíítestív