SlideShare a Scribd company logo
1 of 19
Devexperts Research 
[основные направления] 
TMPA-2014 
Дмитрий Цителов 
Виталий Трифанов 
Роман Елизаров
Devexperts 
• Разработка ПО для финансовых компаний 
– Брокеры, дилеры, биржи 
• Глубоко специализированная компания 
– R&D полного цикла 
– QA 
– M&S 24/7 
• dxFeed – сервис доставки рыночных данных
Много данных, всё обновляется
Поток на входе непрерывно растет
Особенности
Особенности 
Для эффективности!
Бесплатный обед закончился!
Хотим 
● Писать многопоточный 
высокопроизводительный код 
● Уметь доказывать его корректность на 
модели 
● Уметь верифицировать сам код (на 
соответствие модели)
Пример: Data Race 
public class Account { 
private int amount = 0; 
} 
public class TestRace { 
public static void main (String[] args) { 
final Account a = new Account(); 
Thread t1 = depositAccountInNewThread(a, 5); 
Thread t2 = depositAccountInNewThread(a, 6); 
t1.join(); 
t2.join(); 
System.out.println(a.amount); //5? 6? 11? 
} 
}
Expected execution
Racy execution
Как искать гонки? 
Динамически Быстро Точно 
Ограничить область поиска 
Важно не потерять информацию!
Синхронизационные контракты 
• Факты синхронизации 
– lock, semaphore, ConcurrentHashMap, etc. 
• Обращения к разделяемым данным 
– коллекции, календарь, etc. 
Язык описания высокоуровневых 
свойств
Data race detector 
• DSL для описания контрактов 
– xml-based 
– только основные контракты 
• Динамический поиск гонок 
– инструментирование байт-кода 
– алгоритм на основе логических часов 
– находит и применяет контракты
Реальная задача: хэш-таблицы 
• Работа Gao at al 
– Хэш-таблица без ожидания 
– Только машинное доказательство 
– Не проработан до конца механизм изменения 
размера без ожидания 
• Реализация Cliff Click (high-scale-lib) 
– Не очевидно что этот тот же самый алгоритм 
– Нет формального доказательства
Открытые проблемы 
• Построить человеко-читаемое 
доказательство алгоритма Gao et al 
– Включая изменение размера без ожидания 
• Разбить доказательство на модули 
– Хотим заменять примитивы в значениях 
таблицы на сложные структуры 
• Атомарно читать/писать сложные 
структуры в данном месте памяти 
– А не через подмену указателей
Проверка линеаризуемости 
• Отсутствие гонок не гарантирует 
корректность многопоточной программы 
• Обычно, говоря «корректность», имеют в 
виду линеаризуемость - эквивалентность 
последовательному исполнению 
• Нужно уметь проверять линеаризуемость 
полученного кода как юнит-тест
Намеченный формат работы 
• Отдельное подразделение в компании 
– очень важно, чтобы не дергали текучкой 
– хотим построить полноценный процесс 
• Взаимодействие с ВУЗами 
– своих сил не хватает 
– студентам нужны квалификационные работы 
– ВУЗу нужны публикации
Контакты 
• Дмитрий Цителов (cit@devexperts.com) 
• Виталий Трифанов (trifanov@devexperts.com 
) 
• Роман Елизаров (elizarov@devexperts.com)

More Related Content

Viewers also liked

Охват всех этапов жизни: от фактических данных к выработке политики / Life-co...
Охват всех этапов жизни: от фактических данных к выработке политики / Life-co...Охват всех этапов жизни: от фактических данных к выработке политики / Life-co...
Охват всех этапов жизни: от фактических данных к выработке политики / Life-co...WHO Regional Office for Europe
 
Конкурентный анализ
Конкурентный анализКонкурентный анализ
Конкурентный анализNetpeak
 
VAT/ GST in a Global Digital Economy - Chapter 4A_Intermediated Delivery and ...
VAT/ GST in a Global Digital Economy - Chapter 4A_Intermediated Delivery and ...VAT/ GST in a Global Digital Economy - Chapter 4A_Intermediated Delivery and ...
VAT/ GST in a Global Digital Economy - Chapter 4A_Intermediated Delivery and ...Sophie Claessens
 
Корпоративный портал на Confluence в компании Ланта-Тур
Корпоративный портал на Confluence в компании Ланта-ТурКорпоративный портал на Confluence в компании Ланта-Тур
Корпоративный портал на Confluence в компании Ланта-ТурTeamlead
 
DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...
DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...
DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...it-people
 
Effective Online Communication for Higher Education
Effective Online Communication for Higher EducationEffective Online Communication for Higher Education
Effective Online Communication for Higher EducationSandra Annette Rogers
 
Как получить рабочие ссылки - стратегии и примеры
Как получить рабочие ссылки - стратегии и примерыКак получить рабочие ссылки - стратегии и примеры
Как получить рабочие ссылки - стратегии и примерыАртём Гидин
 
Входящий маркетинг, как новый этап эволюции SEO
Входящий маркетинг,  как новый этап  эволюции SEOВходящий маркетинг,  как новый этап  эволюции SEO
Входящий маркетинг, как новый этап эволюции SEOАртём Гидин
 
инструментальные средства управления проектами
инструментальные средства управления проектамиинструментальные средства управления проектами
инструментальные средства управления проектамиAndrew Fadeev
 
Рекомендательное письмо / letter of recomendation
Рекомендательное письмо / letter of recomendationРекомендательное письмо / letter of recomendation
Рекомендательное письмо / letter of recomendationИгорь Немков
 
Оценка PR-инструметов FMCG-сектора (B2C)
Оценка PR-инструметов FMCG-сектора (B2C)Оценка PR-инструметов FMCG-сектора (B2C)
Оценка PR-инструметов FMCG-сектора (B2C)PR News
 
Steering Committee Presentation
Steering Committee PresentationSteering Committee Presentation
Steering Committee Presentationzachflanders
 

Viewers also liked (13)

Охват всех этапов жизни: от фактических данных к выработке политики / Life-co...
Охват всех этапов жизни: от фактических данных к выработке политики / Life-co...Охват всех этапов жизни: от фактических данных к выработке политики / Life-co...
Охват всех этапов жизни: от фактических данных к выработке политики / Life-co...
 
Конкурентный анализ
Конкурентный анализКонкурентный анализ
Конкурентный анализ
 
VAT/ GST in a Global Digital Economy - Chapter 4A_Intermediated Delivery and ...
VAT/ GST in a Global Digital Economy - Chapter 4A_Intermediated Delivery and ...VAT/ GST in a Global Digital Economy - Chapter 4A_Intermediated Delivery and ...
VAT/ GST in a Global Digital Economy - Chapter 4A_Intermediated Delivery and ...
 
Корпоративный портал на Confluence в компании Ланта-Тур
Корпоративный портал на Confluence в компании Ланта-ТурКорпоративный портал на Confluence в компании Ланта-Тур
Корпоративный портал на Confluence в компании Ланта-Тур
 
DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...
DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...
DUMP-2015: «DevOps-практики в разработке решений для бизнеса» Максим Пашук, 2...
 
Effective Online Communication for Higher Education
Effective Online Communication for Higher EducationEffective Online Communication for Higher Education
Effective Online Communication for Higher Education
 
Как получить рабочие ссылки - стратегии и примеры
Как получить рабочие ссылки - стратегии и примерыКак получить рабочие ссылки - стратегии и примеры
Как получить рабочие ссылки - стратегии и примеры
 
Входящий маркетинг, как новый этап эволюции SEO
Входящий маркетинг,  как новый этап  эволюции SEOВходящий маркетинг,  как новый этап  эволюции SEO
Входящий маркетинг, как новый этап эволюции SEO
 
инструментальные средства управления проектами
инструментальные средства управления проектамиинструментальные средства управления проектами
инструментальные средства управления проектами
 
Рекомендательное письмо / letter of recomendation
Рекомендательное письмо / letter of recomendationРекомендательное письмо / letter of recomendation
Рекомендательное письмо / letter of recomendation
 
Оценка PR-инструметов FMCG-сектора (B2C)
Оценка PR-инструметов FMCG-сектора (B2C)Оценка PR-инструметов FMCG-сектора (B2C)
Оценка PR-инструметов FMCG-сектора (B2C)
 
5 × 5 = 25 фактов по SEO
5 × 5 = 25 фактов по SEO5 × 5 = 25 фактов по SEO
5 × 5 = 25 фактов по SEO
 
Steering Committee Presentation
Steering Committee PresentationSteering Committee Presentation
Steering Committee Presentation
 

More from Iosif Itkin

Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4Iosif 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
 

More from 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)
 

Devexperts Research Team at TMPA-2014 (Trading Systems Testing)

  • 1. Devexperts Research [основные направления] TMPA-2014 Дмитрий Цителов Виталий Трифанов Роман Елизаров
  • 2. Devexperts • Разработка ПО для финансовых компаний – Брокеры, дилеры, биржи • Глубоко специализированная компания – R&D полного цикла – QA – M&S 24/7 • dxFeed – сервис доставки рыночных данных
  • 3. Много данных, всё обновляется
  • 4. Поток на входе непрерывно растет
  • 8. Хотим ● Писать многопоточный высокопроизводительный код ● Уметь доказывать его корректность на модели ● Уметь верифицировать сам код (на соответствие модели)
  • 9. Пример: Data Race public class Account { private int amount = 0; } public class TestRace { public static void main (String[] args) { final Account a = new Account(); Thread t1 = depositAccountInNewThread(a, 5); Thread t2 = depositAccountInNewThread(a, 6); t1.join(); t2.join(); System.out.println(a.amount); //5? 6? 11? } }
  • 12. Как искать гонки? Динамически Быстро Точно Ограничить область поиска Важно не потерять информацию!
  • 13. Синхронизационные контракты • Факты синхронизации – lock, semaphore, ConcurrentHashMap, etc. • Обращения к разделяемым данным – коллекции, календарь, etc. Язык описания высокоуровневых свойств
  • 14. Data race detector • DSL для описания контрактов – xml-based – только основные контракты • Динамический поиск гонок – инструментирование байт-кода – алгоритм на основе логических часов – находит и применяет контракты
  • 15. Реальная задача: хэш-таблицы • Работа Gao at al – Хэш-таблица без ожидания – Только машинное доказательство – Не проработан до конца механизм изменения размера без ожидания • Реализация Cliff Click (high-scale-lib) – Не очевидно что этот тот же самый алгоритм – Нет формального доказательства
  • 16. Открытые проблемы • Построить человеко-читаемое доказательство алгоритма Gao et al – Включая изменение размера без ожидания • Разбить доказательство на модули – Хотим заменять примитивы в значениях таблицы на сложные структуры • Атомарно читать/писать сложные структуры в данном месте памяти – А не через подмену указателей
  • 17. Проверка линеаризуемости • Отсутствие гонок не гарантирует корректность многопоточной программы • Обычно, говоря «корректность», имеют в виду линеаризуемость - эквивалентность последовательному исполнению • Нужно уметь проверять линеаризуемость полученного кода как юнит-тест
  • 18. Намеченный формат работы • Отдельное подразделение в компании – очень важно, чтобы не дергали текучкой – хотим построить полноценный процесс • Взаимодействие с ВУЗами – своих сил не хватает – студентам нужны квалификационные работы – ВУЗу нужны публикации
  • 19. Контакты • Дмитрий Цителов (cit@devexperts.com) • Виталий Трифанов (trifanov@devexperts.com ) • Роман Елизаров (elizarov@devexperts.com)