TestOS: окружение для тестирования ПО
TestOS — окружение для модульного тестирования программного обеспечения на целевой аппаратуре. Позволяет проводить отработку программного обеспечения для ответственного применения в целях выполнения сертификационных и иных мероприятий на архитектурах AArch64, ARM, PowerPC, MIPS, RISC-V и x86.
Особенности и преимущества
TestOS позволяет заменить такие средства верификации критических систем, как LDRA, являясь более гибким средством с активной поддержкой отечественных изделий.
С помощью TestOS обеспечивается выполнение тестов на целевой аппаратуре и производится генерация отчётов с трассой по каждому тесту, с информацией по составу и статусу прохождения тестового плана и c покрытием кода тестируемой системы как для одного теста, так и для всего тестового плана. Для разработки модульных тестов для функций на языке С (поддерживается С18 с GNU-расширениями GCC и Clang) предоставляется среда генерации заглушек и обёрток с удобным механизмом написания тестовых сценариев. Построение отчётов осуществляется в формате HTML и TXT. Доступна отладка кода на целевом вычислителе как с использованием, так и без использования JTAG.
С использованием плагинов поддерживаются:
- сбор покрытия функций, операторов и ветвей с помощью GCOV и LLVM Coverage;
- сбор покрытия по MC/DC с помощью COVERest;
- проведение статического анализа с помощью статических анализаторов:
- Clang Tidy;
- Clang Static Analyzer;
- Svace.
- динамическое инструментирование кода с помощью санитайзеров LLVM:
- AddressSanitizer (выявление ошибок работы с памятью);
- MemorySanitizer (выявление ошибок доступа к неинициализированной памяти);
- UndefinedBehaviorSanitizer (выявление ошибок арифметики, операций с плавающей точкой и иных проблем, вызванных неопределённым поведением).
Системные требования
GNU/Linux дистрибутив на архитектуре x86_64 (например, Ubuntu 22.04), а также Apple macOS 10.12 или новее в качестве инструментальной машины.
Целевой вычислитель с ОЗУ не менее 2 МБ на архитектурах:
- AArch64 (Cortex-A53, Cortex-A55);
- ARM (Cortex-A7, Cortex-A9, Cortex-M4), в частности, процессоры i.MX6 или STM32F429;
- PowerPC (e500mc, e500v2, 476FP), в частности, процессоры p1010 или p3041;
- MIPS (MIPS Release 1, MIPS Release 2 / MIPS32, КОМДИВ), в частности, процессор 1892ВМ15АФ;
- RISC-V (RV32 IMA);
- x86 (Intel Prescott и новее).
При необходимости окружение адаптируется к оборудованию заказчика.
Опыт внедрения
TestOS разрабатывается с 2019 года. Успешно применяется для модульного тестирования программного обеспечения для аэрокосмической отрасли.
Разработчик/участник
Перейти к списку всех технологий