Изобретение относится к вычислительной технике, а именно к способу подтверждения тестов встроенного программного обеспечения электронных устройств.
Известно изобретение «Способ обработки объема данных, используемого во время фазы отладки функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для его осуществления» (Патент RU 2451990 C2), в соответствии с которым способ включает следующие этапы: а) разбивка пути выполнения указанной рабочей программы на функциональные интервалы путем установки путевых точек в каждой функции программы; b) установка контрольных точек, связанных с каждой путевой точкой; с) нормальное выполнение программы, при котором осуществляют: запись в память состояния выполнения программы в месте каждой путевой точки; при этом запись в память состояния выполнения приводит к стиранию состояния выполнения, ранее записанного для указанной путевой точки; при обнаружении ошибки осуществляют: поиск путевой точки, соответствующей нарушенной функции; поиск исходного состояния выполнения программы; восстановление этого исходного состояния выполнения; исправление ошибки в нарушенной функции и повторное выполнение программы.
В качестве тестового интервала используется путь от метки до метки, который и определяет функциональный интервал программного обеспечения. Такую разметку может осуществить только программист, знающий реализацию программного обеспечения на уровне белого ящика. Знание реализации может снизить достоверность тестирования, не позволяя объективно протестировать функциональное требование в независимости от того как оно реализовано.
Для повышения достоверности тестирования лучше привлечь специалиста, знающего требования на программное обеспечение, и не имеющего полного представления о его реализации. В качестве такого специалиста можно выбрать разработчика требований к программному обеспечению, который воспринимает программное обеспечение на уровне требований к нему, без учета реализации. В таком случае в качестве функциональных интервалов будут использоваться именно требования, для проверки которых необходимо написать отдельные тесты с установкой в них контрольных точек обнаружения ошибок. Таким образом, данное тестирование будет проводиться по методу серого ящика.
Существенное значение имеет качество написанных тестов, которые до тестирования с нормальным выполнением программного обеспечения необходимо проверить и подтвердить. В противном случае возможны ситуации, когда тест не обнаруживает ошибку, и она в последствие приводит к нештатным ситуациям в работе электронного устройства и системы, в которой оно установлено. Выявление и устранение подобной ошибки увеличит время испытаний, за счет повторения пройденных этапов. Таким образом, чтобы можно было говорить о достоверности тестирования необходимо, не просто произвести расстановку контрольных точек, но и проверить их работоспособность, т.е. отработать тесты.
Отработка тестов на обнаружение ошибок обеспечивает унитарное тестирование программного обеспечения электронного устройства, а, значит, исключает подобные возможные ошибки еще до тестирования с нормальным выполнением программного обеспечения, а, следовательно, обеспечивает сокращение времени испытаний.
Известно изобретение «Способ функционального тестирования программного обеспечения электронных устройств» (Патент RU 2780458 C1), в котором для использования полностью достоверных тестов при их разработке проводится подтверждение на обнаружение ошибок с использованием программного обеспечения электронного устройства. Она проводиться путем имитации ошибки через технологический канал обмена электронного устройства и подтверждения выявления введенной ошибки контрольными точками тестов. Введение ошибки в программное обеспечение может нарушить ход его выполнения и повлиять на результаты следующих тестов, поэтому для исключения подобных ситуаций необходимы дополнительные алгоритмы парирования введенных ошибок, после проверки теста, для которого они вводились. Это накладывает дополнительную трудоемкость.
К недостаткам данного изобретения можно отнести:
- возможное нарушение вычислительного процесса электронного устройства или его непредсказуемое поведение, за счет внесения ошибки в программное обеспечение при отработке тестов.
- внесенную ошибку для проверки одной контрольной точки, необходимо исключать для проведения контроля других контрольных точек, что накладывает дополнительные затраты, которые могут быть связаны с устранением внесенной ошибки путем перезапуска вычислительного процесса или выполнения дополнительного алгоритма парирования данной ошибки;
- при неполном устранении внесенной ошибки для одной контрольной точки, возможно ее влияние при проверке других контрольных точек.
Недостатки данного изобретения могут быть устранены путем исключения ввода ошибки в программное обеспечение электронного устройства, а имитации ее на аппаратуре контроля, путем подмены данных, считываемых от программного обеспечения электронного устройства, что позволит не нарушать вычислительный процесс программного обеспечения электронного устройства и обеспечить полноценную отработку тестов.
Изобретение «Способ функционального тестирования программного обеспечения электронных устройств» (патент RU 2780458 C1) выбрано в качестве прототипа.
Для заявленного изобретения выявлены следующие общие с прототипом существенные признаки: способ подтверждения тестов встроенного программного обеспечения электронных устройств, заключающийся в том, что один тест проверяет один функциональный блок и для каждого теста устанавливают не менее одной контрольной точки; вводят ошибку и выполняют тест; проверяют срабатывание контрольной точки теста путем его выполнения с использованием тестируемого программного обеспечения; при обнаружении ошибки контрольной точкой переходят к проверке следующей контрольной точки данного теста, путем ввода новой ошибки; в случае не выявления контрольной точкой введенной ошибки, в тесте проводят корректировку логики выявления ошибки в контрольной точке и повторяют проверку до тех пор, пока контрольная точка не будет выявлять ошибку; после проверки всех контрольных точек очередного теста выполняется проверка контрольных точек следующего теста и так далее для всех тестов.
Технической проблемой является повышение надежности работы электронного устройства за счет повышения надежности и качества тестирования его программного обеспечения.
Техническая проблема решается за счет того, что подтверждение тестов осуществляется путем имитации ошибки в данных от программного обеспечения электронного устройства для проверки каждой контрольной точки. Имитация ошибки осуществляется путем чтения данных от тестируемого программного обеспечения электронного устройства и подмены данных в них. При выполнении подмены данных, в ходе выполнения теста, аппаратура контроля выполняет перезапись данных от тестируемого программного обеспечения электронного устройства в собственной оперативной памяти в соответствии с заданной ошибкой, тем самым отрабатывается выявление ошибки в контрольной точке теста.
Подмена данных от программного обеспечения электронного устройства для подтверждения тестов позволяет повысить надежность тестирования за счет того, что отработка тестов происходит без нарушения вычислительного процесса программного обеспечения электронного устройства (отсутствует реальное внесение ошибки) и повысить качество тестирования за счет гарантированной отработки контрольных точек тестов с исключением влияния отработки каждой на остальные, что в итоге повысит общую надежность работы электронного устройства.
Для реализации предлагаемого способа используется комплекс тестирования, содержащий аппаратуру контроля 1 и электронное устройство 2, представленный на фиг. 1.
Аппаратура контроля 1 содержит среду разработки и выполнения тестов 1.1, средства прямого доступа в память 1.2, имитаторы внешних устройств 1.3, аппаратные модули обмена 1.4.
Среда разработки и выполнения тестов 1.1 реализуется в виде единого пользовательского интерфейса и позволяет разрабатывать тесты. Тесты содержат последовательность операций управления вычислительным устройством и установку контрольных точек. В качестве контрольных точек могут выступать операции контроля определенных данных (появление телеметрического признака в словах данных, формирования флага срабатывания по условию или определенного значения математического преобразования и др.), регистрации срабатывания какого либо события в программном обеспечении электронного устройства (выдача определенной команды управления на имитатор, изменение состояния параметра телеметрической информации и др.), подсчета времени выполнения функциональных блоков или времени между событиями и т.д.
Средства прямого доступа в память 1.2 представляют собой средства, реализующие протокол обмена по диагностическому (технологическому) каналу обмена 3 и осуществляющие прямой доступ в память в электронное устройство 2. Прямой доступ в память электронного устройства 2 позволяет модифицировать данные в нем и выполнять его перепрограммирование программным обеспечением электронного устройства.
Модели функциональных устройств включают модули обмена 1.4, моделирующие логику работы штатных каналов обмена 4 и имитаторы внешних устройств 1.3, моделирующие работу внешних устройств электронного устройства.
Электронное устройство 2 подключается к модулям обмена 1.4 аппаратуры контроля 1 по штатным каналам обмена 4 и к средствам прямого доступа в память 1.2 аппаратуры контроля 1 по диагностическому (технологическому) каналу обмена 3. В электронное устройство 2 по диагностическому (технологическому) каналу обмена 3 запрограммировано программное обеспечение, для которого будет осуществляться тестирование.
Программное обеспечение электронного устройства разрабатывается на основе документа требований. В нем описываются все требования заказчика к разрабатываемому программному обеспечению электронного устройства. В качестве такого документа может выступать спецификация, техническое задание и др.
Способ реализуется следующим образом:
Реализация способа представлена на фиг. 2.
Тестировщик на основе документа требований на программное обеспечение электронного устройства, проводит разбивку программного обеспечения электронного устройства на функциональные блоки. В качестве таких функциональных блоков могут выступать как отдельные требования к программному обеспечению электронного устройства, так и их совокупность, связанных между собой общей частью, если они предъявляются для выполнения одной и той же функции.
Пример функции как единичного требования: обеспечение определенного времени между управляющими командами во внешние устройства, включение телеметрического параметра по конкретной команде в программном обеспечении электронного устройства и т.д.
Пример функции как множественности требований - выдача управляющей команды во внешнее устройство (включает в себя: выдача команды от аппаратуры контроля, формирование квитанции для аппаратуры контроля через определенное время, выдача управляющей команды в имитатор внешнего устройства и контроль телеметрической информации аппаратурой контроля о статусе выдачи команды во внешнее устройство) и др.
После разбивки программного обеспечения электронного устройства на функциональные блоки тестировщик в среде разработки и выполнения тестов формирует функциональные тесты с установкой, как минимум, одной контрольной точки для каждого теста. Контрольной точкой может являться единичная операция или набор операций, предназначенных для контроля состояния данных или массивов, характеризующих работу проверяемой функции тестируемого программного обеспечения.
Подтверждение тестов заключается в отработке гарантированного срабатывания контрольных точек всех тестов.
Для подтверждения тестов тестировщик на аппаратуре контроля в тесте до контрольной точки запрашивает данные от программного обеспечения электронного устройства, задает данные подмены в считанных данных от программного обеспечения электронного устройства для проверки срабатывания контрольной точки. Тестировщик выполняет тест с проходом контрольной точки. При выполнении подмены данных, в ходе выполнения теста, аппаратура контроля выполняет перезапись данных от тестируемого программного обеспечения электронного устройства в собственной оперативной памяти в соответствии с заданной ошибкой. В случае не обнаружения ошибки контрольной точкой она корректируется (для нее вводятся уточненные данные или параметры контроля) и опять проверяется ее срабатывание и так до тех пор, пока она не будет выявлять введенную ошибку. В случае обнаружения ошибки контрольной точкой проверяется следующая контрольная точка в тесте аналогичным образом. После проверки всех контрольных точек в тесте тестировщик переходит к следующему тесту и проверяет аналогично его контрольные точки и так до тех пор, пока для всех тестов контрольные точки не будут проверены.
Таким образом, в ходе подтверждения тестов условия проверки контрольных точек являются инверсными, то есть прохождение контрольной точки является успешным, когда недостоверные данные обнаружены, и выполнение тестов продолжается. После подтверждения тестов выполняется тестирование с нормальным выполнением программного обеспечения электронного устройства.
При тестировании с нормальным выполнением программного обеспечения электронного устройства, операции подмены данных в тестах не выполняются и условия проверки контрольных точек являются нормальными, т.е. тесты выполняются штатно. В этом режиме прохождение контрольной точки говорит о том, что данные проверяемой функции программного обеспечения в норме. Остановка хода выполнения тестов в контрольной точке говорит о наличии ошибки в контролируемых данных, полученных от тестируемого программного обеспечения электронного устройства.
Выполнение подтверждения тестов позволяет гарантировать выявление ошибок в программном обеспечении электронного устройства при его тестировании с нормальным выполнением, за счет отработанного срабатывания контрольных точек в тестах.
Способ был опробован на многофункциональном рабочем месте наземного отладочного комплекса программного обеспечения приборов управления, который выполнен в стандарте PXI, состоящим из:
- вычислительного модуля с программным обеспечением выступающего в качестве электронного устройства;
- аппаратуры контроля на базе крейта NI PXI-1045 с контроллером шины PXI-8110:
- среды разработки и выполнения тестов, выполняющей управление аппаратными компонентами аппаратуры контроля;
- модели функциональных устройств разработанные на базе модулей обмена (фирмы National Instruments), таких как PXI-C1553M-EF-4 (модуль МКО), PXI-8431/4(модуль RS-485/422), PXI-7813R (модуль цифрового ввода-вывода с ПЛИС) и др., моделирующих логику работы штатных каналов обмена и моделирующих логику работы функциональных устройств;
- средства доступа по диагностическому (технологическому) каналу обмена.
С использованием данного способа проведено тестирование встроенного программного обеспечения вычислительного устройства блоков управления и блоков интерфейсных бортового комплекса управления современных и перспективных космических аппаратов производства АО «ИСС».
Реализация данного технического решения позволяет получить необходимый технический результат:
- повышение надежности тестирования за счет того, что отработка тестов происходит без нарушения вычислительного процесса программного обеспечения электронного устройства;
- повышение качества тестирования за счет гарантированной отработки контрольных точек тестов, и исключения влияния отработки каждой на остальные.
Из известных заявителю патентно-информационных материалов не обнаружены признаки, сходные с совокупностью признаков заявляемого способа.
Предлагаемое изобретение относится к области вычислительной техники. Технический результат заключается в повышении надежности работы электронного устройства за счет повышения надежности и качества тестирования его программного обеспечения. Технический результат достигается за счет того, что при написании каждого функционального теста определяют количество контролируемых точек и выполняют проверку теста с использованием тестируемого программного обеспечения электронного устройства, т.е. срабатывание каждой контрольной точки в тесте путем имитации ошибки в данных от программного обеспечения электронного устройства. Имитация ошибки осуществляется путем чтения данных от тестируемого программного обеспечения электронного устройства и подмены данных в них. При выполнении подмены данных, в ходе выполнения теста, аппаратура контроля выполняет перезапись данных от тестируемого программного обеспечения электронного устройства в собственной оперативной памяти в соответствии с заданной ошибкой, тем самым отрабатывается выявление ошибки в контрольной точке теста. При обнаружении ошибки контрольной точкой переходят к проверке следующей контрольной точки данного теста, путем имитации новой ошибки в данных программного обеспечения электронного устройства, а по завершении выполнения проверки теста переходят к написанию следующего функционального теста. 2 ил.
Способ подтверждения тестов встроенного программного обеспечения электронных устройств, заключающийся в том, что один тест проверяет один функциональный блок и для каждого теста устанавливают не менее одной контрольной точки; вводят ошибку и выполняют тест; проверяют срабатывание контрольной точки теста путем его выполнения с использованием тестируемого программного обеспечения; при обнаружении ошибки контрольной точкой переходят к проверке следующей контрольной точки данного теста, путем ввода новой ошибки; в случае невыявления контрольной точкой введенной ошибки, в тесте проводят корректировку логики выявления ошибки в контрольной точке и повторяют проверку до тех пор, пока контрольная точка не будет выявлять ошибку; после проверки всех контрольных точек очередного теста выполняется проверка контрольных точек следующего теста и так далее для всех тестов, отличающийся тем, что до ввода ошибки в тест выполняют чтение данных от тестируемого программного обеспечения электронного устройства; на этапе ввода ошибки осуществляется подмена данных в считанных данных от тестируемого программного обеспечения электронного устройства; в ходе выполнения теста, при выполнении подмены данных, аппаратура контроля выполняет перезапись данных от тестируемого программного обеспечения электронного устройства в собственной оперативной памяти в соответствии с заданной ошибкой.
СПОСОБ ФУНКЦИОНАЛЬНОГО ТЕСТИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ УСТРОЙСТВ | 2021 |
|
RU2780458C1 |
СПОСОБ ДИАГНОСТИКИ КОМПЛЕКСА ТЕСТИРОВАНИЯ ВСТРОЕННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ УСТРОЙСТВ | 2023 |
|
RU2802712C1 |
US 10528689 B1, 07.01.2020 | |||
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор | 1923 |
|
SU2005A1 |
Способ приготовления лака | 1924 |
|
SU2011A1 |
Авторы
Даты
2024-04-11—Публикация
2023-10-03—Подача