СПОСОБ МУТАЦИОННОГО ТЕСТИРОВАНИЯ ЭЛЕКТРОННОЙ АППАРАТУРЫ И ЕЕ УПРАВЛЯЮЩЕГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ОПРЕДЕЛЕНИЕМ ЛОКАЛИЗАЦИИ МУТАЦИЙ
METHOD OF MUTATION TESTING OF ELECTRONIC EQUIPMENT AND ITS CONTROL SOFTWARE WITH DETERMINATION OF MUTATION LOCALIZATION

Изобретение относится к компьютерным системам, основанным на специфических вычислительных моделях с использованием электронных средств.
Известен способ тестирования электронной аппаратуры, реализуемый при помощи устройства для имитации отказов и внутрисхемного тестирования элементов дискретной аппаратуры (патент РФ №2093885). Способ позволяет имитировать неисправности как на отдельных, так и на нескольких выводах цифровых элементов путем аппаратного макетирования. Обеспечивает возможность работы с элементами, имеющими двунаправленные шины, а также предусматривает использование устройства в качестве цифрового внутрисхемного тестера за счет создания аппаратно-программной защиты каналов устройства от перегрузки. Позволяет осуществлять автоматизированное управление процессом тестирования. Недостатками данного устройства являются: отсутствие реконфигурируемой, при помощи языков описания аппаратуры, аппаратной части тестового устройства, что увеличивает время, затрачиваемое на имитацию отказов; отсутствие в способе описания правил локализации неисправностей.
Известен способ анализа безопасности устройств с использованием метода внесения неисправностей основанного на языках описания аппаратуры (патент США №US8418012 B2). Способ заключается в том, что получают базовый проект тестируемого электронного устройства на языке описания аппаратуры. Создают математические модели неисправностей для конфигурируемой интегральной схемы тестируемого электронного устройства. Описывают эти неисправности на языке описания аппаратуры. Вносят описанные неисправности в базовый проект особой конфигурируемой интегральной схемы тестируемого устройства. Проводят несколько экспериментов по внесению неисправностей, где каждый эксперимент включает неисправность, по крайней мере, одного сигнала.
Недостатками данного способа являются: невозможность имитации неисправностей устройств, не имеющих в своем составе программируемых логических интегральных схем (ПЛИС), по причине того, что неисправности вносятся в ПЛИС самого тестируемого устройства, при этом в составе тестового комплекса ПЛИС отсутствует; отсутствие возможности управления включением/выключением неисправностей в моделях без перекомпиляций проекта ПЛИС при помощи программного обеспечения (ПО) высокого уровня; отсутствие в способе описания правил локализации неисправностей.
Наиболее близким (прототипом) является способ мутационного тестирования радиоэлектронной аппаратуры и ее управляющего ПО (патент РФ №2549523). Способ заключается в том, что на языке описания аппаратуры создают два проекта модели электронного устройства: с неисправностями и исправный; затем проводят тестирование с использованием обоих проектов; сравнивают результаты тестирования от исправной и неисправной моделей на каждой неисправности из заданного массива, если в процессе тестирования исправной модели неисправностей не обнаруживают, а при тестировании неисправной обнаруживают весь массив внесенных неисправностей, то тестируемую электронную аппаратуру или ее управляющее ПО считают прошедшими тестирование. При этом в состав тестового комплекса входит ПЛИС для вышеописанного моделирования электронных устройств.
Недостатком данного способа является отсутствие описания правил локализации неисправностей.
Задачей изобретения является устранение указанного недостатка, что позволит, согласно правилам локализации, определять, какие именно мутации необходимо моделировать для увеличения вероятности обнаружения неисправностей тестируемой электронной аппаратурой в ходе ее штатной эксплуатации.
Поставленная задача изобретения решается тем, что в проекты ПЛИС, реализованные на языках описания аппаратуры, намеренно вносят модели неисправностей; затем проводят тестирование с целью оценки вероятности обнаружения внесенных моделей неисправностей тестируемой аппаратурой или ПО; на языке описания аппаратуры создают проект исправной модели электронного устройства, имитирующей поведение каналов ввода-вывода объекта испытаний (электронного устройства, разрабатываемого для конечного потребителя); записывают получившийся проект модели в ПЛИС устройства имитации неисправностей, встроенного в устройство управления процессом тестирования и содержащего интерфейсные каналы ввода-вывода; проводят тестирование на этой модели; результаты тестирования заносят в протокол при помощи устройства управления процессом тестирования; на языках описания аппаратуры создают проект модели объекта тестирования с неисправностями, причем предусматривают возможность их включения/выключения в процессе тестирования без перекомпиляции проекта, при помощи управляющего ПО высокого уровня; записывают получившийся проект модели в ПЛИС устройства имитации неисправностей, встроенного в устройство управления процессом тестирования; при помощи устройства управления процессом тестирования формируют массив управляющих воздействий поочередно включающих неисправности, реализованные в модели и указанные в массиве; проводят тестирование на этой модели; результаты тестирования заносят в протокол при помощи устройства управления процессом тестирования; при помощи устройства управления тестированием, сравнивают результаты тестирования от исправной и неисправной моделей на каждой неисправности из заданного массива, если в процессе тестирования исправной модели неисправностей не обнаруживают, а при тестировании неисправной, обнаруживают весь массив внесенных неисправностей, то тестируемую аппаратуру или ПО считают прошедшими тестирование; если в процессе тестирования исправной модели обнаруживают неисправности, то определяют коэффициент первого этапа R1=1/о, где о - количество обнаруженных неисправностей; если в процессе тестирования неисправной модели обнаруживают не все неисправности, то определяют коэффициент второго этапа R2=ov/oo, где ov - количество внесенных в модель неисправностей, оо - количество обнаруженных неисправностей.
Метод мутационного тестирования основывается на намеренном внесении неисправностей (мутаций) в объект тестирования (электронную аппаратуру, разрабатываемую для конечного потребителя) или его модель с последующим тестированием их наличия (ikit.sfu-kras.ru/files/ikit/7_Mutacionnoe_testirovanie.pdf - сайт Сибирского федерального университета; Budd Т. A. Mutation Analysis of Program Test Data. PhD thesis. - New Haven CT, Yale University, 1980).
Для увеличения вероятности обнаружения неисправностей вводятся правила локализации неисправностей, заключающиеся в том, что необходимо имитировать:
1. Неисправность каждого элемента компонентной базы моделируемой аппаратуры и каждого элемента управляющего ПО не менее одного раза.
2. Неисправность в каждой из возможных ветвей алгоритма работы моделируемой системы не менее одного раза.
3. Неисправность каждой функции, которую выполняет тестируемая аппаратура не менее одного раза.
4. Неисправности всех стандартов и интерфейсов передачи данных, представленных в тестируемой аппаратуре не менее одного раза.
5. Неисправности всех типов данных представленных в ПО тестируемой аппаратуры не менее одного раза.
6. Неисправности всех диапазонов данных представленных в ПО тестируемой аппаратуры не менее одного раза.
Таким образом, реализация вышеперечисленных мутаций позволяет максимально полно проверить способность тестируемой электронной аппаратуры обнаруживать и правильно реагировать на неисправности различных типов, что впоследствии позволяет доработать ее и увеличить тем самым вероятность обнаружения и парирования данных неисправностей в дальнейшем.
Способ осуществляют следующим образом.
двоичная
десятичная
На языке описания аппаратуры создают проект исправной модели электронного устройства, имитирующей поведение каналов ввода-вывода объекта тестирования (электронного устройства или его частей), связывающих устройство имитации неисправностей с устройством управления процессом тестирования, содержащим устройства контроля. Записывают получившийся проект в ПЛИС устройства имитации неисправностей, встроенного в устройство управления процессом тестирования и содержащего интерфейсные каналы ввода-вывода. Реализация модели на ПЛИС позволяет исключить моделирование временных промежутков, так как современные ПЛИС поддерживают такой же уровень скоростей, как и аппаратура, создаваемая для конечного потребителя, имеющая чисто аппаратную реализацию. В то же время на ПЛИС можно реализовывать любые устройства, требуемые для тестирования, путем простого перепрограммирования, что занимает гораздо меньше времени, чем аппаратное макетирование, которое требует приобретения реальной компонентной базы электроники и сложного процесса ее монтажа на печатные платы. Далее проводят тестирование модели. Результаты тестирования автоматически заносятся в протокол устройством управления процессом тестирования. На языке описания аппаратуры создают проект модели электронной аппаратуры с неисправностями, причем предусматривают возможность их включения/выключения в процессе тестирования, при помощи управляющего ПО высокого уровня, что сильно сокращает количество перекомпиляций проектов ПЛИС. Например, необходимо имитировать 10 различных неисправностей, причем ввести их в процесс тестирования во всех возможных комбинациях. На каждую комбинацию потребуется переделать проект ПЛИС и провести его перекомпиляцию. Допустим, что наличие неисправности это 1, а отсутствие 0, это значит, что количество перекомпиляций (исключая исправную модель) составит 1023 (1111111111=1024). В предлагаемом способе в проекте ПЛИС модели предусматривают возможность включения/выключения каждой отдельной неисправности путем введения программируемой логической структуры «ЕСЛИ», которая управляется ПО высокого уровня формированием массива управляющих воздействии включения/выключения. Далее записывают получившийся проект в ПЛИС того же самого устройства имитации неисправностей, встроенного в устройство управления процессом тестирования. При помощи устройства управления процессом тестирования формируется массив управляющих воздействий автоматически поочередно включающих неисправности, реализованные в модели и указанные в массиве. Проводят тестирование на этой модели. Результаты тестирования автоматически заносятся в протокол устройством управления процессом тестирования. При помощи устройства управления тестированием, сравнивают результаты тестирования от исправной и неисправной моделей на каждой неисправности из заданного массива. Если в процессе тестирования исправной модели неисправностей не обнаружено, а также обнаружен весь массив внесенных неисправностей в неисправную модель, то аппаратура или ее управляющее ПО считаются прошедшими тестирование. Если в процессе тестирования исправной модели обнаруживают неисправности, то определяют коэффициент первого этапа R1=1/о, где о - количество обнаруженных неисправностей. Если в процессе тестирования неисправной модели обнаруживают не все неисправности, то определяют коэффициент второго этапа R2=ov/oo, где ov - количество включенных в модель неисправностей, оо - количество обнаруженных неисправностей.
Описанный способ осуществим также с реализацией исправной и неисправной моделей в двух отдельных одинаковых устройствах. В этом случае тестирование исправной и неисправной моделей можно проводить одновременно, что дополнительно сократит время тестирования.
Необходимо отметить, что, в рамках предлагаемого способа мутационного тестирования аппаратуры и ее управляющего ПО, модели на ПЛИС функционируют как «Черный ящик», лишь функционально имитируя поведение каналов ввода-вывода электронных устройств или их частей, при этом ставится задачей максимально адекватно воспроизвести входные и выходные сигналы по временным параметрам, для обеспечения взаимодействия с внешней аппаратурой, подключенной к данным каналам в процессе тестирования. Внутренняя реализация моделей на ПЛИС имеет лишь отдаленную схожесть с внутренней реализацией имитируемого прибора.
Устройство управления процессом тестирования реализовано в крейт-шасси, управляемом крейт-контроллером, к которому подключаются манипуляторы (мышь и клавиатура). Данные о процессе тестирования выводятся на монитор. Управление крейт-контроллером обеспечивает операционная система и пакет прикладных программ. Также при помощи пакета прикладных программ задается массив неисправностей для неисправной модели. Данные, полученные в процессе тестирования, протоколируются, и результаты сравниваются. Вычисляются коэффициенты покрытия неисправностей проведенного тестирования (R1 и R2). Устройство имитации неисправностей в модульном исполнении, содержащее ПЛИС и каналы ввода-вывода для соединения с устройством управления, встраивают в крейт-шасси устройства управления. При помощи вышеописанного пакета прикладных программ оператор задает, какие неисправности и в какой последовательности включать в тестирование, и запускает процесс. Для каждой комбинации неисправностей автоматически поочередно проводится тестирование. Результаты автоматически анализируются и заносятся в протокол, содержащийся в памяти крейт-контроллера устройства управления.
Выбор моделируемых неисправностей определяется следующими правилами:
1. Необходимо имитировать неисправности каждого электронного компонента моделируемой аппаратуры и каждого элемента управляющего ПО не менее одного раза. В случае, если известен состав компонентной базы и исходный код управляющего ПО, необходимо разработать такие модели неисправностей, при которых каналы ввода-вывода модели имитируемого прибора будут вести себя так, как будто в нем неисправен конкретный аппаратный или программный элемент. К элементам аппаратной части могут относиться, например, реле, конденсаторы, транзисторы, резисторы, интегральные схемы и т.п. К элементам ПО - переменные, константы, условия, циклы, функции и т.п.
2. Необходимо имитировать неисправности в каждой из возможных ветвей алгоритма работы моделируемой системы не менее одного раза. Производится изменение порядка, отмена или внесение избыточных операций алгоритма работы имитируемой аппаратно-программной системы.
3. Необходимо имитировать невыполнение каждой функции, которую выполняет моделируемая аппаратура не менее одного раза. К подобным функциям могут относиться, например, сбор данных с датчиков, преобразование цифрового сигнала в аналоговый, включение гидронасосов, определение местоположения объектов, коммутация электропитания, расчет числового значения и т.п.
4. Необходимо имитировать неисправности обмена по всем стандартам и интерфейсам передачи данных, представленных в моделируемой аппаратуре, не менее одного раза. К подобным относятся, например, внутри- или межприборные интерфейсы: Ethernet, MKO, DMA-T, RS-232, USB, SPI, LVDS и.т.п.
5. Необходимо имитировать неисправности всех типов данных представленных в ПО моделируемой аппаратуры не менее одного раза. Подмена ожидаемых элементом ПО входных или выходных данных данными другого типа. Например, если функция принимает входной параметр типа Word подать на него значение типа Byte.
6. Необходимо имитировать неисправности всех диапазонов данных представленных в ПО моделируемой аппаратуры не менее одного раза. Например, если входной параметр функции управляющего ПО имитируемой электронной аппаратуры должен находиться в диапазоне от 100 до 200, подать на него значение 90.
Необходимо отметить, что объем моделирования вышеописанных неисправностей (мутаций) зависит от конкретных задач тестирования, сложности тестируемой аппаратуры, условий производственного процесса и других факторов и может включать в себя как моделирование всего спектра неисправностей в соответствии с вышеописанными правилами, так и отдельных их видов.
Таким образом, реализация заявляемого способа позволяет достигнуть увеличения вероятности обнаружения неисправностей тестируемой аппаратурой ввиду проверки ее способности обнаруживать неисправности различных типов с последующей доработкой.