Upload
iosif-itkin
View
267
Download
5
Embed Size (px)
Citation preview
BDD. За пределами возможного
14 Октября 2017, Саратов, Конференция ЮКОН
Иосиф Иткин, Exactpro - сооснователь и CEO
London Stock Exchange Group
Open Access Quality Assurance & Related Software Development for Financial Markets
Tel: +7 495 640 2460, +1 415 830 38 49
www.exactpro.com
Part of diversified international exchange and infrastructure group with assets across the entire exchange value chain. The Group can trace its history back to 1698
Вступление
• A specialist firm focused on functional and non functional
testing of systems that process wholesale financial products,
particularly market infrastructures
• A UK company with operations in the US and four QA &
software development centres in Russia
• Incorporated in 2009 with 10 people, our company has
experienced significant growth as satisfied clients require
more services; now employing 536 specialists
• Office in Saratov started in 2013
Front office
Listed Derivatives CRM
Dark PoolT25 Clearing
FXFixed income
SEFReconciliation
Onboarding
Ticker PlantCommondities
Smart Order Router
Trading DesktopsIndex Dissemination
FPGA
EquitiesConnectivity
ExchangeMTF
Swaptions
История
Проекты
Some of our projects (start date)
• Turquoise (2010)
• Borsa Italiana (2011)
• CCP.A (2011)
• FPGA-base Ticker Plant (2012)
• LSE (2012)
• Oslo Bors (2012)
• UnaVista (2013)
• FTSE (2013)
• EuroTLX (2014)
• Russell (2015)
• IDEM (2015)
• LSEDM (2015)
• ELITE (since 2015)
• CurveGlobal (2016)
• GATElab (2016)
• LCH (2016)
• TRADEcho (2016)
• MTS (2017)
• RNS (2017)
Наши клиенты
Что мы делаем
Что мы делаем
Что мы делаем
Что мы делаем
Что мы делаем
Что мы делаем
Build Software to Test Software
Automated testing
Compares intended and received
results
Automated end 2 end
clearing system testing
Automated monitoring,
analysis and reporting
75K messages / second from a single CPU core
Measures latencies in microsecond range
A variety of algoes simulating end-clients
will run and see how system performs
Добыча полезной информации
Метод разработки
Определение BDD
Behavior Driven Development – методика разработки
программного обеспечения на основе поведения
Specification by Example – Совместный подход к
определению требований и функциональных тестов
для программ, на основе сбора и иллюстрирования
требований, с использованием реалистичных
примеров, вместо абстрактных утверждений
Спецификация на примерах
Martin Fowler
https://martinfowler.com/bliki/SpecificationByExample.html
Пример требований
Пользователи размещают по N заявок в день
Пример требований
Пользователи размещают по N заявок в день
Что хотел сказать автор?
Пример требований
Пользователи размещают по N заявок в день
Что хотел сказать автор?
Пользователи размещают по 5 заявок в день
Пример требований
Пользователи размещают по N заявок в день
Что хотел сказать автор?
Пользователи размещают по 5 заявок в день
Пользователи размещают по 50,000 заявок в день
Пример требований
Пользователи размещают по N заявок в день
Что хотел сказать автор?
Пользователи размещают по 5 заявок в день
Пользователи размещают по 50,000 заявок в день
Следите за границами
Джон Э́дгар Гу́вер
(англ. John Edgar Hoover, 1
января 1895, Вашингтон — 2
мая 1972) —директор ФБР, c
1924 года до своей смерти
Известен крутым нравом
Следите за границами
Следите за границами
J. Edgar Hoover, former director of the FBI,
had a rule stating that all FBI memoranda
were required to be shorter than two and
one-half typed pages and with wide
margins all around. Hoover himself once
received a memo that violated this
prescribed length and format.
The writer had managed to cram more
words into his memo by reducing the size
of the margins. Hoover responded by
writing on the memo, “Watch the borders!”
When Hoover’s subordinates saw the note,
they assigned hundreds of special agents
to guard our national borders with Mexico
and Canada.
Завязывание галстука
Накиньте на себя галстук внешней стороной, так, чтобы были видны швы. 1.
Широкий конец находится справа, а узкий конец находится слева. Кончик
маленького конце следует вытянуть на уровень, чуть выше вашего пупка (эта
величина может изменяться в зависимости от вашего роста, длины и толщины
галстука). Работать будем с широким концом галстука.
Разместите широкий конец под узким концом, формируя перекрестие.2.
Оберните узкую сторону3. широким концом галстука слева на право.
Потяните широкий конец к шее и проденьте под образовавшимся воротником 4.
(галстука).
Проденьте через петлю на лицевой стороне узла, который только что 5.
образовался.
Потяните широкий конец вниз, слегка затягивая. Поправьте получившийся 6.
простой узел (узел «Кент») так, чтобы он ровно разместился в вашем воротнике.
Спецификация на примерах
Работа бизнес аналитика
Совместное создание требований
Пользовательские истории
Способ описания требований к разрабатываемой
системе, сформулированных как одно или более
предложений на повседневном или деловом языке
пользователя
Короткий и четкий ответ на вопросы:
- Кто пользователь?
- Что хочет?
- Почему?
Приёмочные испытания
Три Амиго
Developer QABA
User Stories
Clear, explicit title
As a <role/who>
I want <feature/what>
So that <value/why>
Acceptance criteria
Приёмочные испытания
Given – a set of preconditions
When – when an event occurs
Then – outcome is achieved
Gherkin style
Given – a set of preconditions
When – when an event occurs
Then – outcome is achieved
Gherkin style
Given – входные условия
When – события
Then – достигнутый результат
Вы смотрите на корнешоновую методику описания
сценариев, верный способ проведения приёмочных
испытаний, королеву аналитиков и первых пользователей,
защитницу программистов, мать тестирования, кхалиси
бескрайнего моря гибкой разработки, горячую как пирожок
разрушительницу водопадов
Пример проекта
Калькулятор страховой премии
??? Требования
Пример проекта
Калькулятор страховой премии
??? Требования Примеры
Исполняемая спецификация
???
Примеры Система
Исходная ситуация
???
Примеры Пустышка
Первый прототип
$100
Примеры Версия 0.1
Следующая версия
$100
Примеры Версия 0.2
Что-то сломалось
$99
Примеры Версия 0.3
Что-то заработало
$100
Примеры Версия 1.0
Процесс разработки
Трейдинговая система
Четвертый Амиго
Developer QABA Production Logs
На что это похоже
Примеры Работающая
Программа
Машинное обучение
Примеры Работающая
Программа
За пределами BDD
“Не славить Цезаря пришёл я, а хоронить”
Пытать огурцом
Использовать не по назначению
QA
User Story:
Новый способ перемалывания хлеба
Как автоматизированная мельницаЯ хочу реализовать разные требованияЧтобы лучше соответствовать требованиям
Gojko Adzic
Gojko Adzic is a strategic software
delivery consultant who works with
ambitious teams to align software delivery
with business goals, and improve the
quality of their software products and
processes. Gojko specialises in are agile
and lean quality improvement, in particular
impact mapping, agile testing,
specification by example and behaviour
driven development.
Gojko’s book Specification by Example
won the Jolt Award for the best book of
2012. Gojko won the 2016 European
Software Testing Outstanding
Achievement Award. In 2011, he was
voted by peers as the most influential
agile testing professional, and his blog
won the UK Agile Award for the best
online publication in 2010.
Вопрос
Можно ли представить ситуацию, когда
программисту лучше не показывать все
примеры и данные?
Пример
Цель
Изучить SQL
Изучить SQL
Найти все компьютеры с ценой не больше $500
Изучить SQL
SELECT * FROM pc
Изучить SQL
SELECT * FROM pc
Как это работает
SELECT * FROM pc
Подгон результатов
SELECT * FROM pc
WHERE price < 500
Как заставить написать хороший запрос
Приходится думать
Приходиться думать
SELECT * FROM pc WHERE price <= 500
Трейдинговые системы
As a transaction request is sent from the client to the heart of
the heart of the marketplace, the matching engine, it passes
through various processing tiers:
Processing tiers and horizontal scalability approach in Exchange Systems.
Source: A Cinnober white paper on: Latency
Трейдинговые системы
Given – a set of preconditions
Сложность настроек и статических данных
When – when an event occurs
Высокая нагрузка и асинхронность
Then – outcome is achieved
Недетерминированный результат
Много деталей
Может быть нужна модель
Цель
Создать стартап
Разработка по BDD
How to Build Minimum Viable Product
Не ТАК
Вот КАК
Что там с нашей спецификацией
Критические системы
Что нельзя делать на подводной лодке?
Что мешает разработке
Как мы воспринимаем ПО
Testing is Relentless Learning
Критические системы
Открывать форточку
Сценариев катастрофы –бесконечное множество
Что бы ни случилось, не открывай форточку
При любом сценарии –
Результат должен быть один
Exactpro в Саратове
ул. Рабочая, 145А, 11-12 этаж, БЦ “Самсон”, +7 (8452) 338-908
Спасибо
Дружите с нами