Верификация С/С++ кода с инструментами LDRA

Записаться на обучение

Опсание курса

Курс направлен на предоставление участникам полного понимания передовых методологий тестирования, а также требований и ограничений, связанных с разработкой приложений для соответствия отраслевым стандартам, таким как DO-178C и DO-278 в авионике, ISO 26262 в автомобилестроении, IEC 61508 в области промышленной безопасности и IEC 62304 в медицинских устройствах.

Для участия в обучении приглашаются следующие специалисты:

Руководители инженерных групп
Инженеры по качеству
Разработчики программного обеспечения
Тестировщики программного обеспечения

Темы обучения:

Рассмотрение кода (Code Review). Вы узнаете, как проверять исходный код на соответствие стандартам кодирования, таким, как MISRA C/C++ и вашим собственным правилам.
Рассмотрение качества (Quality Review). Вы узнаете, как анализировать метрики исходного кода на соответствие критериям сложности, тестируемости, сопровождаемости и читаемости исходного кода.
Рассмотрение проекта (Design Review). Вы узнаете, как анализировать разрабатываемый проект с применением анализа потоков данных и потоков управления в исходном коде.
Верификация тестов (Test Verification). Вы узнаете, как осуществлять динамический анализ и измерять покрытие кода тестами в соответствии с требованиями стандартов (например, DO-178C, ISO 26262, IEC 61508 и IEC 62304).
Модульное тестирование (Unit Testing). Вы узнаете, как создавать и запускать модульные тесты, осуществлять регрессионное тестирование, автоматизировать создание тестовых заглушек, управлять изменениями кода, запускать тесты в режиме «белого ящика», а также поддерживать и документировать ваши модульные тесты.
Развертывание инструментов LDRA на хост-компьютере и тестирование на встраиваемых платформах.

Продолжительность курса

3 дня

Программа обучения

Часть 1. Введение

Часть 2. Настройка анализа
Область анализа
Управление конфигурацией
Автоматизация
Ускорение анализа

Часть 3. Рассмотрение кода
Отраслевые стандарты
Стандарты кодирования
Рассмотрение кода
Автоматизация

Часть 4. Рассмотрение качества
Стандарты
Рассмотрение качества
Метрики сложности кода
Метрика Linear Code Sequence and Jump (LCSAJ)
Автоматизация

Часть 5. Рассмотрение проекта
Стандарты
Рассмотрение проекта
Автоматизация

Часть 6. Структурное покрытие
Стандарты
Структурное покрытие
Покрытие точек входа
Покрытие операторов
Покрытие условий
Покрытие решений
Модифицированное покрытие условий/решений
Анализ покрытия связей по данным и управлению
Покрытие объектного кода
Покрытие путей
Измерение структурного покрытия

Часть 7. Динамический анализ
Стандарты
Динамический анализ
Покрытие от разных наборов данных
Пакеты поддержки целевых платформ
Техники инструментирования кода
Динамический анализ потоков данных
Анализ семантики кода в динамическом тестировании
Автоматизация

Часть 8. Модульное и интеграционное тестирование
Стандарты
Модульное и интеграционное тестирование
Как осуществлять модульное тестирование
Тестирование на основании требований

Часть 9. Использование LDRA TBrun
Тестирование в режиме «черный ящик»
Тестирование в режиме «белый ящик»
Заглушки
Тестирование алгоритмов
Структуры, массивы, указатели и связанные списки
Бесконечные циклы
Анализ побочных эффектов
Автоматическая генерация тестов
Шаблоны тестов
Отладка в TBrun
Автоматизация
Профили тестирования

Часть 10. Тестирование на встраиваемых платформах
Статический анализ
Динамический анализ
Модульное тестирование
Стратегии тестирования

Часть 11. C++ и Java
Представление классов
Объектно-ориентированные метрики
Объекты
Операторы C++
Абстрактные классы
Шаблоны
Исключения
Реализация в заголовочных файлах
Многоязычные проекты
Библиотеки Qt/STL/Boost
Пример проекта C++
Пример проекта Java