Пріоритизація тестів як метод швидкого виявлення серйозних помилок

The use of information on the test costs and fault severities in the prioritization process in a regression testing is considered. Methods for estimation of test costs and fault severities are described. Fault severity is explored in relation to the program reliability. Three methods for incorporati...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Datum:2010
1. Verfasser: Malishevsky, Alexey G.
Format: Artikel
Sprache:Russisch
Veröffentlicht: The National Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute" 2010
Online Zugang:https://journal.iasa.kpi.ua/article/view/106820
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Назва журналу:System research and information technologies
Завантажити файл: Pdf

Institution

System research and information technologies
_version_ 1866301901980565504
author Malishevsky, Alexey G.
author_facet Malishevsky, Alexey G.
author_sort Malishevsky, Alexey G.
baseUrl_str http://journal.iasa.kpi.ua/oai
collection OJS
datestamp_date 2018-04-06T12:27:35Z
description The use of information on the test costs and fault severities in the prioritization process in a regression testing is considered. Methods for estimation of test costs and fault severities are described. Fault severity is explored in relation to the program reliability. Three methods for incorporating the information into the prioritization process are investigated. The effects of the scale of test cost and fault severities on the efficiency of the methods for prioritization is established.
first_indexed 2025-07-17T10:21:41Z
format Article
fulltext © А.Г. Малышевский, 2010 Системні дослідження та інформаційні технології, 2010, № 4 110 TIДC ПРОБЛЕМНО І ФУНКЦІОНАЛЬНО ОРІЄНТОВАНІ КОМП’ЮТЕРНІ СИСТЕМИ ТА МЕРЕЖІ УДК 004.415.53 ПРИОРИТЕЗАЦИЯ ТЕСТОВ КАК МЕТОД БЫСТРОГО ВЫЯВЛЕНИЯ СЕРЬЕЗНЫХ ОШИБОК А.Г. МАЛЫШЕВСКИЙ Рассмотрено использование информации о стоимости тестов и серьезности ошибок в процессе приоритезации в регрессивном тестировании. Описаны способы оценки стоимости тестов и серьезности ошибок. Рассмотрена серьез- ность ошибок с точки зрения надежности программы. Исследованы три метода внедрения информации о стоимости и критичности тестов в процесс приори- тезации. Исследовано влияние шкалы стоимости тестов и серьезности ошибок на эффективность методов приоритезации. ВВЕДЕНИЕ Одним из методов проверки, удовлетворяет ли программа заданным требо- ваниям и ее спецификации, является тестирование (выполнение программы и проверка ее поведения на соответствие спецификациям). Каждый тест из набора тестов T , использующегося в тестировании, состоит из множества входных данных (сценариев тестирования), состояния системы до получе- ния этих входных данных и ожидаемое состояние системы вместе с выход- ными данными. Обычно набор тестов создается, исходя из некоторого мно- жества правил, называемого критерием адекватности. Данный критерий выражает условия, которым должен удовлетворять набор тестов [1]. На ста- дии сопровождения программы многократно используется регрессивное те- стирование, которое показывает, что внесенные в программу модификации не только изменили программу в соответствии с новыми спецификациями и исправили найденные ошибки, но и не внесли новых ошибок [1]. В регрессивном тестировании растет набор тестов, увеличивая стои- мость и продолжительность тестирования. Например, одна из систем ПО из 20 000 строк кода требует семь недель для тестирования при использовании всех тестов в наборе. Во многих случаях в процессе регрессивного тестиро- вания можно использовать только подмножество набора тестов для провер- ки модифицированной программы. Но иногда бывает сложно использовать или совсем не допускается использование неполного набора тестов, напри- мер, для программ, надежность которых является критичной (авионика или управление медицинским оборудованием). В данном случае для уменьше- ния стоимости регрессивного тестирования может быть применен иной по- дход: тесты упорядочиваются (приоритезируются) для регрессивного тести- рования таким образом, чтобы более важные из них выполнялись в первую очередь. Приоритезация тестов как метод быстрого выявления серьезных ошибок Системні дослідження та інформаційні технології, 2010, № 4 111 Вопросам приоритезации уделено много внимания [2–22]. В методах приоритезации тесты сортируют таким образом, чтобы эффективнее до- стичь заданной цели, например, наиболее быстрого покрытия операторов программного кода, функций программы в порядке частоты их использова- ния или подсистем в порядке частоты их сбоев в прошлом. Возможная цель приоритезации — увеличение скорости выявления ошибок набором тестов в процессе тестирования. Возросшая скорость выявления ошибок может обе- спечить более раннюю обратную связь с регрессивно тестируемой системой и позволить разработчикам начать поиск местонахождения ошибок, а также их исправление раньше, чем это было бы возможно в ином случае. Такая обратная связь обеспечивает выявление ранних признаков того, что задан- ные цели еще не достигнуты, и позволяет принимать стратегические реше- ния о сроках релиза на ранних этапах. Повышенная скорость обнаружения ошибок увеличивает вероятность того, что в случае преждевременного пре- кращения процесса тестирования тесты, обеспечивающие наибольшую способность выявлять ошибки в сроки, выделенные на тестирование, уже были выполнены. В работах [4, 5, 7, 10, 13, 20] была представлена метрика APFD (weighted average of the percentage of faults detected — взвешенное среднее процента выявленных ошибок) для измерения скорости выявления ошибок во время выполнения набора тестов в заданном порядке. В этих работах представлены несколько методов приоритезации, целью которых являлось увеличения скорости выявления ошибок, а также была эмпирически оценена их эффективность. Результаты показали, что некоторые методы приоритеза- ции (например, приоритезация по дополнительному покрытию операторов) могут ускорить выявление ошибок. На практике, как стоимость тестов, так и серьезность ошибок могут значительно отличаться между собой. Поэтому, в последующих работах [6, 9, 21, 22] была рассмотрена приоритезация учитывающая стоимость тес- тов и серьезность ошибок. Также была разработана метрика CAPFD учиты- вающая их, и было проиллюстрировано применение приоритезации. Цель работы — исследование альтернативного подхода и внедрению информации о серьезности потенциальных ошибок в процесс приоритеза- ции используя реальную информацию о стоимости тестов и серьезности ошибок. В данной работе, мы расширим исследования представленные в [6, 9, 21, 22] следующим образом. Мы более детально рассмотрим примене- ние приоритезации учитывающей стоимости тестов и серьезности ошибок, рассмотрим серьезность ошибок с точки зрения их влияния на надежность программы (в предшествующих исследованиях, мы рассматривали серьез- ность как последствия индивидуальных сбоев программы вызванных дан- ной ошибкой), рассмотрим альтернативный подход к внедрению информа- ции о серьезности потенциальных ошибок в процесс приоритезации, рассмотрим большее, нежели в предыдущих работах количество методов приоритезации, используем реальную, вместо искусственно сгенерирован- ной, информацию о стоимости тестов и серьезности ошибок, рассмотрим их различные шкалы, а также проведем расширенные исследования, в которых используем большее количество программ-обьектов исследования. Научная новизна данной работы состоит в разработке и изучении ново- го подхода внедрения стоимости тестов и серьезности ошибок в процесс приоритезации. А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2010, № 4 112 МЕТРИКИ APFD И APFDC Для анализа эффективности приоритезации необходимо оценить ее количе- ственно. В ранних исследованиях [4, 5, 7, 10, 13, 20] использовалась метрика APFD , оценивающая скорость выявления ошибок набором тестов в интер- вале от 0 до 100. Чем больше значение метрики, тем быстрее выявляются ошибки. Метрика APFD проиллюстрирована на рис. 1. Кривая на графике отмечает выявленные в процессе тестирования ошибки. Численное значение метрики — выраженная в процентах площадь под кривой (отмечена серым цветом) относительно площади всего прямоугольника. Рис. 1,а содержит таблицу показывающую какие ошибки (от 1 до 10) выявляет каждый тест (A, B, C, D или E). Четыре части рисунка (б, в, г, д) графически отображают метрику для четырех различных порядков тестов. Однако данная метрика основывается на двух допущениях: 1) все ошибки идентичны по серьезности; 2) все тесты идентичны по стоимости. Эти допущения выражаются в том, что данная метрика просто определяет процент выявленных ошибок для выполненной части набора тестов. Поэто- му в более поздних работах [6, 9, 21, 22], где учитывалась как стоимость тестов так и серьезность ошибок, была разработана и использована метрика CAPFD . Эта метрика используется и в данной работе. В метрике CAPFD , на графике, на горизонтальной оси отображается «Процент суммарной за- траченной стоимости тестов». Здесь, каждый тест в наборе представлен ин- тервалом вдоль горизонтальной оси, чья длина пропорциональна доли стои- Рис. 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 Приоритезация тестов как метод быстрого выявления серьезных ошибок Системні дослідження та інформаційні технології, 2010, № 4 113 мости данного теста в суммарной стоимости тестов в наборе. На вертикаль- ной оси графика, отображается «Процент суммарной серьезности выявлен- ных ошибок». Теперь, каждая ошибка выявленная набором тестов представ- лена интервалом вдоль вертикальной оси, чья высота пропорциональна доли ее серьезности в общей сумме серьезности ошибок. В свете этой новой ин- терпретации, на графиках, вклад теста взвешивается в горизонтальном на- правлении по его стоимости, и вдоль вертикального направления по сум- марной серьезности выявленных им ошибок. В таких графиках, кривая ограничивает большую площадь для порядка тестов который демонстрирует больше «единиц серьезности ошибок выявленных на единицу стоимости теста». Эта площадь и составляет метрику APFDC. Для иллюстрации метрики APFDC графически, рис. 2 показывает гра- фики для трех примеров. Информация о выявлении ошибок тестами взята из рис. 1,а. Пример 1. Рассмотрим сценарий, показанный на рис. 1. Допустим, что стоимость теста B в два раза превосходит стоимость теста A, требующего два часа машинного времени, тогда как тест A — один час. С точки зрения ошибок, выявленных за час, порядок тестов A–B–C–D–E предпочтительней порядка B–A–C–D–E, который выявляет ошибки быстрее. Пара графиков расположенная слева (рис. 1,а) соответствует примеру 1: верхний график представляет метрику CAPFD для порядка тестов A–B–C–D–E, а нижний график — метрику CAPFD для порядка B–A–C–D–E. Метрика CAPFD дает предпочтение порядку A–B–C–D–E, который быстрее выявляет ошибки. Пример 2. Работая опять со сценарием, показанным на рис. 1, предпо- ложим, что все пять тестов имеют равную стоимость и что ошибки 2…10 имеют значение серьезности, равное k , тогда как ошибка 1 имеет серьез- a — APFDC для примера 1 б — APFDC для примера 2 в — APFDC для примера 3 Рис. 2. Примеры, иллюстрирующие метрику APFDС А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2010, № 4 114 ность k2 . В данном случае тест A выявляет одну более серьезную ошибку и одну менее серьезную, тогда как тест B — только две менее серьезные ошибки. С точки зрения скорости выявления суммарной серьезности оши- бок порядок тестов A–B–C–D–E предпочтительней порядка B–A–C–D–E. Пара графиков на рис. 1,б, соответствующая примеру 2, показывает как мет- рика CAPFD дает более высокую оценку порядку тестов, который раньше выявляет более серьезную ошибку (A–B–C–D–E) при допущении, что ошибкам 2–10 присвоено значение серьезности k и ошибке 1 присвоено значение серьезности k2 . Пример 3. Предположим, что все десять ошибок равнозначны по серьезности и, что каждый из тестов A, B, D и E требует один час для выпол- нения, а тест C — десять часов. Однако с точки зрения ошибок, выявленных за единицу времени, второй порядок (E–C–B–A–D) предпочтительнее: он выявляет три ошибки в течение первого часа и остается лучшим, чем пер- вый порядок, до конца выполнения второго теста. Аналогичный пример может быть приведен для использования ошибки с неравной серьезностью при равной стоимости тестов. Пара графиков на рис. 1,в, соответствующие примеру 3, показывает как метрика различает порядки тестов, где тест C имеет высокую стоимость: для порядка E–C–B–A–D, метрика присваивает ему большее значение, чем порядку C–E–B–A–D. Пусть T будет набором содержащим n тестов со стоимостями nttt ,,, 21 … ; F — множеством m ошибок выявленных набором тестов T ; и mfff ,,, 21 … — значениями серьезности этих ошибок. Пусть iTF будет пер- вый тестом в порядке T ′ набора T , который выявляет ошибку i . Тогда формула для метрики CAPFD имеет следующий вид: ∑∑ ∑ ∑ == = = × ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ −× = m i i n i i m i TF n TFj ji C ft ttf APFD i i 11 1 2 1 . СТОИМОСТЬ ТЕСТОВ Стоимость теста — это количество ресурсов (например, денег или времени) затраченных на его выполнение (не включает в себя затраты на его разра- ботку). Существует два вопроса связанных со стоимостью тестов: первый — измерение или оценка стоимости с целью вычисления значения метрики CAPFD для порядка тестов и второй — оценка стоимости для использова- ния в приоритезации тестов. Стоимость теста связана с ресурсами затрачен- ными на выполнение данного теста и проверку результатов. Стоимость тес- та может измерять фактическое время затраченное на тестирование программы заданным тестом. Кроме того, стоимость может включать де- нежные затраты на выполнение теста и проверку результатов, включая стои- мость оборудования, зарплату, стоимость материалов требующихся для тес- тирования, потери дохода связанные с задержкой выпуска ПО, потери связанные со срывом сроков релиза и т.д. Приоритезация тестов как метод быстрого выявления серьезных ошибок Системні дослідження та інформаційні технології, 2010, № 4 115 Определить стоимость тестов после завершения тестирования неслож- но, что и необходимо сделать для вычисления метрики CAPFD . В данном случае, нам необходимо обратить внимание на то, какие ресурсы были за- трачены на каждый тест. Гораздо сложнее оценить стоимость тестов перед началом тестирования, что необходимо для использования стоимости в про- цессе приоритезации. В данном случае, нам необходимо предугадать стои- мость тестов. Одним способом является анализ теста и программного кода выполненного тестом. Другим способом, который мы используем в данной работе является использование собранных данных о стоимости тестов на предыдущих сессиях тестирования (что представляется возможным при регрессивном тестировании). Здесь, мы полагаем, что стоимость тестов не меняется значительно от одной версии программы к другой. В наших экспериментах для регрессивного тестирования требовалось лишь время выполнения каждого теста. Для сбора данных о времени их вы- полнения, все тесты, один за другим, были выполнены, и время выполнения и валидации результатов было измерено. То есть, в данной работе, стои- мость теста — это время его выполнения в секундах. СЕРЬЕЗНОСТЬ ОШИБОК Стоимость ошибки — это затраты или потери, выраженные в неких едини- цах (например деньгах), имеющие место, если ошибка осталась в релизе. Как и со стоимостью тестов, существует два вопроса связанных с серьезно- стью ошибок: первый — их измерение или оценка для вычисления метрики CAPFD для порядка тестов и второй — их оценка для использования ин- формации при приоритезации тестов. Серьезность ошибки связана с затра- тами произошедшими, если ошибка осталась в программе после ее релиза. Возможны различные подходы для измерения такой серьезности, например: 1. Можно измерить серьезность ошибки как сумму денег потерянных в результате сбоя вызванного данной ошибкой (с учетом вероятности такого сбоя). Такой подход может применяться в ПО, где индивидуальные сбои могут привести к катастрофическим последствиям (например, судебные ис- ки, человеческие жертвы, потеря оборудования). 2. Можно оценить последствия ошибки на надежность ПО. Данный подход применяется в ПО, где ошибки могут вызвать лишь неудобство для пользователей, и маловероятно, что сбой будет иметь серьезные последст- вия (например, текстовый редактор). В данном случае, основным последст- вием является снижение надежности ПО, которое может привести к потере клиентов. В предыдущих работах [6, 9, 21, 22] использовался первый подход. В данной работе, мы рассмотрели и применили второй подход. Подобно ситуации со стоимостью тестов, нас интересует как оценка серьезности ошибок до их обнаружения, так и оценка их серьезности после обнаружения. Когда тестирование закончено и уже есть информация об ошибках, можно оценить их серьезность для использования в метрике CAPFD (хотя это не так просто как со стоимостью тестов). С другой стороны, перед началом тестирования необходимо оценить серьезность потенциаль- ных ошибок для использования данной информации в процессе приори- А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2010, № 4 116 тезации, а это намного сложнее, чем с оценкой стоимости тестов. Поэтому, необходимо связать тесты с серьезностью ошибок, которые они выявляют. Если иметь информацию о том, какие ошибки выявляет каждый тест, и знать их серьезность, было бы несложно связать тесты с серьезностью оши- бок. Но на практике, эта информация недоступна до завершения тестирова- ния. Существуют два подхода для такой оценки. 1. Оценка критичности модулей. Здесь необходимо связать серьезность ошибки с критичностью модуля (или любого другого компонента про- граммного кода), в котором данная ошибка может содержаться. 2. Оценка критичности тестов. Здесь необходимо связать тесты с серьезностью ошибок, которые они могут выявить. Оценив критичность модулей или тестов, необходимо включить ин- формацию о серьезности ошибок в процесс приоритезации. В данной рабо- те, в исследованиях мы применим второй подход. Критичность тестов испо- льзуется как метрика для оценивания серьезности ошибок, которые может выявить каждый тест. Так как на практике мы не можем знать об ошибках наперед, необходимо оценить критичность тестов не используя информа- цию об ошибках, которые данный тест может выявить. Полагаем, что серье- зность ошибки определяется ее влиянием на надежность системы. Чем серь- езнее ошибка, тем чаще происходят связанные с ней сбои. В данной работе мы не дифференцируем сбои, а учитываем лишь их частоту. Для вычисления серьезности ошибок, нам необходимы понятия опера- ции и операционного профиля. Операции и операционный профиль Для понимания концепции операционный профиль, нам необходимо опреде- лить, что такое операция. Операцией является внешне-инициированное дей- ствие выполненное системой [23]. Операция может быть сравнена с функ- цией, внешне-инициированным действием, с точки зрения пользователей. Примерами операций могут быть команды, транзакции и обработка внеш- них событий. Операционный профиль (operational profile) является множеством опе- раций и вероятностью их использования [23]. Другими словами, дана систе- ма S, операционный профиль для S — список действий, которые пользова- тели могут делать с S, и частоту этих действий. Рассмотрим пример текстового редактора. В этом примере, операция «изменить шрифт» может выполняться 20% времени, операция «вырезать текст» — 10%, «ввести текст» — 50%, «копировать текст» — 10% и «вста- вить текст» — 10%. Операционный профиль часто используется при разработке систем ПО, включающим дизайн, разработку, тестирование и использование. Например, одним применением операционного профиля может быть тестирование опе- раций пропорционально частоте их использования. Например, при тестиро- вании текстового редактора приведенного в нашем примере, нам необходи- мо потратить половину усилий тестируя операцию «вставка текста». В данной работе, мы использовали операционный профиль для оценки серьезности ошибок и критичности тестов. Для объектов исследования, сна- чала было определено множество операций применимых к программам, а затем операции были связаны с тестами. Это позволило создать матрицу Приоритезация тестов как метод быстрого выявления серьезных ошибок Системні дослідження та інформаційні технології, 2010, № 4 117 операций для программ, паруя операции с тестами. Матрица операций ис- пользуется для определения серьезности ошибок и критичности тестов опи- санным позднее методом. Для использования серьезности ошибок в алгоритмах приоритезации необходимо ввести понятие критичности тестов. Критичность тестов и ее вычисление Была определена критичность теста как его важность для пользователей программы. Критичность тестов может быть ассоциирована с частотой ис- пользования различных операций в системе. Тест выполняющий чаще ис- пользуемые операции в программе более критичен, чем тест выполняющий реже используемые операции. Мы вычислили критичность каждого теста как сумму вероятностей использования различных операций выполненных тестом. То есть, критичность теста ∑= = n i iPt 1crit , где n — количество опера- ций выполненных тестом и iP — вероятность использования i-й операции. Вычисление серьезности ошибок В данной работе мы используем операционный профиль для оценки серьез- ности ошибок. Полагаем, что сбои в чаще используемых операциях ведут к более частым сбоям при нормальном использовании программы, и таким образом могут создавать более значительные проблемы пользователям. По- этому, таким сбоям присваивается более высокая серьезность нежели сбоям связанным с редко используемыми операциями. Для определения серьезности ошибок для наших объектов исследова- ния, используется связь между матрицей ошибок (какие тесты выявляют какие ошибки) и матрице операций (какие тесты выполняют какие опера- ции). Сначала определяем ассоциацию между ошибками и операциями. Эта связь определяется матрицей ошибок и матрицей операций. Вернемся к примеру текстового редактора. Допустим в программе при- сутствуют три ошибки. Пусть ошибки 1 и 2 затрагивают операции «изме- нить шрифт», «вырезать текст», «ввести текст». Ошибка 3 затрагивает опе- рации «копировать текст» и «вставить текст». В этом же примере, тесты 1, 2 и 3 выполняют операции «изменить шрифт», «вырезать текст» и «ввести текст», а тесты 4–8 выполняют операции «копировать текст» и «вставить текст». Кроме этого, ошибка 1 выявляется тестами 1, 2, 3, ошибка 2 выяв- ляется тестом 1, а ошибка 3 выявляется тестами 4–8. Таким образом, серьезностью ошибки может быть сумма вероятности использования операций затронутых ошибкой. Например, серьезность ошибки 1 — это сумма вероятности операций затронутых ошибкой 1, и рав- няется 80,050,010,020,0 =++ (из описанного выше примера). Серьезность ошибки 2 равняется 80,0 , а серьезность ошибки 3 равняется 20,0 . Такой подход дает ошибкам 1 и 2 равную серьезность. Ошибка 1 выяв- ляется тестами 1, 2 и 3, но, с другой стороны, ошибка 2 выявляется только тестом 1. Если тесты соответствуют операционному профилю, то операции затронутые большим количеством тестов должны давать больший вклад при подсчете серьезности ошибки, которую они затрагивают. Для разрешения данной проблемы, учитывается количество тестов ас- социированных с каждой операцией. Если на операцию влияют две ошибки, А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2010, № 4 118 1f и 2f , и если 1f выявляется большим количеством тестов нежели f2, при- дается большая серьезность ошибке 1f нежели ошибке 2f . Одним из путей для присвоения более высокой серьезности ошибке 1, чем ошибке 2 — это использование количества тестов как веса при вычис- лении серьезности ошибок. Пусть iT — список тестов ассоциированных с операцией i. Пусть Op — множество m операций связанных с ошибкой X , а iP — вероятность ассоциированная с операцией i. Серьезность ошибки X может быть определена как ∑ = ×m i ii TP1 . По этому методу, серьезность ошибок 1, 2 и 3 в наших примерах сле- дующие: серьезность ошибки 1 равна ;40,250,0*310,0*320,0*3 =++ серьезность ошибки 2 равна ;80,050,010,020,0 =++ серьезность ошибки 3 равна 0,110,0*510,0*5 =+ . Однако этот метод делает ошибку 3 более серьезной нежели ошибку 2, а это неправильно, так как ошибка 2, в отличие от ошибки 3, может влиять на наиболее часто используемую операцию. Это противоречит нашему ут- верждению, что ошибки встречающиеся в наиболее часто используемых операциях более серьезны, чем ошибки которые встречаются в менее часто используемых операциях. Поэтому, вводится некое значение барьера выше которого будет учитываться количество тестов и ниже которого — нет. Пусть HP — вероятность использования наиболее часто используемой опе- рации на которую влияет данная ошибка, а LP — вероятность использова- ния наименее часто используемой операции на которую влияет данная ошибка. Значение барьера для TH дано формулой: 2/)( LH PPTH += . Таким образом, значение барьера для примера с текстовым редактором будет следующее: 30,02/)10,050,0( =+=TH . Поэтому, серьезность ошибок основанная на данном значении барьера будет: серьезность ошибки 1 равна ;80,150,0*310,020,0 =++ серьезность ошибки 2 равна ++ 10,020,0 80,050,0 =+ ; серьезность ошибки 3 равна 20,010,010,0 =+ . ЭМПИРИЧЕСКИЕ ИССЛЕДОВАНИЯ Было проведено исследование, цель которого изучить, как различные рас- пределения и шкалы стоимости тестов и серьезности ошибок могут влиять на скорость их выявления с точки зрения метрики APFDC. Понятие критич- ности теста применялось для оценки серьезности ошибок в приоритезации. Рассмотрено влияние различных распределений и шкал стоимости тестов, серьезности ошибок и их комбинаций на относительную эффективность ме- тодов приоритезации. Объекты исследования Как объекты данного исследования были использованы следующие про- граммы: • empire — сетевая игра состоящая из 63 014 – 64 396 строк кода, 10 версий, 1985 тестов и по 10 регрессивных ошибок во всех версиях, кроме первой; Приоритезация тестов как метод быстрого выявления серьезных ошибок Системні дослідження та інформаційні технології, 2010, № 4 119 • grep — программа поиска текста состоящая из 10 929 – 13 359 строк кода, 5 версий, 810 тестов и по от одной до четырех регрессивных ошибок во всех версиях, кроме первой; • flex — генератор лексических анализаторов состоящий из 11 783 – 14 171 строк кода, 5 версий, 568 тестов и по от одной до восьми регрессив- ных ошибок во всех версиях, кроме первой; • make — программа применяющаяся для построения ПО состоящая из 18 665 – 25 465 строк кода, 5 версий, 1044 тестов и по от трех до пяти рег- рессивных ошибок во всех версиях, кроме первой; • sed — потоковый редактор состоящий из 8 063 – 11 911 строк кода, 3 версии, 1294 тестов и по от четырех до пяти регрессивных ошибок во всех версиях, кроме первой; • xearth — программа отображающая картинку земного шара, со- стоящая из 13 165 – 24 179 строк кода, трех версий, 540 тестов и по от трех до четырех регрессивных ошибок во всех версиях, кроме первой. Используя документацию для программы empire, были определены 182 операции, обычно используя прямую ассоциацию с командами. Так как ка- ждый тест выполняет последовательность команд, было легко ассоцииро- вать тест с затронутыми им операциями. Для других программ, тесты были сгенерированы исходя из языка спецификации тестов (test specification language (TSL)). Для каждой программы, была создана спецификация тестов базируясь на документации. Далее эти спецификации были преобразованы в тестовые фреймы (test frames) из которых были сгенерированы тесты. Опе- рации были созданы для каждого выбора в файле спецификации тестов; за- тем некоторые операции с общими характеристиками были объединены ме- жду собой. Далее, используя информацию о том как были сгенерированы тесты, они были увязаны с операциями. Для получения операционного профиля для программы empire, было задействовано несколько добровольцев, которые на протяжении некоторого времени играли в эту игру. Для других программ, операционный профиль был сгенерирован случайным образом. В области разработки программного обеспечения очень сложно найти репрезентативную выборку программ, так как существует слишком большие между ними различия, не только в их размерах, используемых языках про- граммирования и стилях программирования, но и в классах решаемых задач. Для репрезентативного набора необходимо иметь доступ ко всем програм- мам и случайным образом выбрать их подмножество, что не является воз- можным, поэтому был использованы программы, которые могут быть ре- презентативными для своего класса (программы размером 8,000 – 65,000 строк, написанные на языке С и выполняющие роль утилит Unix и сетевой игры), но не являются репрезентативными для всех программ. Для получе- ния более общих результатов необходимо собрать большее количество про- грамм различных классов. Поэтому задачей данных исследований является не нахождение обобщающихся зависимостей, а эксплораторное исследова- ние применяемых подходов для нахождения тенденций и иллюстрации их влияния на процесс приоритезации. А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2010, № 4 120 Методы приоритезации В исследовании были использованы следующие методы приоритезации: • fn-nofb — приоритезация по общему покрытию функций. Вставляя в программу дополнительный код, можно определить для каждого теста, ка- кие функции им покрыты. Эти тесты можно приоритезировать в соответст- вии с количеством покрытых ими функций, сортируя тесты в порядке убы- вания данного общего покрытия. • fn-fb — приоритезация по дополнительному покрытию функций. Приоритезация по общему покрытию функций планирует тесты в порядке достижения совокупного покрытия функций. Однако, выполнив тест и по- крыв некоторые функции, целесообразно при последующем тестировании покрыть еще не покрытые функции. Приоритезация по дополнительному покрытию функций выбирает тест, достигший наибольшего покрытия еще не покрытых функций, повторяя этот процесс до тех пор, пока ни один из оставшихся тестов не сможет увеличить покрытие функций. Когда это про- исходит, данный алгоритм применяется рекурсивно к оставшимся тестам. • diff-fn-nofb — приоритезация по общему покрытию измененных функций. Этот метод похож на fn-nofb, но рассматривает только новые или измененные функции. При равенстве покрытых измененных функций, учи- тывается количество всех покрытых функций. • diff-fn-fb — приоритезация по дополнительному покрытию изме- ненных функций подобна приоритезации по дополнительному покрытию функций, за исключением того, что учитываются только измененные или новые функции. При равенстве покрытых измененных функций, учитывает- ся количество всех покрытых функций. • random упорядочивает тесты случайным образом. Для того, чтобы учесть стоимость и критичность тестов в методах при- оритезации, было найдено отношение критичности теста к его стоимости. В данном исследовании было рассмотрено три метода внедрения этого отно- шения в методы приоритезации: • Af — тесты приоритезируются в соответствии с покрытием функций (с или без учета модификации программного кода). Отношение критичности теста к его стоимости имеет второстепенное значение и учитывается при равнозначности покрытия. • Mult — тесты приоритезируются в соответствии с произведением покрытия функций (с или без учета модификаций программного кода) и от- ношения критичности теста к его стоимости. В данном случае вклад покры- тия и стоимости с критичностью равнозначны. • Rf — тесты приоритезируются в соответствии с отношением кри- тичности теста к его стоимости, а покрытие функций (с или без учета моди- фикаций программного кода) имеет второстепенное значение и учитывается при равнозначном отношении критичности к стоимости. Шкалы стоимости тестов В исследовании были рассмотрены четыре шкалы стоимости тестов. • Unit — данная шкала не различает между стоимостью тестов (в дан- ном случае стоимость теста не учитывается). Приоритезация тестов как метод быстрого выявления серьезных ошибок Системні дослідження та інформаційні технології, 2010, № 4 121 • Orig — данная шкала присваивает каждому тесту его стоимость (на- стоящую либо искусственно сгенерированную) полученную описанными ранее методами. • Buck-lin — в данной шкале, значения стоимости тестов (из шкалы orig) отсортированы и равномерно распределены в ячейки (стоимость тес- тов соответствует номеру ячейки начиная с единицы). • Buck-exp — данная шкала подобна buck-lin, кроме того, что стои- мость теста не номер ячейки n, а 1−nb , где 2=b и n — номер ячейки (данная шкала — альтернатива предыдущей, которая увеличивает значи- мость наиболее дорогих тестов). Шкалы критичности тестов и серьезности ошибок В исследовании были рассмотрены четыре шкалы критичности тестов и серьезности ошибок. • Unit — шкала не различает между критичностью тестов и серьезно- стью ошибок (в данном случае критичность теста и серьезность ошибок не учитывается). • Orig — данная шкала присваивает каждому тесту его критичность и каждой ошибке ее серьезность полученные описанными ранее методами. • Buck-lin — в данной шкале, значения критичности тестов и серьез- ности ошибок (из шкалы orig) отсортированы и равномерно распределены в ячейки. Критичность тестов и серьезность ошибок вычисляется по номеру ячейки. • Buck-exp — данная шкала подобна buck-lin, только вместо номера ячейки n, используется 1−nb , где 2=b , а n — номер ячейки. Данная шка- ла — альтернатива предыдущей, которая увеличивает значимость наиболее серьезных ошибок и соответствующих им тестов. РЕЗУЛЬТАТЫ Проведенное исследование состояло из трех частей. В первой части было рассмотрено влияние трех методов внедрения информации о стоимости и критичности тестов в процесс приоритезации. Во второй части было рас- смотрено как влияет выбор шкалы стоимости тестов и серьезности ошибок на относительную эффективность методов приоритезации. В третьей части — рассмотрено для каждого метода приоритезации относительное влияние всех 16 комбинаций шкал на скорость выявления ошибок. Исследование 1. В данном исследовании рассматриваются три метода комбинации информации (af, mult и rf) о стоимости и критичности тестов с информацией о покрытии элементов программного кода. В данном исследовании были получены данные используя различные распределения (шкалы) стоимости тестов и серьезности ошибок (orig/orig, buck-lin/buck-lin, buck-exp/buck-exp) для каждого из пяти методов приори- тезации и трех видов комбинации информации. Был проведен статистичес- кий анализ Anova. Результаты представлены в виде диаграмм размаха (рис. 3–6). Как видно из графиков (рис. 3–6) для методов fn-nofb и diff-fn-nofb, в трех рассмотренных шкалах стоимости тестов и серьезности ошибок, af имел наилучшие результаты; а для методов fn-fb и diff-fn-nofb, af и mult А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2010, № 4 122 были значительно лучше чем rf. То есть, для методов без обратной связи (по общему покрытию функций), комбинация af была самая эффективная, а для методов с обратной связью (по дополнительному покрытию функций), как af так и mult являются эффективными. Анализ Anova показал, что не все результаты являются статистически значимыми (для )05,0=α . Значимыми являются: метод fn-nofb со шкалой exp/exp )0234,0( =p , метод fn-fb со шкалами orig/orig, buck-lin/buck-lin и buck-exp/buck-exp )0( =p , а также метод diff-fn-fb со шкалами orig/orig 710*2622,2( −=p ), buck-lin/buck-lin 11926310,1( −=p ) и buck-exp/buck-exp 410*4632,3( −=p ). Исследование 2. В данном исследовании, было изучено влияние шка- лы стоимости тестов и серьезности ошибок на относительную эффектив- ность методов приоритезации. Для каждого из трех методов комбинации Рис. 3. Метод fn-nofb со шкалами, слева направо: unit/unit, orig/orig, buck- lin/buck-lin и buck-exp/buck-exp m ul t af rf 100 80 60 40 20 0 m ul t af rf m ul t af rf m ul t af rf m ul t af rf 100 80 60 40 20 0 m ul t af rf m ul t af rf m ul t af rf Рис. 4. Метод fn-fb со шкалами, слева направо: unit/unit, orig/orig, buck-lin/buck- lin и buck-exp/buck-exp Рис. 5. Метод diff-fn-nofb со шкалами, слева направо: unit/unit, orig/orig, buck- lin/buck-lin и buck-exp/buck-exp m ul t af rf 100 80 60 40 20 0 m ul t af rf m ul t af rf m ul t af rf Приоритезация тестов как метод быстрого выявления серьезных ошибок Системні дослідження та інформаційні технології, 2010, № 4 123 информации и четырех комбинаций шкал (unit/unit, orig/orig, buck- lin/buck-lin, buck-exp/buck-exp) были сравнены друг с другом пять методов приоритезации. Подобно предыдущему исследованию, был проведен стати- стический анализ Anova. В каждом из двенадцати случаев, Anova анализ показал статистическую значимость различий между методами приоритеза- ции. Наименьшее значение 0263,0=p было достигнуто rf комбинацией и buck-exp/buck-exp шкалой. Как мы видим из графиков (рис. 7–9) (представленных диаграммами размаха), с точки зрения среднего значения метрики CAPFD , при комбина- ции af шкала имеет незначительное влияние на относительную эффектив- ность методов приоритезации. За исключением шкалы orig/orig, методы приоритезации в порядке убывания эффективности следуюие: fn-fb, fn-diff- fb, random, fn-diff-nofb, fn-nofb. Также, с точки зрения среднего значения метрики CAPFD , при комбинации mult, шкала вовсе не имеет влияния на относительную эффективность методов приоритезации. С точки зрения среднего значения метрики CAPFD , при комбинации rf, шкала имеет более значительное влияние на относительную эффективность методов приорите- зации. При данной комбинации, методы приоритезации имеют незначитель- ное различие в их эффективности; гораздо больший вклад в их эффектив- ность имеет шкала. В шкалах orig/orig, buck-lin/buck-lin и buck-exp/buck- exp, random метод был лучше, чем остальные методы приоритезации, что означает бесполезность приоритезации в данных случаях. С другой стороны, в шкале unit/unit стоимость фактически не учитывается и относительная эф- фективность методов приоритезация такая же как и в других комбинациях. Рис. 6. Метод diff-fn-fb со шкалами, слева направо: unit/unit, orig/orig, buck- lin/buck-lin и buck-exp/buck-exp m ul t af rf 100 80 60 40 20 0 m ul t af rf m ul t af rf m ul t af rf Рис. 7. Af комбинация со шкалами, слева направо: unit/unit, orig/orig, buck- lin/buck-lin и buck-exp/buck-exp 100 80 60 40 20 0 А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2010, № 4 124 Исследование 3. В данном исследовании было рассмотрено для четы- рех методов приоритезации и трех методов комбинации все 16 шкал. Для метода приоритезации fn-fb и комбинации af, различия в средних значениях CAPFD не являются статистически значимыми 4313,0( =p ). Во всех дру- гих одиннадцати случаях, различия статистически значимы (максимальное значение )0015,0=p . Как видно из графиков (рис. 10–13) представленных диаграммами раз- маха, для метода fn-nofb, размах средних значений CAPFD для различных шкал максимален для rf — от 74,92 (unit/orig) до 86,55 (orig/unit); затем идет mult — от 75,81 (unit/unit) до 85,84 (buck-exp/buck-exp); и наимень- ший размах для af — от 74,54 (buck-exp/unit) до 81,82 (unit/buck-exp). Для метода fn-fb, размах средних значений небольшой при комбинациях af и mult (меньше 5), но значителен для rf — от 75,04 (unit/orig) до 92,71 (unit/unit). Для метода diff-fn-nofb, размах максимален при rf — от 74,94 (unit/orig) до 86,85 (orig/unit), затем идет mult — от 76,07 (buck-lin/unit) до 85,62 (buck-exp/buck-exp); и наименьший размах при af — от 76,20 (orig/unit) и 84,15 (buck-exp/buck-exp). Для метода diff-fn-fb, размах мак- симален при rf — от 74,93 (unit/orig) до orig/unit (86,67); затем идет af — от 85,01 (orig/unit) до 91,29 (buck-exp/buck-lin); наименьший размах имеет место при mult — от 86,19 (unit/unit) до 92,62 (buck-exp/buck-lin). Рис. 8. Mult комбинация со шкалами, слева направо: unit/unit, orig/orig, buck- lin/buck-lin и buck-exp/buck-exp 100 80 60 40 20 0 Рис. 9. Rf комбинация со шкалами, слева направо: unit/unit, orig/orig, buck- lin/buck-lin и buck-exp/buck-exp 100 80 60 40 20 0 Приоритезация тестов как метод быстрого выявления серьезных ошибок Системні дослідження та інформаційні технології, 2010, № 4 125 Рис. 10. Метод fn-nofb с комбинациями, сверху вниз: af, mult и rf Рис. 11. Метод fn-fb с комбинациями, сверху вниз: af, mult и rf А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2010, № 4 126 Рис. 12. Метод diff-fn-nofb с комбинациями, сверху вниз: af, mult и rf Рис. 13. Метод diff-fn-fb с комбинациями, сверху вниз: af, mult и rf Приоритезация тестов как метод быстрого выявления серьезных ошибок Системні дослідження та інформаційні технології, 2010, № 4 127 ВЫВОДЫ В данной работе была рассмотрена приоритезация, учитывающая стоимость тестов и серьезность ошибок. В отличие от предыдущих исследований, серьезность ошибок была основана на их влиянии на надежность програм- мы. Несколько программ были использованы как объекты исследования. В одной из них были использованы реальные данные о стоимости тестов и реальный операционный профиль. Также, как стоимость тестов, так и серьезность ошибок были исследованы в четырех различных шкалах и изу- чено их влияние на эффективность приоритезации. Были рассмотрены три подхода к внедрению информации о стоимости и критичности тестов в про- цесс приоритезации и исследована их эффективность. Выбор шкалы имеет значительное влияние на эффективность приори- тезации. Важно то, что выбор лучшего метода приоритезации зависит от шкалы стоимости тестов и серьезности ошибок. Разные шкалы неодинаково влияют на разные методы приоритезации. Поэтому выбор метода приорите- зации должен учитывать шкалу. Также, методы комбинации af и mult, а особенно af, дают наилучшие результаты. Автор благодарит Г. Ротермела, С. Элбаума и Д. Рутруфа за участие в проведении описанных исследований. ЛИТЕРАТУРА 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. — 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. Elbaum S., Malishevsky A., Rothermel G. Incorporating Varying Test Costs and Fault Severities into Test Case Prioritization // Technical Report 00-60-09. — Com- puter Science Department. — Oregon State University. — August 2000. — 14 p. 7. Rothermel G., Untch R.H., Chu C., Harrold M.J. Test case prioritization // IEEE Transactions on Software Engineering. — 2001. — 27, № 10. — Р. 929–948. 8. 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. 9. 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. А.Г. Малышевский ISSN 1681–6048 System Research & Information Technologies, 2010, № 4 128 10. Elbaum S., Malishevsky A., Rothermel G. Test Case Prioritization: A family of em- pirical studies // IEEE Transactions On Software Engineering. — 2002. — 28, № 2. — P. 159–182. 11. 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. 12. 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. 13. Malishevsky A.G. Test case prioritization // Ph.D. Dissertation. — Oregon State Uni- versity, Corvallis, Oregon, USA. — 2003. — 291 p. 14. Do H., Rothermel G. and Kinneer A. Empirical Studies of Test Case Prioritization in a JUnit Testing Environment // Proceedings of the International Symposium on Software Reliability Engineering. — Saint-Malo, Bretagne, France. — Novem- ber 2004. — P. 113–124. 15. Srikanth H. Value-driven system level test case prioritization // Ph.D. Disserta- tion. — North Carolina State University, Releigh, NC. — 2005. — 92 p. 16. Korel B., Tahat L.H. and Harman M. Test Prioritization Using System Models // In Proceedings of the 21st IEEE International Conference on Software Mainte- nance. — Budapest, Hungary. — September 2005. — P. 559–568. 17. Do H. and Rothermel G. A Controlled Experiment Assessing Test Case Prioritiza- tion Techniques via Mutation Faults // Proceedings of the IEEE International Conference on Software Maintenance. — Budapest, Hungary. — September 2005. — P. 411–420. 18. Do H., Rothermel G. and Kinneer A. Prioritizing JUnit test cases: An empirical as- sessment and cost-benefits analysis // Empirical Software Engineering: An Inter- national Journal. — March 2006. — 11, № 1. — P. 33–70. 19. Do H. and Rothermel G. On the use of mutation faults in empirical assessments of test case prioritization techniques // IEEE Transactions on Software Engineering. — September 2006. — 32, № 9. — P. 733–752. 20. Малышевский А.Г. Приоритезация тестов в регрессивном тестировании // Сис- темні дослідження та інформаційні технології. — 2006. — № 4. — С. 16–32. 21. Malishevsky A.G., Ruthruff J., Rothermel G. and Elbaum S. Cost-cognizant test case prioritization // Technical Report TR-UNL-CSE-2006-0004. — Department of Computer Science and Engineering. — University of Nebraska — Lincoln. — March 2006. — 41 p. 22. Малышевский А.Г. Использование информации о стоимости тестов и серьезно- сти ошибок в процессе приоритезации тестов // Системні дослідження та інформаційні технології. — 2008. — № 1. — С. 63–78. 23. Musa J. Software Reliability Engineering. — NY: McGraw-Hill, 1999. — 391 p. Поступила 27.07.2008
id journaliasakpiua-article-106820
institution System research and information technologies
keywords_txt_mv keywords
language Russian
last_indexed 2025-07-17T10:21:41Z
publishDate 2010
publisher The National Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute"
record_format ojs
resource_txt_mv journaliasakpiua/0f/2e6ea7664d1f4a0c99727f3ab42dbd0f.pdf
spelling journaliasakpiua-article-1068202018-04-06T12:27:35Z Prioritization of tests as a method for fast detection of faults Приоритезация тестов как метод быстрого выявления серьезных ошибок Пріоритизація тестів як метод швидкого виявлення серйозних помилок Malishevsky, Alexey G. The use of information on the test costs and fault severities in the prioritization process in a regression testing is considered. Methods for estimation of test costs and fault severities are described. Fault severity is explored in relation to the program reliability. Three methods for incorporating the information into the prioritization process are investigated. The effects of the scale of test cost and fault severities on the efficiency of the methods for prioritization is established. Рассмотрено использование информации о стоимости тестов и серьезности ошибок в процессе приоритезации в регрессивном тестировании. Описаны способы оценки стоимости тестов и серьезности ошибок. Рассмотрена серьезность ошибок с точки зрения надежности программы. Исследованы три метода внедрения информации о стоимости и критичности тестов в процесс приоритезации. Исследовано влияние шкалы стоимости тестов и серьезности ошибок на эффективность методов приоритезации. Розглянуто використання інформації про вартість тестів і серйозність помилок у процесі пріоритезації у регресивному тестуванні. Описано способи оцінювання вартості тестів та серйозності помилок. Розглянуто серйозність помилок із точки зору надійності програми. Досліджено три методи впровадження інформації про вартість та критичність тестів у процес пріоритезації. Досліджено вплив шкали вартості тестів та серйозності помилок на ефективність методів пріоритезації. The National Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute" 2010-12-15 Article Article application/pdf https://journal.iasa.kpi.ua/article/view/106820 System research and information technologies; No. 4 (2010); 110-128 Системные исследования и информационные технологии; № 4 (2010); 110-128 Системні дослідження та інформаційні технології; № 4 (2010); 110-128 2308-8893 1681-6048 ru https://journal.iasa.kpi.ua/article/view/106820/101883 Copyright (c) 2021 System research and information technologies
spellingShingle Malishevsky, Alexey G.
Пріоритизація тестів як метод швидкого виявлення серйозних помилок
title Пріоритизація тестів як метод швидкого виявлення серйозних помилок
title_alt Prioritization of tests as a method for fast detection of faults
Приоритезация тестов как метод быстрого выявления серьезных ошибок
title_full Пріоритизація тестів як метод швидкого виявлення серйозних помилок
title_fullStr Пріоритизація тестів як метод швидкого виявлення серйозних помилок
title_full_unstemmed Пріоритизація тестів як метод швидкого виявлення серйозних помилок
title_short Пріоритизація тестів як метод швидкого виявлення серйозних помилок
title_sort пріоритизація тестів як метод швидкого виявлення серйозних помилок
url https://journal.iasa.kpi.ua/article/view/106820
work_keys_str_mv AT malishevskyalexeyg prioritizationoftestsasamethodforfastdetectionoffaults
AT malishevskyalexeyg prioritezaciâtestovkakmetodbystrogovyâvleniâserʹeznyhošibok
AT malishevskyalexeyg príoritizacíâtestívâkmetodšvidkogoviâvlennâserjoznihpomilok