SlideShare une entreprise Scribd logo
1  sur  15
Использование контрольных
точек для верификации
SystemC-программ
А.А. Шипин, В.А. Соколов, Д.Ю. Чалый
Ярославский государственный университет
им. П.Г. Демидова
Цель работы
• Разработка верификатора, который
позволил бы анализировать SystemC-модель
с недетерминированным поведением.
Тестирование в SystemC
• SystemC Verification Library (SCV).
o Генерация тестов, в том числе со
случайными условиями.
• SystemC Functional Coverage
Library.
o Возможность оценки функционального
покрытия.
Предварительные обработчики [1], [2]
PinaVM
Pinapa
System
CXML
KaSCPar
Quiny
Scoot
System
Perl
sc2v
elab-only
elab-easy
elab-easy-int
elab-easy-uint
elab-easy-array
elab-easy-sc_stop
elab-port-bool
elab-pointer
elab-instances
elab-clock
Signal
Event
Fifo
RAM
Метод C Model Checking (CMC)
• Метод разработан в Стэндфордском
университете в 2002 г.
• Исследует программы на C++ напрямую,
устраняя необходимость в отдельном
абстрактном описании поведения системы.
• Достигается обходом графа состояний
программы в ширину.
• “No, CMC is not available.”
(M. Musuvathi, личная переписка)
Схема верификации SCMC
Возможности DMTCP
• Только Linux (POSIX API).
• Сохранение программ на C++, Java, Python,
Perl, …
• Поддержка нескольких потоков.
• Поддержка параллельных программ.
• Поддержка дескрипторов файлов, pipes, sockets,
fifo, timers, shared memory, …
Проблема работы с внешними сервисами.
Например, с СУБД или X Window.
Модификация SystemC-модели
• Точки ветвления:
switch ( SendCheckpoint( N, data ) ){
case 0: . . .
case 1: . . .
. . .
case N: . . .
}
• Точки условий выполнения свойств:
i f ( condition )
ScmcHelper : : SendAssertMessage ( text );
• Точки завершения модели:
ScmcHelper : : SendExitMessage ();
Эксперимент с SCMC
Система: пример описывает передачу данных
через канал, реализующий интерфейс очереди.
В модель добавлена возможность потери любого
набора символов при передаче.
Свойство: получит ли получатель последовательно
два одинаковых символа подряд?
Обоснование выбора примера
PinaVM – пример не может быть
проанализирован, но требуется незначительная
доработка проекта.
Остальные – пример не может быть
проанализирован из-за ограничений подхода.
Результаты
Строка Найдено Кол-во
состояний
Затрачено
aaa 3 14 7 cсек.
cac 1 16 7 сек.
abc 0 16 6 сек.
aaaaa 5 26 12 сек.
cabac 5 60 27 сек.
abcde 0 64 28 сек.
aaaaaaa 7 38 19 сек.
cababac 29 164 1 мин. 24 сек.
abcdefg 0 256 2 мин. 1 сек.
aaaaaaaaa 9 50 28 сек.
cabababac 69 332 3 мин. 13 сек.
abcdefghi 0 1024 8 мин.
Масштабируемость подхода
• Интерфейс для аналогов DMTCP.
• Сохранение состояния systemc-
модели без внешних инструментов
(sc_context).
• Инкрементное сжатие точек (HBICT).
• Хранение контрольных точек в
оперативной памяти.
• Распараллеливание SCMC.
Возможные пути
развития SCMC
• Комбинация SCV и SCMC.
• Проверка темпоральных свойств.
• Внесение недетерминизма SystemC
на уровне выбора процессов.
Заключение
• Создан верификатор SCMC для моделей с
недетерминированным поведением,
требующий лишь небольшой модификации
модели.
• SCMC может работать с любыми программами
на C++, которые могут быть сохранены DMTCP.
• Существует проблема взрыва состояний,
частично решаемая исключением одинаковых
веток графа состояний.
Список литературы
• (1) Marquet K. - A theoretical and experimental
review of SystemC front-ends.
• (2) Marquet K. - PinaVM: a SystemC front-end
based on an executable intermediate
representation.
• (3) Musuvathi M. - CMC: A Pragmatic Approach to
Model Checking Real Code.

Contenu connexe

Tendances

AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
JSC “Arcadia Inc”
 
20100314 virtualization igotti_lecture06
20100314 virtualization igotti_lecture0620100314 virtualization igotti_lecture06
20100314 virtualization igotti_lecture06
Computer Science Club
 
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Maksim Grinevich
 

Tendances (20)

Работа с платами ИНСИС из MATLAB
Работа с платами ИНСИС из MATLABРабота с платами ИНСИС из MATLAB
Работа с платами ИНСИС из MATLAB
 
Проектирование радиолокационных систем
Проектирование радиолокационных систем Проектирование радиолокационных систем
Проектирование радиолокационных систем
 
TMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2015: Multi-Module Application Tracing in z/OS EnvironmentTMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2015: Multi-Module Application Tracing in z/OS Environment
 
Развертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИСРазвертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИС
 
TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...
TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...
TMPA-2015: Automated Testing of Multi-thread Data Structures Solutions Lineri...
 
Экспорт алгоритмов и создание независимых приложений
Экспорт алгоритмов и создание независимых приложенийЭкспорт алгоритмов и создание независимых приложений
Экспорт алгоритмов и создание независимых приложений
 
Работа с Big Data
Работа с Big Data Работа с Big Data
Работа с Big Data
 
Разработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКППРазработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКПП
 
Анализ данных в MATLAB 
Анализ данных в MATLAB Анализ данных в MATLAB 
Анализ данных в MATLAB 
 
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
 
Проектирование систем связи
Проектирование систем связиПроектирование систем связи
Проектирование систем связи
 
Aop
AopAop
Aop
 
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
 
20100314 virtualization igotti_lecture06
20100314 virtualization igotti_lecture0620100314 virtualization igotti_lecture06
20100314 virtualization igotti_lecture06
 
TMPA-2013 Itsykson: Java Program Analysis
TMPA-2013 Itsykson: Java Program AnalysisTMPA-2013 Itsykson: Java Program Analysis
TMPA-2013 Itsykson: Java Program Analysis
 
Rx
RxRx
Rx
 
TMPA-2015: The dynamic Analysis of Executable Code in ELF Format Based on Sta...
TMPA-2015: The dynamic Analysis of Executable Code in ELF Format Based on Sta...TMPA-2015: The dynamic Analysis of Executable Code in ELF Format Based on Sta...
TMPA-2015: The dynamic Analysis of Executable Code in ELF Format Based on Sta...
 
Использование MATLAB совместно с приборами Keysight Technologies
Использование MATLAB совместно с приборами Keysight TechnologiesИспользование MATLAB совместно с приборами Keysight Technologies
Использование MATLAB совместно с приборами Keysight Technologies
 
Анализируем результаты тестирования производительности с Graphite и Grafana
Анализируем результаты тестирования производительности с Graphite и GrafanaАнализируем результаты тестирования производительности с Graphite и Grafana
Анализируем результаты тестирования производительности с Graphite и Grafana
 
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
 

En vedette

TMPA-2014: Exactpro Pep Talk
TMPA-2014: Exactpro Pep TalkTMPA-2014: Exactpro Pep Talk
TMPA-2014: Exactpro Pep Talk
Iosif Itkin
 

En vedette (20)

TMPA-2013 Tsytelov Trifanov Devexperts
TMPA-2013 Tsytelov Trifanov DevexpertsTMPA-2013 Tsytelov Trifanov Devexperts
TMPA-2013 Tsytelov Trifanov Devexperts
 
TMPA-2013 Lukin: Spin
TMPA-2013 Lukin: SpinTMPA-2013 Lukin: Spin
TMPA-2013 Lukin: Spin
 
TMPA-2014: Exactpro Pep Talk
TMPA-2014: Exactpro Pep TalkTMPA-2014: Exactpro Pep Talk
TMPA-2014: Exactpro Pep Talk
 
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL ModelsTMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
TMPA-2013 Chupilko: Verification of Correct Behaviour of HDL Models
 
Service Robotics in Science and Education
Service Robotics in Science and EducationService Robotics in Science and Education
Service Robotics in Science and Education
 
Model Driven Developing & Model Based Checking: Applying Together
Model Driven Developing & Model Based Checking: Applying TogetherModel Driven Developing & Model Based Checking: Applying Together
Model Driven Developing & Model Based Checking: Applying Together
 
On Modelling of Coordinated Behavior of PLC Sensors
On Modelling of Coordinated Behavior of PLC SensorsOn Modelling of Coordinated Behavior of PLC Sensors
On Modelling of Coordinated Behavior of PLC Sensors
 
Parametrized Model Checking of Fault Tolerant Distributed Algorithms by Abstr...
Parametrized Model Checking of Fault Tolerant Distributed Algorithms by Abstr...Parametrized Model Checking of Fault Tolerant Distributed Algorithms by Abstr...
Parametrized Model Checking of Fault Tolerant Distributed Algorithms by Abstr...
 
Alias Calculus for a Simple Imperative Language with Decidable Pointer Arithm...
Alias Calculus for a Simple Imperative Language with Decidable Pointer Arithm...Alias Calculus for a Simple Imperative Language with Decidable Pointer Arithm...
Alias Calculus for a Simple Imperative Language with Decidable Pointer Arithm...
 
A runtime verification system for Software Defined Networks
A runtime verification system for Software Defined NetworksA runtime verification system for Software Defined Networks
A runtime verification system for Software Defined Networks
 
Testing of a Risk Control System Implementation for High-Load Exchange and Br...
Testing of a Risk Control System Implementation for High-Load Exchange and Br...Testing of a Risk Control System Implementation for High-Load Exchange and Br...
Testing of a Risk Control System Implementation for High-Load Exchange and Br...
 
Approaches to the Fragmentation of a Paravirtualization System
Approaches to the Fragmentation of a Paravirtualization SystemApproaches to the Fragmentation of a Paravirtualization System
Approaches to the Fragmentation of a Paravirtualization System
 
Optimization of Automata-Based Programs by means of Requirements Transformati...
Optimization of Automata-Based Programs by means of Requirements Transformati...Optimization of Automata-Based Programs by means of Requirements Transformati...
Optimization of Automata-Based Programs by means of Requirements Transformati...
 
A Methodology of Reproducible Research of Simulation Test Models and Communic...
A Methodology of Reproducible Research of Simulation Test Models and Communic...A Methodology of Reproducible Research of Simulation Test Models and Communic...
A Methodology of Reproducible Research of Simulation Test Models and Communic...
 
A System of Deductive Verification of Predicate Programs
A System of Deductive Verification of Predicate ProgramsA System of Deductive Verification of Predicate Programs
A System of Deductive Verification of Predicate Programs
 
Verification of 800 Automata-Based Programs Built by means of Genetic Program...
Verification of 800 Automata-Based Programs Built by means of Genetic Program...Verification of 800 Automata-Based Programs Built by means of Genetic Program...
Verification of 800 Automata-Based Programs Built by means of Genetic Program...
 
Modelling of Exchange Trading Participants Behavior Test Scenarios
Modelling of Exchange Trading Participants Behavior Test ScenariosModelling of Exchange Trading Participants Behavior Test Scenarios
Modelling of Exchange Trading Participants Behavior Test Scenarios
 
Parametrized Model Checking of Fault Tolerant Distributed Algorithms by Abstr...
Parametrized Model Checking of Fault Tolerant Distributed Algorithms by Abstr...Parametrized Model Checking of Fault Tolerant Distributed Algorithms by Abstr...
Parametrized Model Checking of Fault Tolerant Distributed Algorithms by Abstr...
 
The Analysis of Test Scenario Coverage for a UCM-Model
The Analysis of Test Scenario Coverage for a UCM-ModelThe Analysis of Test Scenario Coverage for a UCM-Model
The Analysis of Test Scenario Coverage for a UCM-Model
 
Lightweight Static Analysis for Data Race Detection in Operating System Kernels
Lightweight Static Analysis for Data Race Detection in Operating System KernelsLightweight Static Analysis for Data Race Detection in Operating System Kernels
Lightweight Static Analysis for Data Race Detection in Operating System Kernels
 

Similaire à TMPA-2013: Shipin System-C Control Points

Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
Nikita Makarov
 
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
Mobile Developer Day
 
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
Mobile Developer Day
 
Основы и применение статического анализа кода при разработке лекция 1
Основы и применение статического анализа кода при разработке лекция 1Основы и применение статического анализа кода при разработке лекция 1
Основы и применение статического анализа кода при разработке лекция 1
m2rus
 
C++ весна 2014 лекция 2
C++ весна 2014 лекция 2C++ весна 2014 лекция 2
C++ весна 2014 лекция 2
Technopark
 
Что могут статические анализаторы, чего не могут программисты и тестировщики
Что могут статические анализаторы, чего не могут программисты и тестировщикиЧто могут статические анализаторы, чего не могут программисты и тестировщики
Что могут статические анализаторы, чего не могут программисты и тестировщики
Andrey Karpov
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев киров
qasib
 
Верификация Java байткода: когда, как, а может отключить?
Верификация Java байткода: когда, как, а может отключить?Верификация Java байткода: когда, как, а может отключить?
Верификация Java байткода: когда, как, а может отключить?
Nikita Lipsky
 

Similaire à TMPA-2013: Shipin System-C Control Points (20)

Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
 
Современный статический анализ кода: что умеет он, чего не умели линтеры
Современный статический анализ кода: что умеет он, чего не умели линтерыСовременный статический анализ кода: что умеет он, чего не умели линтеры
Современный статический анализ кода: что умеет он, чего не умели линтеры
 
Как команда PVS-Studio может улучшить код операционной системы Tizen
Как команда PVS-Studio может улучшить код операционной системы TizenКак команда PVS-Studio может улучшить код операционной системы Tizen
Как команда PVS-Studio может улучшить код операционной системы Tizen
 
Java 9: what is there beyond modularization
Java 9: what is there beyond modularizationJava 9: what is there beyond modularization
Java 9: what is there beyond modularization
 
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
 
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
 
Особенности тестирования сloud-приложений
Особенности тестирования сloud-приложенийОсобенности тестирования сloud-приложений
Особенности тестирования сloud-приложений
 
Основы и применение статического анализа кода при разработке лекция 1
Основы и применение статического анализа кода при разработке лекция 1Основы и применение статического анализа кода при разработке лекция 1
Основы и применение статического анализа кода при разработке лекция 1
 
Статический анализ и написание качественного кода на C/C++ для встраиваемых с...
Статический анализ и написание качественного кода на C/C++ для встраиваемых с...Статический анализ и написание качественного кода на C/C++ для встраиваемых с...
Статический анализ и написание качественного кода на C/C++ для встраиваемых с...
 
JVM: краткий курс общей анатомии
JVM: краткий курс общей анатомииJVM: краткий курс общей анатомии
JVM: краткий курс общей анатомии
 
Автоматизированное тестирование - от сложного к простому, или Запускаем автот...
Автоматизированное тестирование - от сложного к простому, или Запускаем автот...Автоматизированное тестирование - от сложного к простому, или Запускаем автот...
Автоматизированное тестирование - от сложного к простому, или Запускаем автот...
 
Java Ahead-Of-Time compilation
Java Ahead-Of-Time compilationJava Ahead-Of-Time compilation
Java Ahead-Of-Time compilation
 
Тестируй это / Виктор Русакович (GP Solutions)
Тестируй это / Виктор Русакович (GP Solutions)Тестируй это / Виктор Русакович (GP Solutions)
Тестируй это / Виктор Русакович (GP Solutions)
 
Detecting logged in user's abnormal activity
Detecting logged in user's abnormal activityDetecting logged in user's abnormal activity
Detecting logged in user's abnormal activity
 
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыТехнологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
 
C++ весна 2014 лекция 2
C++ весна 2014 лекция 2C++ весна 2014 лекция 2
C++ весна 2014 лекция 2
 
Что могут статические анализаторы, чего не могут программисты и тестировщики
Что могут статические анализаторы, чего не могут программисты и тестировщикиЧто могут статические анализаторы, чего не могут программисты и тестировщики
Что могут статические анализаторы, чего не могут программисты и тестировщики
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев киров
 
Принципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-StudioПринципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-Studio
 
Верификация Java байткода: когда, как, а может отключить?
Верификация Java байткода: когда, как, а может отключить?Верификация Java байткода: когда, как, а может отключить?
Верификация Java байткода: когда, как, а может отключить?
 

Plus de Iosif Itkin

Plus de Iosif Itkin (20)

Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4
 
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
 
Exactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges Test OraclesExactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges Test Oracles
 
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
Exactpro FinTech Webinar - Global Exchanges FIX ProtocolExactpro FinTech Webinar - Global Exchanges FIX Protocol
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
 
Operational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market InfrastructuresOperational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market Infrastructures
 
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
 
Testing the Intelligence of your AI
Testing the Intelligence of your AITesting the Intelligence of your AI
Testing the Intelligence of your AI
 
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market InfrastructuresEXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
 
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
 
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan ShamraiEXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
 
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference OpenEXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
 
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
 
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
 
QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)
 
Machine Learning and RoboCop Testing
Machine Learning and RoboCop TestingMachine Learning and RoboCop Testing
Machine Learning and RoboCop Testing
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibile
 
2018 - Exactpro Year in Review
2018 - Exactpro Year in Review2018 - Exactpro Year in Review
2018 - Exactpro Year in Review
 
Exactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyExactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and Strategy
 
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing ChallengesFIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
 
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
 

TMPA-2013: Shipin System-C Control Points

  • 1. Использование контрольных точек для верификации SystemC-программ А.А. Шипин, В.А. Соколов, Д.Ю. Чалый Ярославский государственный университет им. П.Г. Демидова
  • 2. Цель работы • Разработка верификатора, который позволил бы анализировать SystemC-модель с недетерминированным поведением.
  • 3. Тестирование в SystemC • SystemC Verification Library (SCV). o Генерация тестов, в том числе со случайными условиями. • SystemC Functional Coverage Library. o Возможность оценки функционального покрытия.
  • 4. Предварительные обработчики [1], [2] PinaVM Pinapa System CXML KaSCPar Quiny Scoot System Perl sc2v elab-only elab-easy elab-easy-int elab-easy-uint elab-easy-array elab-easy-sc_stop elab-port-bool elab-pointer elab-instances elab-clock Signal Event Fifo RAM
  • 5. Метод C Model Checking (CMC) • Метод разработан в Стэндфордском университете в 2002 г. • Исследует программы на C++ напрямую, устраняя необходимость в отдельном абстрактном описании поведения системы. • Достигается обходом графа состояний программы в ширину. • “No, CMC is not available.” (M. Musuvathi, личная переписка)
  • 7. Возможности DMTCP • Только Linux (POSIX API). • Сохранение программ на C++, Java, Python, Perl, … • Поддержка нескольких потоков. • Поддержка параллельных программ. • Поддержка дескрипторов файлов, pipes, sockets, fifo, timers, shared memory, … Проблема работы с внешними сервисами. Например, с СУБД или X Window.
  • 8. Модификация SystemC-модели • Точки ветвления: switch ( SendCheckpoint( N, data ) ){ case 0: . . . case 1: . . . . . . case N: . . . } • Точки условий выполнения свойств: i f ( condition ) ScmcHelper : : SendAssertMessage ( text ); • Точки завершения модели: ScmcHelper : : SendExitMessage ();
  • 9. Эксперимент с SCMC Система: пример описывает передачу данных через канал, реализующий интерфейс очереди. В модель добавлена возможность потери любого набора символов при передаче. Свойство: получит ли получатель последовательно два одинаковых символа подряд?
  • 10. Обоснование выбора примера PinaVM – пример не может быть проанализирован, но требуется незначительная доработка проекта. Остальные – пример не может быть проанализирован из-за ограничений подхода.
  • 11. Результаты Строка Найдено Кол-во состояний Затрачено aaa 3 14 7 cсек. cac 1 16 7 сек. abc 0 16 6 сек. aaaaa 5 26 12 сек. cabac 5 60 27 сек. abcde 0 64 28 сек. aaaaaaa 7 38 19 сек. cababac 29 164 1 мин. 24 сек. abcdefg 0 256 2 мин. 1 сек. aaaaaaaaa 9 50 28 сек. cabababac 69 332 3 мин. 13 сек. abcdefghi 0 1024 8 мин.
  • 12. Масштабируемость подхода • Интерфейс для аналогов DMTCP. • Сохранение состояния systemc- модели без внешних инструментов (sc_context). • Инкрементное сжатие точек (HBICT). • Хранение контрольных точек в оперативной памяти. • Распараллеливание SCMC.
  • 13. Возможные пути развития SCMC • Комбинация SCV и SCMC. • Проверка темпоральных свойств. • Внесение недетерминизма SystemC на уровне выбора процессов.
  • 14. Заключение • Создан верификатор SCMC для моделей с недетерминированным поведением, требующий лишь небольшой модификации модели. • SCMC может работать с любыми программами на C++, которые могут быть сохранены DMTCP. • Существует проблема взрыва состояний, частично решаемая исключением одинаковых веток графа состояний.
  • 15. Список литературы • (1) Marquet K. - A theoretical and experimental review of SystemC front-ends. • (2) Marquet K. - PinaVM: a SystemC front-end based on an executable intermediate representation. • (3) Musuvathi M. - CMC: A Pragmatic Approach to Model Checking Real Code.