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

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

CC BY
24
9
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОЛЕТНОЕ ЗАДАНИЕ / АЛГОРИТМ / БЛОК-СХЕМА / СЕТКА ТЕСТИРОВАНИЯ / ПРИОРИТЕТЫ ДАННЫХ / FLIGHT MISSION COMPUTING AND CONTROL / ALGORITHM / BLOCK-DIAGRAM / DATA PRIORITIES

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

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

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

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

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

COMPUTATIONAL GRID COMPACTING FOR TESTING COMPUTING AND CONTROL PROGRAM MODULES OF FLIGHT MISSION BUILT ON THE INPUT DATA PRIORITY BASIS

The article suggests the mesh-building technique algorithm improving for program modules testing as a part of the software for the flight mission computing and monitoring based on the input data priorities building. The software support for the flight mission computing and monitoring (hereinafter referred to as SSFMCM) consists of a set of interconnected elements (program modules) [1]. A program module (further PM) is a functionally completed software implementation of a SSFMCM partial task (algorithm). Development and testing of the above said program modules may be realized by the special program tool (BTTesting) application [2-7]. Testing methodology (automated investigation testing [8-15], and calculations automation in aerospace engineering [16]) embedded in BTTesting implies a computational grid formation based on the input data priorities building of the PM being tested. A testing methodology implemented in BTTesting (automated explorary testing [8-15], automation of analyses in aerospace industry [16]) means the generation of a computational grid on the basis of the attachment of priorities of input data of a PM under test. The input data priorities building technique and computational grid generation algorithm were presented in [3]. The above appointed algorithm allows increase the number of testing steps for the input parameters with higher priority (the higher the perturbation of the resulting data, the higher its priority). However, the resulting data perturbations depending on the input parameter region variation is unevenly distributed. Knowledge of the above-appointed dependence will allow generation of the computational testing grid with uneven (discrete) step and, thus, increase the number of nodes in the regions with maximum deflection of the resulting data. The article presents the algorithm for building the above mentioned dependence and discrete computational grid based on the assumption that the highlighted domains (with higher variations of the resulting data) contain maximum number of faults (incorrect decisions). The developed algorithm allows compressing the testing grid within the input data areas variations leading to maximum deflection of the results, which allows obtaining the greater number of incorrect solutions per the same time unit, and, thus, employ the time resources allocated for testing more effectively.

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

УДК 681.51:629.78 DOI: 10.34759/trd-2020-111-15

Алгоритм уплотнения расчетной сетки тестирования программных модулей расчета и контроля полетного задания, построенной на основе приоритетов входных данных

Ляпин А.А.

Государственный ракетный центр имени академика В.П. Макеева, Тургоякское шоссе, 1, Миасс, Челябинская обл., 456300, Россия e-mail: lyapin-sasha@mail.ru

Статья поступила 01. 07.2019

Аннотация

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

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

Постановка задачи

Программное обеспечение расчета и контроля полетного задания (далее ПО РКПЗ) состоит из множества взаимосвязанных элементов (программных модулей) [1]. Программный модуль (далее ПМ) - функционально завершённая программная реализация частной задачи (алгоритма) РКПЗ. Отработка и тестирование программных модулей может осуществляться при помощи использования специального программного средства (программный комплекс BTTesting [2-7]). Заложенная в BTTesting методология тестирования (автоматизированное исследовательское тестирование [8-15], автоматизация расчетов в аэрокосмической технике [16]) подразумевает формирование расчетной сетки на основе построения приоритетов входных данных тестируемого ПМ (BTTesting может применяться для оценки эффективности современных задач баллистики и движения КА [17-19]).

Методика построения приоритетов входных данных и алгоритм генерации расчетной сетки представлены в работе [3]. Указанный алгоритм позволяет увеличить количество шагов тестирования для входных параметров с высоким приоритетом (чем выше возмущения результирующих данных при изменении входного параметра, тем выше его приоритет). Однако, возмущения результирующих данных в зависимости от области изменения входного параметра распределены неравномерно. Знание указанной зависимости позволит строить расчетную сетку тестирования с неравномерным (дискретным) шагом изменения и,

таким образом, позволит увеличить количество узлов в областях с наибольшим отклонением результирующих данных (рис. 1).

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

Алгоритм построения дискретной расчетной сетки Пусть ПМ имеет п входных параметров Р{р1, р2 .. рп}, а также известно максимально возможное значение приоритета Стах. Для построения расчетной сетки по алгоритму [3] необходимо наличие начальной сетки тестирования и результатов расчета по ней.

Обозначим начальную расчетную сетку как (р1, р2.. рр, I = 1. .п], где -

количество вариаций ьтого параметра в расчетной сетке.

1) Для каждого входного параметра строим дискретный набор приоритетов.

В цикле по i = 1 до п:

• разбиваем заданные вариации текущего параметра на отрезки:

(р^.-рР] - (р11,р,2),(р12,р13).....(рРЛрП;

• используя алгоритм построения приоритетов, приведенный в [3], строим

приоритет параметра на каждом отрезке (С1, С2.. Ср с учетом С

тах 5

2) Определим приоритет параметра как среднее арифметическое на полученном отрезке: С^ — —-.

К—1

3) По алгоритму построения расчетной сетки [3] на основе С^ получим новое количество вариаций параметра (новая размерность сетки) К™в.

4) Определим количество вариаций Ы/ каждого ьтого параметра внутри каждого его ]-того отрезка.

Определяем коэффициент значимости каждого отрезка (весовой

коэффициент):

К™в + К — 1

¿1 =

Ы/ = ¿1 • сЦ , где У = 1.. (К; — 1). Конец цикла по ь

5) Определим общее

количество тестов как Креал — П1=1Кнов

6) Формируем новую расчетную сетку, разбивая каждый отрезок каждого параметра на найденное количество вариаций Ы/.

Рис. 2. Блок-схема алгоритма

Результат

На основе приведенного алгоритма был модифицирован программный комплекс BTTesting [20-25]. Ниже приведен пример построения сетки тестирования для программного модуля решения обратной баллистической задачи (при заданном кол-ве тестов 500) для сетки с учетом приоритетов (таблица 2) и полученной по результатам алгоритма (таблица 3). В качестве варьируемых параметров взяты широта ф и долгота X начальной точки. Статистика решений приведена в таблице 4.

Таблица 1 - Значения варьируемых параметров

№ Равномерная сетка Дискретная сетка

ф (град.) X (град) ф (град.) X (град)

1 0 0 0 0

2 4.21 7.5 17.78 13.33

3 8.42 15 20.74 26.67

4 12.63 22.5 23.70 40

5 16.84 30 26.67 52

6 21.05 37.5 29.63 64

7 25.26 45 32.59 76

8 29.47 52.5 35.55 88

9 33.68 60 38.52 100

10 37.89 67.5 41.48 108

11 42.10 75 44.44 116

12 46.31 82.5 46.67 124

13 50.52 90 48.89 132

14 54.73 97.5 51.11 140

15 58.94 105 53.33 144.44

16 63.15 112.5 55.56 148.89

17 67.36 120 57.78 153.33

18 71.57 127.5 60 157.78

19 75.78 135 62.22 162.22

20 80 142.5 68.15 166.67

21 150 74.07 171.11

22 157.5 80 175.56

23 165 180

24 172.5

25 180

Таблица 2 - Равномерная сетка

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

6 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

9 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

13 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

14 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

15 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

17 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

18 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

19 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

20 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

21 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

22 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1

23 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1

24 1 1 1 1 1 1 1 2 2 2 2 2 1 1 1 1

25 1 1 1 1 1 1 1 2 2 2 2 1 1 1 1 1

Таблица 3 - Дискретная сетка

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

6 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

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

7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

9 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

13 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

14 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

15 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

17 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

18 1 1 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1

19 1 1 1 1 2 1 2 2 1 1 2 2 1 1 1 1 1 1 1 1 1 1

20 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1

21 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1

22 1 1 1 2 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1

23 1 1 1 2 1 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1

Таблица 4 - Статистика решений

Равномерная сетка Дискретная сетка

Проведено тестов 500 506

Некорректные завершения 14 (2.8 %) 44 (8.7%)

Анализ результатов показывает, что в областях вариаций входных данных, потенциально приводящих к некорректному решению, происходит уплотнение расчетной сетки. Построения расчетной сетки для других программных модулей (приведенных в [3]) подтверждает полученный результат.

Заключение

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

Библиографический список

1. Ляпин А.А., Голунов М.С. Технология разработки программного обеспечения расчета и контроля полетного задания для межконтинентальных баллистических ракет // V Ежегодный форум «Информационные технологии на службе оборонно-промышленного комплекса - 2016» (Челябинск, 17-20 мая 2016): тезисы докладов. -Челябинск: Издательский дом Connect, 2016. С. 62.

2. Ляпин А.А. Методология тестирования ПО РКПЗ // Материалы XX Юбилейной Международной конференции по вычислительной механике и современным прикладным программным системам, ВМСППС'2017 (Алушта, 24-31 мая 2017) - М.: Изд-во МАИ, 2017. С. 154 - 156.

3. Ляпин А.А. Тестирование программных модулей расчета и контроля полетного задания на основе построения приоритетов исходных // Труды МАИ. 2017. № 97. URL: http://trudymai.ru/published.php?ID=87359

4. Тюгашев А.А., Ильин И.А., Ермаков И.Е. Пути повышения надежности

и качества программного обеспечения в космической отрасли // Управление большими системами. 2012. № 39. С. 288 - 299.

5. Ляпин А.А. Алгоритм построения стохастических вариаций вектора с заданными ограничениями // Труды МАИ. 2018. № 102. URL: http://trudymai.ru/published.php?ID=99221

6. Ляпин А.А. Программа BTTesting: программа для ЭВМ № 2017664117. Правообладатель: Акционерное Общество «Государственный ракетный центр имени академика В.П. Макеева», 18.12.2017.

7. Ляпин А.А., Тюлькин Б.М. Интегрирование пассивного участка траектории на основе сочетания метода ks-регуляризации с методом Энке // Научные ведомости Белгородского государственного университета. Математика. Физика. 2018. Т. 50. № 1. С. 88 - 96.

8. James Bach. What is Exploratory Testing? URL: http://www.satisfice.com/articles/what_is_et.shtml

9. Савин Р. Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах. - М.: Дело, 2007. - 312 с.

10. Куликов С.С. Тестирование программного обеспечения. Базовый курс. -Минск: Четыре четверти, 2015. - 294 с.

11. Дастин Э., Рэшка Д., Пол Д. Автоматизированное тестирование программного обеспечения: внедрение, управление и эксплуатация / Пер. с англ. - М.: Изд-во Лори, 2003, - 567 с.

12. Бейзер Б. Тестирование черного ящика. Технологии функционального тестирования программного обеспечения и систем. - СПб.: Питер, 2004. - 318 с.

13. Котляров В.П., Коликова Т.В. Основы тестирования программного обеспечения - М.: Интернет-Университет Информационных Технологий. БИНОМ. Лаборатория знаний, 2006. - 285 с.

14. Блэк Р. Ключевые процессы тестирования. - М.: Изд-во Лори, 2006.- 544 с.

15. Николаев М.А., Юферов А.Г. Алгоритмы организации вариантных проектных расчетов // Научно-технический вестник Поволжья. 2013. № 6. С. 388 - 393.

16. Полоник Е.Н., Суренский Е.А., Федотов А.А. Автоматизация расчетов усталостной долговечности механических соединений элементов авиаконструкций // Труды МАИ. 2017. № 92. URL: http://trudymai.ru/published.php?ID=76755

17. Глущенко А.А., Хохлов В.П. Метод обнаружения маневра космического аппарата на основе текущих траекторных измерений // Труды МАИ. 2019. № 109. URL: http://trudymai.ru/published.php?ID=111402, DOI: 10.34759/trd-2019-109-17

18. Сапожников В.Б., Корольков А.В., Константинов С.Б., Александров Л.Г. Экспериментальная оценка невырабатываемых остатков топлива разгонных блоков на заключительных этапах полета // Труды МАИ. 2020. № 110. URL: http://trudymai.ru/published.php?ID=112838. DOI: 10.34759/trd-2020-110-7

19. Виноградов А.В., Борукаева А.О., Бердиков П.Г. Математическая модель движения баллистического летательного аппарата и алгоритмов расчета номинальных и возмущенных параметров движения баллистического летательного

аппарата // Труды МАИ. 2019. № 109. URL: http://trudymai.ru/published.php?ID=111430. DOI: 10.34759/trd-2019-109-25

20. Соммервилл И. Инженерия программного обеспечения. - М.: Издательский дом «Вильямс», 2002. - 624 с.

21. Бланшет Ж., Саммерфилд М. QT 4: программирование GUI на С++. Спб.: Изд-во Кудиц-Пресс, 2007. - 628 с.

22. Земсков Ю.В. Qt 4 на примерах. - СПб.: БХВ-Петербург, 2008. - 608 с.

23. Шлее М. Qt 4.5. Профессиональное программирование на С++. - СПб.: БХВ-Петербург, 2010. - 896 с.

24. Косова А.С. Особенности отработки программно-алгоритмического обеспечения системы управления движением и формирования консервативной информации одного типа летательных аппаратов // Труды ФГУП "НПЦАП" Системы и приборы управления. 2017. № 2. С. 27 - 36.

25. Макконнелл С. Совершенный код. Мастер класс. - М.: Издательско-торговый дом «Русская редакция». - СПб.: Питер, 2005. - 896 с.

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