SlideShare ist ein Scribd-Unternehmen logo
1 von 19
1
Верификация многопоточных автоматных
программ с использованием
инструментального средства Spin
Лукин М. А., Шалыто А. А.
2013
2
Итория
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
Работа началась в 2005 г.
В 2007 был выигран грант
Инструментальные средства
3
Область применения
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
Реактивные программы (особенно
программы управления оборудованием)
Формальная спецификация (например,
UML)
Event-driven programming
Обработка текста
4
Верификация автоматов
Stateflow
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
Полную верификацию никто не сделал
Наиболее полная верификация –
сингапурский университет: Chen C., Sun J.,
Liu Y., Dong J., Zheng M. 2013.
 Нельзя формулировать темпоральные
свойства
5
Выбор верификатора
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
Spin – один из самых популярных
Опубликован ряд книг
Удобно использовать в учебном процессе
6
Пример: прототип управления
гусеничным шасси
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
Два автомата AChassis: left и right
управляют двигателями.
Автомат Amanager подает команды
автоматам left и right.
7
AManager
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
8
AChassis
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
9
Автоматная модель
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
Система параллельно работающих ИКА
Автоматы смешанного типа (Мура + Мили)
Взаимодействие: сообщения и общие
переменные
Выходные воздействия:
 Список функций
 Произвольный код
Переменные в автоматах
10
Зачем интерактивность?
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
Бесконечный цикл: события, по которым
нет перехода
Проверка поведения при неожиданных
событиях
11
Интерактивность
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
Источники событий
Параллельность
Переменные
Опции Spin
Удобный для человека код
12
Состояние автомата
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
typedef AChassisData
{
byte state;
byte curEvent;
byte ID;
byte functionCall;
byte nestedMachine;
bool started;
bool finished;
//Переменные автомата
}
13
Моделирование автомата
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
proctype leftProc () {
byte newEvt;
left.started= true;
left_ch ? newEvt;
leftParamChange();
do
:: left.finished == false ->
left_ch ? newEvt;
AChassis(left, newEvt);
:: else -> skip;
od;
}
14
Моделирование автомата
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
inline AManager(machine, evt) {
if
::(machine.state ==s0) ->
if
::((evt == e0)) ->
machine.state = s1;
…
fi;
…
fi;
}
15
Источник событий
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
Процесс, который запускается вместе с
процессом автомата
Отправляет события в канал автомата
 Случайные
 Только те, которые могут быть обработаны
16
Спецификация
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
 Спецификация при помощи assert и LTL
 Невозможность запуска одного экземпляра дважды
atomic {
assert (!left.started);
run leftProc();
} }
 Если пришла команда остановки, то левый двигатель
будет остановлен
G ( manager.stop → (F (left.EngineStop)) )
17
Внедрение
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
ООО «СТЦ»
Мобильные приложения
Учебный процесс
18
Ограничения метода
Лукин М. А., Шалыто А. А.
Верификация распределенных автоматных программ с использованием инструментального средства Spin
Ограничение на размер одного автомата
Ограничение на число volatile-переменных
Ограничение на общий размер модели:
проводятся исследования
19Лукин М. А., Вельдер С. Э., Яминов Б. Р.
Верификация программного обеспечения
Конец слайдов
Спасибо за внимание!

Weitere ähnliche Inhalte

Mehr von Iosif Itkin

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...Iosif Itkin
 
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 OraclesIosif Itkin
 
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 ProtocolIosif Itkin
 
Operational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market InfrastructuresOperational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market InfrastructuresIosif Itkin
 
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 SeasonIosif Itkin
 
Testing the Intelligence of your AI
Testing the Intelligence of your AITesting the Intelligence of your AI
Testing the Intelligence of your AIIosif Itkin
 
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 InfrastructuresIosif Itkin
 
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...Iosif Itkin
 
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 ShamraiIosif Itkin
 
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 OpenIosif Itkin
 
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...Iosif Itkin
 
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...Iosif Itkin
 
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)Iosif Itkin
 
Machine Learning and RoboCop Testing
Machine Learning and RoboCop TestingMachine Learning and RoboCop Testing
Machine Learning and RoboCop TestingIosif Itkin
 
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 possibileIosif Itkin
 
2018 - Exactpro Year in Review
2018 - Exactpro Year in Review2018 - Exactpro Year in Review
2018 - Exactpro Year in ReviewIosif Itkin
 
Exactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyExactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyIosif Itkin
 
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 ChallengesIosif Itkin
 
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)Iosif Itkin
 
Sibos 2017: Disruptive functional testing - the next frontier in post-trade s...
Sibos 2017: Disruptive functional testing - the next frontier in post-trade s...Sibos 2017: Disruptive functional testing - the next frontier in post-trade s...
Sibos 2017: Disruptive functional testing - the next frontier in post-trade s...Iosif Itkin
 

Mehr von Iosif Itkin (20)

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)
 
Sibos 2017: Disruptive functional testing - the next frontier in post-trade s...
Sibos 2017: Disruptive functional testing - the next frontier in post-trade s...Sibos 2017: Disruptive functional testing - the next frontier in post-trade s...
Sibos 2017: Disruptive functional testing - the next frontier in post-trade s...
 

TMPA-2013 Lukin: Spin

  • 1. 1 Верификация многопоточных автоматных программ с использованием инструментального средства Spin Лукин М. А., Шалыто А. А. 2013
  • 2. 2 Итория Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Работа началась в 2005 г. В 2007 был выигран грант Инструментальные средства
  • 3. 3 Область применения Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Реактивные программы (особенно программы управления оборудованием) Формальная спецификация (например, UML) Event-driven programming Обработка текста
  • 4. 4 Верификация автоматов Stateflow Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Полную верификацию никто не сделал Наиболее полная верификация – сингапурский университет: Chen C., Sun J., Liu Y., Dong J., Zheng M. 2013.  Нельзя формулировать темпоральные свойства
  • 5. 5 Выбор верификатора Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Spin – один из самых популярных Опубликован ряд книг Удобно использовать в учебном процессе
  • 6. 6 Пример: прототип управления гусеничным шасси Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Два автомата AChassis: left и right управляют двигателями. Автомат Amanager подает команды автоматам left и right.
  • 7. 7 AManager Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin
  • 8. 8 AChassis Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin
  • 9. 9 Автоматная модель Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Система параллельно работающих ИКА Автоматы смешанного типа (Мура + Мили) Взаимодействие: сообщения и общие переменные Выходные воздействия:  Список функций  Произвольный код Переменные в автоматах
  • 10. 10 Зачем интерактивность? Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Бесконечный цикл: события, по которым нет перехода Проверка поведения при неожиданных событиях
  • 11. 11 Интерактивность Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Источники событий Параллельность Переменные Опции Spin Удобный для человека код
  • 12. 12 Состояние автомата Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin typedef AChassisData { byte state; byte curEvent; byte ID; byte functionCall; byte nestedMachine; bool started; bool finished; //Переменные автомата }
  • 13. 13 Моделирование автомата Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin proctype leftProc () { byte newEvt; left.started= true; left_ch ? newEvt; leftParamChange(); do :: left.finished == false -> left_ch ? newEvt; AChassis(left, newEvt); :: else -> skip; od; }
  • 14. 14 Моделирование автомата Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin inline AManager(machine, evt) { if ::(machine.state ==s0) -> if ::((evt == e0)) -> machine.state = s1; … fi; … fi; }
  • 15. 15 Источник событий Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Процесс, который запускается вместе с процессом автомата Отправляет события в канал автомата  Случайные  Только те, которые могут быть обработаны
  • 16. 16 Спецификация Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin  Спецификация при помощи assert и LTL  Невозможность запуска одного экземпляра дважды atomic { assert (!left.started); run leftProc(); } }  Если пришла команда остановки, то левый двигатель будет остановлен G ( manager.stop → (F (left.EngineStop)) )
  • 17. 17 Внедрение Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin ООО «СТЦ» Мобильные приложения Учебный процесс
  • 18. 18 Ограничения метода Лукин М. А., Шалыто А. А. Верификация распределенных автоматных программ с использованием инструментального средства Spin Ограничение на размер одного автомата Ограничение на число volatile-переменных Ограничение на общий размер модели: проводятся исследования
  • 19. 19Лукин М. А., Вельдер С. Э., Яминов Б. Р. Верификация программного обеспечения Конец слайдов Спасибо за внимание!

Hinweis der Redaktion

  1. <number> <number>
  2. <number> <number>