Устройство для тестирования и автоматизированной отладки программного обеспечения

 

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

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

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

Известна следующая промышленная модель процесса отладки программного обеспечения, описанная в Липаев В.В. Тестирование программ. - М.: Радио и связь, 1986. - 296 с. Ил., которая обеспечивает процесс отладки программного обеспечения. В качестве аналогов выберем множество возможных реализаций данных моделей.

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

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

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

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

Сущность полезной модели заключается в решении задач накопления тестовых сценариев, и их преобразования в тестовые программы на языке программирования общего назначения, выполнения тестового прогона и анализа его результатов. Устройство для автоматизированной отладки программного обеспечения, приведенное на фигуре 1 представляет собой техническую систему, состоящую из: блока хранения тестовых сценариев 101, блока анализа тестовых сценариев 102, блока трансляции тестовых сценариев на язык программирования общего назначения 103, блока компиляции оттранслированных тестовых сценариев 104, блока выполнения программного модуля 105, блока анализа результатов тестирования 106, системной шины 107, блока ввода тестовых сценариев 108, блока вывода результатов тестирования 109, запоминающего устройства 110, центрального процессора 111.

Блок хранения тестовых сценариев 101 представляет собой реляционную базу данных.

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

Блок трансляции тестовых сценариев на язык программирования общего назначения 103 выполнен с возможностью генерации исходного кода тестовых сценариев на языке программирования общего назначения.

Блок компиляции оттранслированных тестовых сценариев 104 осуществляет управляемую центральным процессором 111 генерацию исполняемых машинных кодов для последующего их исполнения в блоке выполнения программного модуля 105.

Блок выполнения программного модуля 105 осуществляет управляемое центральным процессором 111 исполнение программного модуля с начальными условиями, заданными текущим тестовым сценарием.

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

Системная шина 107 обеспечивает кодовый интерфейс связи между блоками устройства.

Блок ввода тестовых сценариев 108 представляет собой стандартную клавиатуру.

Блок вывода результатов тестирования 109 представляет собой стандартный монитор, на котором отображаются результаты прохождения тестов.

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

Центральный процессор 111 представляет собой устройство, отвечающее за управление блоками, а также за исполнение тестируемого программного модуля.

Устройство для автоматизированной отладки программного обеспечения работает следующим образом.

Через блок ввода тестовых сценариев 108 автор алгоритмов, по которым написано программное обеспечение, вводит тестовый сценарий для проверки программного модуля. Тестовый сценарий фиксируется в блоке хранения тестовых сценариев 101 и поступает на вход блока анализа тестовых сценариев 102. Блок анализа тестовых сценариев 102 осуществляет выделение синтаксически значимых лексем из входного текста сценария, определяет принадлежность входного набора лексем множеству правил, порождающих все допустимые предложения языка задания тестовых сценариев, и формирует промежуточное представления тестовых параметров, которое поступает на вход блока трансляции тестовых сценариев на язык программирования общего назначения 103. В блоке трансляции тестовых сценариев на язык программирования общего назначения 103 выполняется генерация исходного кода тестовых сценариев на языке программирования общего назначения и его передача в блок компиляции оттранслированных тестовых сценариев 104, в котором осуществляется управляемая центральным процессором 111 генерация исполняемых машинных кодов. Машинные коды поступают на вход выполнения программного модуля 105, в котором осуществляется выполнение центральным процессором 111 программного модуля с начальными условиями, заданными текущим тестовым сценарием. Результат выполнения поступает на вход блока анализа результатов тестирования 106, в котором производится анализ выходных параметров программного модуля, анализ трассировки внутренних состояний и анализ исключительных ситуаций, результат анализа сохраняется в запоминающем устройстве 110. Из запоминающего устройства 110 результат анализа поступает в блок вывода результатов тестирования 109. Обмен данными между блоками устройства осуществляется с помощью системной шины 107.

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

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

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

- блок хранения тестовых сценариев 101 может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в Аткинсон, Леон. MySQL. Библиотека профессионала.: Пер с англ. - М.: Издательский дом «Вильяме», 2002. - 624 с: ил. - Парал. тит. англ., стр. 48-58;

- блок анализа тестовых сценариев 102 может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в Ю. Карпов «Теория и технология программирования. Основы построения трансляторов» - Издательство «БХВ - Петербург», 2005 г., стр. 167-171;

- блок трансляции тестовых сценариев на язык программирования общего назначения 103 может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в Ю. Карпов «Теория и технология программирования. Основы построения трансляторов» - Издательство «БХВ - Петербург», 2005 г., стр. 153-257;

- блок компиляции оттранслированных тестовых сценариев 104 может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в А. Ахо, Р. Сети, Дж. Ульман «Компиляторы: принципы, технологии и инструменты». 2-е изд. Издательский дом «Вильяме», 2003 г., стр. 155-617;

- блок выполнения программного модуля 105 может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в Р. Токхайм «Микропроцессоры. Курс и упражнения». Издательство: «Энергоатомиздат» 1988 г., стр. 81-106;

- блок анализа результатов тестирования 106 может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в Р. Калбертсон, К. Браун, Г. Кобб «Быстрое тестирование». Издательский дом «Вильяме», 2001 г., стр. 35-50;

- системная шина 107 может быть получена по предъявленным к ней требованиям по известным методам и правилам, описанным в ГОСТ 52070-2003;

- центральный процессор 111 может быть получен по предъявленным к нему требованиям по известным методам и правилам, описанным в Р. Токхайм «Микропроцессоры. Курс и упражнения». Издательство: «Энергоатомиздат» 1988 г., 336 стр., стр. 106-129;

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



 

Наверх