Что проверяется при software-in-loop тестировании, если код не компилируется под конкретный процессор
Что проверяют
Различаете ли вы ступени испытаний встроенного софта и понимаете ли, что отсутствие сборки под целевой процессор здесь не проблема, а свойство этапа. Заодно смотрят, знаете ли вы, какие дефекты на этом уровне поймать невозможно.
Как отвечать
Разложите ступени: модель против модели, затем код, собранный под обычный компьютер и работающий с моделью объекта управления, затем тот же код, собранный целевым компилятором и запущенный на отладочной плате, и в конце настоящий блок с реальными сигналами на стенде реального времени. Испытания в контуре с моделью это вторая ступень, и код там собирается под хост намеренно.
Значит проверяется логика, а не железо:
- совпадение поведения кода с исходной моделью на одних сценариях, с допуском на численную разницу;
- алгоритм регулирования: выход на уставку, ограничения, переключение режимов, защита от накопления в интеграторе;
- конечные автоматы, обработка отказов датчиков, переход в безопасное состояние;
- реакция на граничные и неправдоподобные входы, воспроизведение записей с объекта;
- покрытие требований и структурное покрытие кода, которого требуют стандарты функциональной безопасности;
- регресс: тот же сценарий после правки даёт тот же результат.
Отдельно назовите, что переносится на следующие ступени: разрядность и переполнение целочисленной арифметики, порядок байтов, особенности целевого компилятора, время исполнения и худшая задержка, расход памяти и стека, драйверы периферии.
Где спотыкаются
Путают эту ступень со следующей и начинают рассказывать про симулятор процессора. Симуляция набора инструкций это уже испытания с целевым процессором в контуре, там проверяют то, что на хосте проверить нельзя.
Второе: обещают, что зелёный прогон на хосте гарантирует работу на устройстве. Не гарантирует: другая ширина целого типа, иная точность плавающей арифметики, оптимизации компилятора и неопределённое поведение дают расхождение, видимое только на целевой платформе.
Третье: забывают про время. На хосте модель считается в своём темпе, и логика, которая на устройстве не успеет в такт, здесь проходит. Вопрос про сроки и разброс задержек закрывают только испытания в реальном времени.