Научная статья на тему 'СРАВНЕНИЕ КОМБИНАТОРНОГО И СЛУЧАЙНОГО МЕТОДОВ ПОДБОРА ТЕСТОВЫХ ДАННЫХ ПРИ ТЕСТИРОВАНИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ'

СРАВНЕНИЕ КОМБИНАТОРНОГО И СЛУЧАЙНОГО МЕТОДОВ ПОДБОРА ТЕСТОВЫХ ДАННЫХ ПРИ ТЕСТИРОВАНИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
137
18
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
оценка качества программного обеспечения / комбинаторное тестирование / покрытие кода / разработка программного обеспечения / software quality assessment / combinatorial testing / code coverage / software development

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Холин Антон Александрович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

COMPARISON OF COMBINATORY AND RANDOM METHODS OF PREPARING TEST DATA FOR SOFTWARE TESTING

This article describes an experiment comparing code coverage using combinatorial and random methods to prepare test data during software testing.

Текст научной работы на тему «СРАВНЕНИЕ КОМБИНАТОРНОГО И СЛУЧАЙНОГО МЕТОДОВ ПОДБОРА ТЕСТОВЫХ ДАННЫХ ПРИ ТЕСТИРОВАНИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ»

3. Шагниев О.Б., Шаньшин И.К., Бурдаков С.Ф. Управление регенеративными автоколебаниями в процессе фрезерования. // Мехатроника. Автоматизация. Управление. - 2019. - №5. - С. 291-298.

4. Altintas Y. Metal cutting mechanics, machine tool vibrations, and CNC design. 2nd-ed. - Cambridge University press, 2012. - 382 p.

5. Altintas Y., Eynian M., Onozuka H. Identification of dynamic cutting force coefficients and chatter stability with process damping. // Annals of the CIRP. - 2008. - Vol. 57. - Iss. 1. - Pp. 371-374.

6. Tobias S.A. Machine tool vibration. - New York: Wiley, 1961. - 352 p.

7. Tlusty J., Polacek M. The stability of the machine tools against self-excited vibrations in machining// International Research in Production Engineering. - 1963. - Vol. 1. -Iss. 1. - Pp. 465-474.

8. Бурдаков С. Ф., Шагниев О. Б. Модели механики в задаче управления силовым взаимодействием робота с поверхностью неопределенного профиля. // Научно-технические ведомости СПбГПУ. Информатика. Телекоммуникации. Управление. -2015. - №4. - С. 68-79.

9. Байдина Т.А., Бурдаков С.Ф., Шагниев О.Б. Управление импульсным сглаживанием фрикционных автоколебаний при контактном взаимодействии робота с обрабатываемой поверхностью. // Научно-технические ведомости СПбГПУ. Информатика. Телекоммуникации. Управление. - 2018. - Т. 11. № 4. - С. 119-129.

10. Байдина Т.А., Шагниев О.Б., Бурдаков С.Ф. Управление вибрационным состоянием робота при силовом взаимодействии с шероховатой поверхностью неопределённого профиля. // Научно-технические ведомости СПбГПУ. Информатика. Телекоммуникации. Управление. - 2016. - №4. - С. 43-52.

УДК 004.054

doi :10.18720/SPBPU/2/id21 -400

Холин Антон Александрович1,

аспирант

СРАВНЕНИЕ КОМБИНАТОРНОГО И СЛУЧАЙНОГО МЕТОДОВ ПОДБОРА ТЕСТОВЫХ ДАННЫХ ПРИ ТЕСТИРОВАНИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

1 Россия, Санкт-Петербург, Санкт-Петербургский политехнический

университет Петра Великого, anton.kholin@me.com

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

Ключевые слова, оценка качества программного обеспечения, комбинаторное тестирование, покрытие кода, разработка программного обеспечения.

Anton A. Kholin1, Graduate Student

COMPARISON OF COMBINATORY AND RANDOM METHODS OF PREPARING TEST DATA FOR SOFTWARE TESTING

1 Peter the Great St. Petersburg Polytechnic University, St. Petersburg, Russia, anton.kholin@me.com

Abstract. This article describes an experiment comparing code coverage using combinatorial and random methods to prepare test data during software testing.

Keywords, software quality assessment, combinatorial testing, code coverage, software development.

Введение

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

1. Общее описание комбинаторного метода

Комбинаторное или k-way тестирование — это проверенный метод более эффективного тестирования при меньших затратах. Ключевое понимание, лежащее в основе его эффективности, явилось результатом серии исследований, проведенных с 1999 по 2004 год [1]. Исследования показали, что большинство ошибок и сбоев программного обеспечения вызвано одним или двумя параметрами, причем количество ошибок уменьшается после трех параметров или более, что означает, что комбинаторное тестирование может обеспечить более эффективное обнаружение неисправностей, чем традиционные методы. Многочисленные исследования показали, что обнаружение неисправностей методом комбинаторного тестирования равнозначно исчерпывающему тестированию с уменьшением размера тестового набора в 20-700 раз [2]. Новые алгоритмы сжатия комбинаций в небольшое количество тестов сделали этот метод весьма практичным для промышленного использования, обеспечивая лучшее тестирование при меньших затратах.

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

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

2. Описание методики оценки покрытия кода

При проведении эксперимента использовалась тестовая программа printtokens — одна из программ пакета Siemens из Software Infrastructure Repositories. Программа токенизирует текстовый файл и определяет тип каждого токена. В пакете для каждой программы есть версия без ошибок и несколько версий с ошибками. Также в пакете есть набор тестовых данных, которые в данном эксперименте не использовались. Описание параметров программы приведено в таблице 1.

Таблица 1

Характеристики используемой тестовой программы_

Количество строк кода 472

Количество функций 18

Количество неисправных версий 7

Входные модели для генерации тестов (22) х (24) х (5) х (8) х (2 х 7)3

Ограничений по входной модели 4

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

3. Результаты экспериментов

В этом разделе мы сначала рассмотрим результат генерации тестов. Некоторые статистические данные о размерах сгенерированных наборов для различных значений параметра I, включая минимум, максимум, среднее и относительное стандартное отклонение количества тестов, представлены в таблице 2.

Таблица 2

Размер тестовых наборов__

Глубина Мин Макс Ср Отн.ст.откл.

2 41 46 43.23 2.71

3 114 128 121.21 2.16

4 304 327 315.55 1.65

5 759 782 770.09 0.75

В таблице 3 показаны статистические данные о покрытии кода, достигнутом с помощью случайных наборов тестов. Покрытие тестового набора обеспечивалось с помощью программного обеспечения ACTS. В большинстве случаев достигается более 80 % (в среднем) покрытия t-way путей случайным набором тестов. Исключения составляют комбинации с t = 2 и 3, где среднее покрытие от t-way составляет от 70 % до 80 %.

Таблица 3

Комбинаторное покрытие случайными наборами ^_

Глубина Мин Макс Ср Отн.ст.откл.

2 52.95 82.56 67.75 7.89

3 54.23 88.53 71.38 11.43

4 61.11 94.25 77.68 9.23

5 75.59 95.33 85.46 4.09

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

Таблица 4

Предельное покрытие строк и ветвей кода_

Максимальное покрытие строк Максимальное покрытие ветвей

(46.15) (46.67) (45.13) (43.08) (74.36) (35.38) (47.69) 69.74 (35.78) (36.7) (38.53) (40.37) (57.8) (27.52) (35.78) 55.05

Таблица 5

Тестовое покрытие строк и ветвей кода__

Глубина Метод Мин Q1 Мед Q3 Макс Спред Отн.Ст.Откл.

С 2 t-way 26.83 28.46 41.46 73.17 86.99 60.16 41.37

Т random 26.83 26.83 38.21 73.17 86.99 60.16 47.17

Р 3 t-way 39.84 77.24 78.86 89.23 92.68 52.84 17.23

О Random 28.46 75.61 77.24 88.62 92.68 64.22 15.61

К 4 t-way 78.86 92.68 92.68 92.68 92.68 13.82 5.47

И Random 77.24 78.86 92.68 92.68 92.68 15.44 6.94

5 t-way 92.68 92.68 92.68 92.68 92.68 0 0

Random 78.86 92.68 92.68 92.68 92.68 13.82 1.49

В 2 t-way 27.27 30.68 42.615 68.18 77.27 50 34.92

Е Random 27.27 29.55 38.64 67.05 77.27 50 39.32

Т 3 t-way 77.24 39.77 72.73 75 80.11 84.09 44.32

В Random 30.68 71.59 72.73 78.41 84.09 53.41 13.36

И 4 t-way 75 84.09 84.09 84.09 84.09 9.09 3.94

Random 72.73 75 84.09 84.09 84.09 11.36 5.03

5 t-way 84.09 84.09 84.09 84.09 84.09 0 0

Random 75 84.09 84.09 84.09 84.09 9.09 1.08

4. Результаты оценки эффективности покрытия кода

Результаты исследований показывают, что в основном k-way способ тестирования работает так же хорошо или лучше, чем случайное тестирование. В целом различия между ними не так значительны, как можно было бы ожидать. Как правило это можно объяснить тем фактом, что большинство случайных наборов тестов имеют высокий процент двойного покрытия. Например, хотя случайный набор тестов не охватывает все комбинации k-way, все же он охватывает большинство из них. Отсутствие небольшого количества комбинаций не сильно влияет на охват кода и количество обнаруженных ошибок.

Покрытие кода определяется путем запуска каждого набора тестов на безошибочной версии каждой программы. Максимальный охват в определенной степени указывает на качество входной модели. В основном k-way и случайное тестирование дают одинаковые результаты покрытия. Однако, когда к = 3, случайное тестирование имеет немного меньшее относительное стандартное отклонение для покрытия, чем k-way тестирование. Редкие случаи, когда случайный набор тестов обеспечивает лучшее покрытие, чем t-way, выделены в таблице 5.

5. Иные исследования

Известно о ряде исследований, в которых оценивается эффективность k-way метода тестирования. Например, работа [5], в которой сравнивается эффективность k-way и случайного тестирования. Описаны исследования, в которых применяется k-way тестирование и случайное тестирование для обнаружения тупиковых ситуаций в симуляторе сети под названием Simured. Наборы тестов k-way генерируются с к = от 2 до 4. Для каждого набора тестов k-way генерируются восемь случайных набо-

ров тестов одинакового размера, соответствующих каждому комбинаторному набору. Эксперименты показывают, что: случайное тестирование дает лучшие результаты, чем 2^ау тестирование; нет существенной разницы между случайным и 3^ау тестированием; четырехстороннее тестирование существенно более эффективно, чем случайное.

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

Также были проведены и другие эксперименты [6] по сравнению эффективности обнаружения неисправностей комбинаторных и случайных наборов тестов. Такие результаты показывают, что нет существенной разницы в к^ау и случайном тестировании с точки зрения обнаружения неисправностей. Их результаты показывают, что двухсторонние тестовые наборы не так эффективны, как тесты, созданные вручную, с точки зрения именно обнаружения неисправностей. Но набор для к^ау тестов с более высокой степенью может быть столь же эффективным, как и набор для тестов, сгенерированный вручную. Результаты также показывают, что случайные наборы тестов часто могут давать хорошие результаты. Например, для 5 из 10 программ наборы случайных и к^ау тестов дают одинаковые результаты, а в одном случае случайные наборы тестов даже дают лучшие результаты, чем наборы тестов, полученные методами к^ау тестирования.

Заключение

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

Список литературы

1. Schroeder РХ, Во1аЫ Р., Gopu V. Сравнение эффективности обнаружения сбоев п^ау и случайных наборов тестов. // Материалы Международного симпозиума по эмпирической программной инженерии, 2004. - С.49-59.

2. Червонка Дж. Парное тестирование в реальном мире. Практические дополнения к генераторам тестовых примеров. // Материалы 24-й Тихоокеанской севе-розпадной конференции по качеству программного обеспечения, 2006. - С. 419-430.

3.Nie C., Leung H. A survey of combinatorial testing. // ACM Comput. Surv. -2011. - Pp. 11:1-11:29.

4. Nie C., Leung H. The minimal failure-causing schema of combinatorial testing. // ACM Trans. Softw. Eng. Methodol. - 2011. - Pp. 15:1-15:38.

5. Kuhn D.R., Okun V. Pseudo-exhaustive testing for software. // SEW. - 2006. -Pp. 153-158.

6. Do H., Elbaum S., Rothermel G. Supporting Controlled Experimentation with Testing Techniques: An Infrastructure and its Potential Impact. // Empirical Software Engineering. - 2005. - Vol. 10(4). - Pp. 405-435.

УДК 004

doi :10.18720/SPBPU/2/id21 -401

Десятириков Феликс Андреевич1,

студент

СИСТЕМНЫЙ ПОДХОД К ОРГАНИЗАЦИИ АВТОМАТИЧЕСКОГО ТЕСТИРОВАНИЯ СТУДЕНТОВ МУЗЫКАЛЬНЫХ УЧЕБНЫХ

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

ЗАВЕДЕНИЙ

1 Россия, Воронеж, ФГБОУ «Воронежский государственный

университет», science2000@ya.ru

Аннотация. Разработан программный продукт, реализующий цифровую форму дистанционного контроля знаний на языке Java под платформу Android. В тестирующей системе использована визуальная, аудио и графическая генерацией вопросов и ответов, что обеспечивает использование традиционных форм обучения в дистанционном режиме. Кроме автономного режима автоматическая система тестирования предполагает возможность сетевого взаимодействия преподавателя с группой обучающихся.

Ключевые слова. тестирование, музыкальное образование, Android-приложение.

Felix A. Desyatirikov1, Student

SYSTEM APPROACH TO ORGANIZATION OF AUTOMATIC TESTING OF STUDENTS OF MUSIC EDUCATION INSTITUTIONS

Voronezh State University, Voronezh, Russia, science2000@ya.ru

Abstract. A software product has been developed that implements a digital form of remote control of knowledge in the Java language for the Android platform. The testing system uses visual, audio and graphical generation of questions and answers, which

i Надоели баннеры? Вы всегда можете отключить рекламу.