SlideShare a Scribd company logo
АВТОМАТИЗИРОВАННОЕ
ТЕСТИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ
ИНСТРУМЕНТОВ BEHAVIOUR DRIVEN
DEVELOPMENT В
СИСТЕМООБРАЗУЮЩЕЙ ФИНАНСОВОЙ
ОРГАНИЗАЦИИ
Василий Михайлов
ЗАО НКО НРД
19 МАРТА 2015, Г. МОСКВА
ВАСИЛИЙ МИХАЙЛОВ
РУКОВОДИТЕЛЬ РАЗРАБОТКИ
АВТОМАТИЗИРОВАННОЕ ТЕСТИРОВАНИЕ С
ИСПОЛЬЗОВАНИЕМ ИНСТРУМЕНТОВ
BEHAVIOUR DRIVEN DEVELOPMENT В
СИСТЕМООБРАЗУЮЩЕЙ ФИНАНСОВОЙ
ОРГАНИЗАЦИИ
КОНТАКТЫ
Михайлов Василий
Tel.: +7 (495) 234-48-27, доб. 4785
Отдел маркетинга:
Tel.: +7 (495) 234-48-27
E-mail: info@nsd.ru
Веб-сайт:
www.nsd.ru, www.isin.ru, www.aecsd.org, www.dcc.ru, www.lei-code.ru
Адрес:
105066, Россия, Москва,
ул. Спартаковская, д.12
ЗАЧЕМ ТЕСТИРОВАТЬ?
4
ЗАЧЕМ ТЕСТИРОВАТЬ?
5
$$
ЭКОНОМИЯ ЗА СЧЕТ ТЕСТИРОВАНИЯ НА РАННИХ СТАДИЯХ
6
1x
4x
7x
14x
Дефект найденный позже
дороже в устранении (*)
Модульное
тестирование
(МТ)
Интеграционое
тестирование
(ИТ)
Приемочное
тестирование
(UAT)
Промышленная
среда
(ПРОМ)
(*) эмпирическая оценка
1x
1,7x
2,7x
МТ + UAT +
ИТ
ИТ + UAT UAT
МТ 37% 0% 0%
ИТ 50% 50% 0%
UAT 8% 40% 60%
ПРОМ 5% 10% 40%
Раннее тестирование снижает
стоимость устранения
дефектов в 2,7 раза
ПРИМЕР ЭКОНОМИИ ЗА СЧЕТ РАННЕГО ТЕСТИРОВАНИЯ
7
Июль 201x Ноябрь 201x
Стадия Часы (*)
Доля устранен-
ных дефектов
Устранено
дефектов
Цена устране-
ния (usd)
Доля устранен-
ных дефектов
Устранено
дефектов
Цена устране-
ния
Модульное
тестирование
2 11% 150 4 500 26% 346 10 380
Интеграционное
тестирование
8 74% 1030 117 420 62% 839 100 680
UAT 14 3% 35 7 350 5% 65 13 650
Промышленная среда 28 12% 171 71 820 8% 102 42 840
100% 1386 207 270 100% 1352 167 550
Экономия тыс USD 39 720
(*) эмпирическая оценка
В ПРИВЕДЕННОМ ПРИМЕРЕ НА СТАДИИ МОДУЛЬНОГО
ТЕСТИРОВАНИЯ НЕ УДАЕТСЯ НАЙТИ 37% ДЕФЕКТОВ
8
Июль 201x Могло бы быть
Стадия Часы (*)
Доля устранен-
ных дефектов
Устранено
дефектов
Цена устране-
ния (usd)
Доля устранен-
ных дефектов
Устранено
дефектов
Цена устране-
ния (usd)
Модульное
тестирование
2 11% 150 4 500 37% 501 15 030
Интеграционное
тестирование
8 74% 1030 117 420 50% 676 81 120
UAT 14 3% 35 7 350 8% 108 22 680
Промышленная среда 28 12% 171 71 820 5% 67 28 140
100% 1386 207 270 100% 1352 146 970
Экономия тыс USD 60 300
ПОЧЕМУ В ПРИВЕДЕННОМ ПРИМЕРЕ НА СТАДИИ
МОДУЛЬНОГО ТЕСТИРОВАНИЯ НЕ УДАЕТСЯ НАЙТИ 37%
ДЕФЕКТОВ?
9
• Недостаточное количество тестировщиков?
• Недостаточная квалификация тестировщиков?
ПОЧЕМУ В ПРИВЕДЕННОМ ПРИМЕРЕ НА СТАДИИ
МОДУЛЬНОГО ТЕСТИРОВАНИЯ НЕ УДАЕТСЯ НАЙТИ 37%
ДЕФЕКТОВ?
10
ВРЕМЯ
ПОЧЕМУ В ПРИВЕДЕННОМ ПРИМЕРЕ НА СТАДИИ
МОДУЛЬНОГО ТЕСТИРОВАНИЯ НЕ УДАЕТСЯ НАЙТИ 37%
ДЕФЕКТОВ?
11
Разработка
Модульное тестирование
План
Разработка
Модульное тести…
Факт
Deadline стадии
модульного
тестирования
11%
ошибок
КАК НАХОДИТЬ 37% ДЕФЕКТОВ?
12
СМЕЩАЕМ АКЦЕНТЫ. ТЕСТИРОВАТЬ БУДЕТ РАЗРАБОТЧИК
13
Разработка
Автоматизация
сценариев
Подготовка
сценариев
Deadline
Исследовательское
тестирование
КАК ОРГАНИЗОВАТЬ?
14
• Вопросы тестировщика: как написать достаточно детальный тест-кейс
на код, которого еще нет? Нет экранных форм, нет названий методов
API, нет описания типов данных - вообще ничего нет
• Вопросы разработчика: что имел ввиду тестировщик???
ТЕСТОВЫЕ СПЕЦИФИКАЦИИ НА BDD
15
• Простые. Всего 4 конструкции - Дано, Если, И, То
• Для написания тестового сценария тестировщику не нужно иметь
реализацию; достаточно знать постановку задачи на систему
• Разработчик и тестировщик не ждут друг друга по пол-дня. Разработчик
тестирует сам.
• Прогресс разработки измеряется количеством passed-сценариев
• При изменении кода не нужно откатывать тест-кейсы и ретестировать
вручную
ПРИМЕР СПЕЦИФИКАЦИИ BDD
16
# language: ru
Функционал: Клиринговый сеанс.
Сценарий: Исключение сделки из клирингового сеанса при отсутствии денег
Дано Новый клиринговый сеанс со сделкой
| NUM_SORT | ORDER_ID | F_RESERVATION | F_SUO | STATUS | EXCLUDE_REASON |
| 1 | 1 | 0 | 0 | P | 0 |
Если финиструменты
| ORDER_ID | LA_D_ID | LA_C_ID | QUANTITY |
| 1 | 1 | 2 | 5 |
И расчеты по деньгам в сделке
| ORDER_ID | BA_D_ID | BA_C_ID | AMOUNT |
| 1 | 1001 | 1003 | 3.1 |
И остатки по лицевым счетам
| LIC_ACC_ID | FACT_VALUE | CALC_VALUE |
| 1 | 5 | 5 |
| 2 | 0 | 0 |
И остаток по денежным счетам
| BANK_ACC_ID | FACT_VALUE | CALC_VALUE | RESERV_VALUE | F_RESERVATION_CALC |
| 1001 | 2.7 | 2.7 | 0 | 0 |
| 1003 | 0 | 0 | 0 | 0 |
То Сделка исключается из клирингового сеанса
| NUM_SORT | ORDER_ID | F_RESERVATION | F_SUO | STATUS | EXCLUDE_REASON |
| 1 | 1 | 0 | 0 | P | 0 |
ПРИМЕР РЕАЛИЗАЦИИ НА JAVA 1 / 2
17
@Дано("^Новый клиринговый сеанс со сделкой$") //таблица TT_CLR_DEAL
public void Новый_клиринговый_сеанс_со_сделкой(DataTable clrDeal) throws Throwable, SQLException {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
con = DriverManager.getConnection("jdbc:oracle:thin:@eprusamw0125:1521/ORA11G", "qa", "qa");
List<Map<String, String>> data = clrDeal.asMaps(String.class, String.class);
for (int i = 0; i < data.size(); i++) {
String sql = ("INSERT INTO TT_CLR_DEAL (NUM_SORT, ORDER_ID, F_RESERVATION, F_SUO, STATUS,
EXCLUDE_REASON)" +
"VALUES (" + data.get(i).get("NUM_SORT") + "," + data.get(i).get("ORDER_ID") + ","
+ data.get(i).get("F_RESERVATION") + "," + data.get(i).get("F_SUO") + ",'"
+ data.get(i).get("STATUS")
+ "'," + data.get(i).get("EXCLUDE_REASON") + ")");
System.out.println(sql);
st = con.createStatement();
st.executeUpdate(sql);
}
}
ПРИМЕР РЕАЛИЗАЦИИ НА JAVA 2 / 2
18
@И("^расчеты по деньгам в сделке$")//таблица TT_CLR_DEAL_MONEY
public void расчеты_по_деньгам_в_сделке(DataTable clrDealMoney) throws Throwable {
List<Map<String, String>> data = clrDealMoney.asMaps(String.class, String.class);
for (int i = 0; i < data.size(); i++) {
String sql = ("INSERT INTO TT_CLR_DEAL_MONEY (ORDER_ID, BA_D_ID, BA_C_ID, AMOUNT)" +
"VALUES (" + data.get(i).get("ORDER_ID") + "," + data.get(i).get("BA_D_ID") + ","
+ data.get(i).get("BA_C_ID") + "," + data.get(i).get("AMOUNT") + ")");
System.out.println(sql);
st = con.createStatement();
st.executeUpdate(sql);
}
}
…
@То("^Сделка исключается из клирингового сеанса$")//таблица TT_CLR_DEAL
public void Сделка_исключается_из_клирингового_сеанса(DataTable expectedClrDeal) {
…
st = con.createStatement();
String sql = "begin execute_clearing_session(1); end;";
System.out.println(sql);
st.executeUpdate(sql);
…
}
ОТСЛЕЖИВАЕМ ГОТОВНОСТЬ РЕЛИЗА ПО PASSED-
СЦЕНАРИЯМ
19
0
100
200
300
400
500
600
Planned
Passed
Failed
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
20
• С чего начать? Развернуть Cucumber, начать писать BDD на баги
• Нужно ли нанимать тестировщиков с навыками написания автотестов?
Нет
• Сколько сценариев делать? Варьируется. В среднем - 1 сценарий на 4
часа разработки
• Сколько нужно модульных тестировщиков? Обычно достаточно одного
модульного тестировщика на шесть разработчиков
CПАСИБО
ЗА ВНИМАНИЕ!
ПРАВОВАЯ ОГОВОРКА
 Настоящая презентация была подготовлена и выпущена НКО ЗАО НРД (далее – «Компания»). Если нет какой-либо оговорки об ином, то Компания считается источником
всей информации, изложенной в настоящем документе. Данная информация предоставляется по состоянию на дату настоящего документа и может быть изменена без
какого-либо уведомления.
 Данный документ не является, не формирует и не должен рассматриваться в качестве предложения или же приглашения для продажи или участия в подписке, или же, как
побуждение к приобретению или же к подписке на какие-либо ценные бумаги, а также этот документ или его часть или же факт его распространения не являются
основанием и на них нельзя полагаться в связи с каким-либо предложением, договором, обязательством или же инвестиционным решением, связанными с ним, равно как
и он не является рекомендацией относительно ценных бумаг компании.
 Изложенная в данном документе информация не являлась предметом независимой проверки. В нем также не содержится каких-либо заверений или гарантий,
сформулированных или подразумеваемых и никто не должен полагаться на достоверность, точность и полноту информации или мнения, изложенного здесь. Никто из
Компании или каких-либо ее дочерних обществ или аффилированных лиц или их директоров, сотрудников или работников, консультантов или их представителей не
принимает какой-либо ответственности (независимо от того, возникла ли она в результате халатности или чего-то другого), прямо или косвенно связанной с
использованием этого документа или иным образом возникшей из него.
 Данная презентация содержит прогнозные заявления. Все включенные в настоящую презентацию заявления, за исключением заявлений об исторических фактах, включая,
но, не ограничиваясь, заявлениями, относящимися к нашему финансовому положению, бизнес-стратегии, планам менеджмента и целям по будущим операциям являются
прогнозными заявлениями. Эти прогнозные заявления включают в себя известные и неизвестные риски, факторы неопределенности и иные факторы, которые могут стать
причиной того, что наши нынешние показатели, достижения, свершения или же производственные показатели, будут существенно отличаться от тех, которые
сформулированы или подразумеваются под этими прогнозными заявлениями. Данные прогнозные заявления основаны на многочисленных презумпциях относительно
нашей нынешней и будущей бизнес-стратегии и среды, в которой мы ожидаем осуществлять свою деятельность в будущем. Важнейшими факторами, которые могут
повлиять на наши нынешние показатели, достижения, свершения или же производственные показатели, которые могут существенно отличаться от тех, которые
сформулированы или подразумеваются этими прогнозными заявлениями являются, помимо иных факторов, следующие:
 восприятие рыночных услуг, предоставляемых Компанией и ее дочерними обществами;
 волатильность (а) Российской экономики и рынка ценных бумаг и (b) секторов с высоким уровнем конкуренции, в которых Компания и ее дочерние общества
осуществляют свою деятельность;
 изменения в (a) отечественном и международном законодательстве и налоговом регулировании и (b) государственных программах, относящихся к финансовым
рынкам и рынкам ценных бумаг;
 ростом уровня конкуренции со стороны новых игроков на рынке России;
 способность успевать за быстрыми изменениями в научно-технической среде, включая способность использовать расширенные функциональные возможности,
которые популярны среди клиентов Компании и ее дочерних обществ;
 способность сохранять преемственность процесса внедрения новых конкурентных продуктов и услуг, равно как и поддержка конкурентоспособности;
 способность привлекать новых клиентов на отечественный рынок и в зарубежных юрисдикциях;
 способность увеличивать предложение продукции в зарубежных юрисдикциях.
 Прогнозные заявления делаются только на дату настоящей презентации, и мы точно отрицаем наличие любых обязательств по обновлению или пересмотру прогнозных
заявлений в настоящей презентации в связи с изменениями наших ожиданий, или перемен в условиях или обстоятельствах, на которых основаны эти прогнозные
заявления.

More Related Content

PPTX
Agile Days 2015 Управление рисками как инструмент PO
PDF
Шесть сигм. Краткое руководство желтых поясов
PPTX
Василий Михайлов, Хосин Канри - командное улучшение процессов разработки прог...
PDF
Дизайн для шести сигм (DFSS). Часть 4: Design
PPT
Project Management Анар Умурзакова
PPTX
Елена Асташкевич "Управление рисками"
PDF
Управление рисками. Когда и как?
PDF
Дизайн для шести сигм (DFSS). Часть 3: Analyze
Agile Days 2015 Управление рисками как инструмент PO
Шесть сигм. Краткое руководство желтых поясов
Василий Михайлов, Хосин Канри - командное улучшение процессов разработки прог...
Дизайн для шести сигм (DFSS). Часть 4: Design
Project Management Анар Умурзакова
Елена Асташкевич "Управление рисками"
Управление рисками. Когда и как?
Дизайн для шести сигм (DFSS). Часть 3: Analyze

What's hot (20)

PPT
История развития системы мотивации.
PPTX
Управление рисками
PDF
Устранение потерь. Свод знаний участника тренинга
PPTX
презентация кпс (пред)
PPTX
управление рисками
PPTX
Дмитрий Маев: Управленческие поединки. Эффективная технология развития перего...
PDF
Улучшение процесса продаж. Денис Рябов 16.01.2012
PPT
олег афанасьев результативный менеджмент девять шагов к вершинам мастерства...
PDF
Cl cup technical engineering-corrected
PPTX
Cl mt guide_semifinal_v2
PPT
мастер класс риски ет 70715
PDF
101 инструмент вашего проекта шести сигм
PPTX
Profiles international методика повышения эффективности управления-2012
PDF
Развиваем безопасность на производстве
PDF
Управление рисками в проектах. Попытка сравнения
PPTX
Управление рисками
PPTX
Lean Six Sigma Белый Пояс 1
PDF
Prince2 на практике
PDF
Как раскрыть и реализовать потенциал организации
PPT
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
История развития системы мотивации.
Управление рисками
Устранение потерь. Свод знаний участника тренинга
презентация кпс (пред)
управление рисками
Дмитрий Маев: Управленческие поединки. Эффективная технология развития перего...
Улучшение процесса продаж. Денис Рябов 16.01.2012
олег афанасьев результативный менеджмент девять шагов к вершинам мастерства...
Cl cup technical engineering-corrected
Cl mt guide_semifinal_v2
мастер класс риски ет 70715
101 инструмент вашего проекта шести сигм
Profiles international методика повышения эффективности управления-2012
Развиваем безопасность на производстве
Управление рисками в проектах. Попытка сравнения
Управление рисками
Lean Six Sigma Белый Пояс 1
Prince2 на практике
Как раскрыть и реализовать потенциал организации
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Ad

Viewers also liked (20)

PPTX
Внедрение изменений без длинных документов, долгих согласований и формальных ...
PPTX
Коллектив Яндекс.Картинок и Adoption Curve
PPT
зуева татьяна - опыт автоматизации тестирования в Agile проекте
PPTX
тенишев научить и зажечь
PPTX
DevOps - очередное красивое слово или следующая ступень эволюции?
PPTX
Менеджер - глупая идея!
PDF
Как вовлечь команду проекта в работу с бэклогом
PDF
зимин метрики в стиле Heart - как понять, что продукт хороший и нравится по...
PPTX
Agile/Scrum
PDF
разумовская роль эмпатии в создании продукта. как найти реальную боль клиен...
PPTX
Тестирование веб-проектов в Agile
PDF
Бумажное прототипирование
PDF
кривошеев архитектура как функция от . или как недостаток здравого смысла у...
PPTX
Современные тренды разработки ПО - это должен знать каждый(Agile, Lean, Lean ...
PPTX
Доски проектов и продуктов на TFS: Agile-визуализация на уровне компании
PPTX
Code review как средство обеспечения качества программного обеспечения
PPTX
2015-12-05 Александр Бындю, Андрей Шапиро - Пять самых важных составляющих пр...
PPTX
Cтатические анализаторы систем 1с AgileDays 2015
PPTX
Rugby, Scrum и командная работа
PPTX
Развитие навыков 1с специалиста до 5 го уровня
Внедрение изменений без длинных документов, долгих согласований и формальных ...
Коллектив Яндекс.Картинок и Adoption Curve
зуева татьяна - опыт автоматизации тестирования в Agile проекте
тенишев научить и зажечь
DevOps - очередное красивое слово или следующая ступень эволюции?
Менеджер - глупая идея!
Как вовлечь команду проекта в работу с бэклогом
зимин метрики в стиле Heart - как понять, что продукт хороший и нравится по...
Agile/Scrum
разумовская роль эмпатии в создании продукта. как найти реальную боль клиен...
Тестирование веб-проектов в Agile
Бумажное прототипирование
кривошеев архитектура как функция от . или как недостаток здравого смысла у...
Современные тренды разработки ПО - это должен знать каждый(Agile, Lean, Lean ...
Доски проектов и продуктов на TFS: Agile-визуализация на уровне компании
Code review как средство обеспечения качества программного обеспечения
2015-12-05 Александр Бындю, Андрей Шапиро - Пять самых важных составляющих пр...
Cтатические анализаторы систем 1с AgileDays 2015
Rugby, Scrum и командная работа
Развитие навыков 1с специалиста до 5 го уровня
Ad

Similar to михайлов автоматизированное тестирование с использованием инструментов Behaviour driven development в системообразующей финансовой организации (20)

PPTX
Автоматизированное тестирование с использованием инструментов Behaviour drive...
PDF
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
PPT
5 лекция. презентация
PPT
Особенности параллельного тестирования нескольких проектов
ODP
SqaВфны8
PPT
Кадровые проблемы тестирования
PDF
Оценка проектов тестирования
PPTX
Практические аспекты разработки ПО #4
PDF
Серебряная пуля автоматизированного тестирования
PPT
Test management print
PDF
Отвечает ли тестировщик за качество?
PDF
Михаил Павлов - is a tester responsible for quality
PPT
Управление тестированием. Анализ типичных проблем
PPT
Testing
PPTX
Повышение качества тестов и автоматическая валидация REST API документации
PPTX
QA Fest 2015. Алена Черненко-Дыба и Алексей Лупан. Секреты успешного проекта...
PDF
андрей дмитриев взгляд со стороны разработчика
PPTX
Software Testing
PDF
Михаил Павлов -- Отвечает ли тестировщик за качество?
PPTX
организация и проведение тестирования
Автоматизированное тестирование с использованием инструментов Behaviour drive...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
5 лекция. презентация
Особенности параллельного тестирования нескольких проектов
SqaВфны8
Кадровые проблемы тестирования
Оценка проектов тестирования
Практические аспекты разработки ПО #4
Серебряная пуля автоматизированного тестирования
Test management print
Отвечает ли тестировщик за качество?
Михаил Павлов - is a tester responsible for quality
Управление тестированием. Анализ типичных проблем
Testing
Повышение качества тестов и автоматическая валидация REST API документации
QA Fest 2015. Алена Черненко-Дыба и Алексей Лупан. Секреты успешного проекта...
андрей дмитриев взгляд со стороны разработчика
Software Testing
Михаил Павлов -- Отвечает ли тестировщик за качество?
организация и проведение тестирования

More from Magneta AI (20)

PDF
From outsource to productsource!
PPTX
BDD test structure
PPTX
AgileCamp15. Процессный трек
PPTX
Как создать концепцию продукта в виде Lean Canvas
PPTX
Эффективные ретроспективы
PDF
зотин Scrum, kanban, что дальше. история nokia
PPTX
абраменко как сделать нужный людям продукт
PDF
павлов все, что вы хотели знать о юнит тестах, но боялись спросить
PPTX
тучин как внедрить Agile, чтобы никто не заметил
PDF
ткаченко качество без этапа тестирования
PPTX
сенькова разное ретро для разных команд (как провести ретро для новичков, с...
PDF
мациевский путь самурая. уволить нельзя оставить
PPTX
лустин статические анализаторы систем 1с ad2015
PDF
лосев контрольные карты шухарта в анализе деятельности Scrum команд
PPTX
корецкий как мы улучшили экспертную оценку проектов
PPSX
зиновьева повышение эффективности команды. ретроспектива как инструмент
PPTX
виноградова внедрение изменений без длинных документов, долгих согласований...
PPTX
верещак. построение культуры Dev ops. v0.5 copy
PPTX
бородин об эмпирической разработке
PPTX
богуславский Agile days непрерывное качество в непрерывной разработке
From outsource to productsource!
BDD test structure
AgileCamp15. Процессный трек
Как создать концепцию продукта в виде Lean Canvas
Эффективные ретроспективы
зотин Scrum, kanban, что дальше. история nokia
абраменко как сделать нужный людям продукт
павлов все, что вы хотели знать о юнит тестах, но боялись спросить
тучин как внедрить Agile, чтобы никто не заметил
ткаченко качество без этапа тестирования
сенькова разное ретро для разных команд (как провести ретро для новичков, с...
мациевский путь самурая. уволить нельзя оставить
лустин статические анализаторы систем 1с ad2015
лосев контрольные карты шухарта в анализе деятельности Scrum команд
корецкий как мы улучшили экспертную оценку проектов
зиновьева повышение эффективности команды. ретроспектива как инструмент
виноградова внедрение изменений без длинных документов, долгих согласований...
верещак. построение культуры Dev ops. v0.5 copy
бородин об эмпирической разработке
богуславский Agile days непрерывное качество в непрерывной разработке

михайлов автоматизированное тестирование с использованием инструментов Behaviour driven development в системообразующей финансовой организации

  • 1. АВТОМАТИЗИРОВАННОЕ ТЕСТИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ИНСТРУМЕНТОВ BEHAVIOUR DRIVEN DEVELOPMENT В СИСТЕМООБРАЗУЮЩЕЙ ФИНАНСОВОЙ ОРГАНИЗАЦИИ Василий Михайлов ЗАО НКО НРД
  • 2. 19 МАРТА 2015, Г. МОСКВА ВАСИЛИЙ МИХАЙЛОВ РУКОВОДИТЕЛЬ РАЗРАБОТКИ АВТОМАТИЗИРОВАННОЕ ТЕСТИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ИНСТРУМЕНТОВ BEHAVIOUR DRIVEN DEVELOPMENT В СИСТЕМООБРАЗУЮЩЕЙ ФИНАНСОВОЙ ОРГАНИЗАЦИИ
  • 3. КОНТАКТЫ Михайлов Василий Tel.: +7 (495) 234-48-27, доб. 4785 Отдел маркетинга: Tel.: +7 (495) 234-48-27 E-mail: info@nsd.ru Веб-сайт: www.nsd.ru, www.isin.ru, www.aecsd.org, www.dcc.ru, www.lei-code.ru Адрес: 105066, Россия, Москва, ул. Спартаковская, д.12
  • 6. ЭКОНОМИЯ ЗА СЧЕТ ТЕСТИРОВАНИЯ НА РАННИХ СТАДИЯХ 6 1x 4x 7x 14x Дефект найденный позже дороже в устранении (*) Модульное тестирование (МТ) Интеграционое тестирование (ИТ) Приемочное тестирование (UAT) Промышленная среда (ПРОМ) (*) эмпирическая оценка 1x 1,7x 2,7x МТ + UAT + ИТ ИТ + UAT UAT МТ 37% 0% 0% ИТ 50% 50% 0% UAT 8% 40% 60% ПРОМ 5% 10% 40% Раннее тестирование снижает стоимость устранения дефектов в 2,7 раза
  • 7. ПРИМЕР ЭКОНОМИИ ЗА СЧЕТ РАННЕГО ТЕСТИРОВАНИЯ 7 Июль 201x Ноябрь 201x Стадия Часы (*) Доля устранен- ных дефектов Устранено дефектов Цена устране- ния (usd) Доля устранен- ных дефектов Устранено дефектов Цена устране- ния Модульное тестирование 2 11% 150 4 500 26% 346 10 380 Интеграционное тестирование 8 74% 1030 117 420 62% 839 100 680 UAT 14 3% 35 7 350 5% 65 13 650 Промышленная среда 28 12% 171 71 820 8% 102 42 840 100% 1386 207 270 100% 1352 167 550 Экономия тыс USD 39 720 (*) эмпирическая оценка
  • 8. В ПРИВЕДЕННОМ ПРИМЕРЕ НА СТАДИИ МОДУЛЬНОГО ТЕСТИРОВАНИЯ НЕ УДАЕТСЯ НАЙТИ 37% ДЕФЕКТОВ 8 Июль 201x Могло бы быть Стадия Часы (*) Доля устранен- ных дефектов Устранено дефектов Цена устране- ния (usd) Доля устранен- ных дефектов Устранено дефектов Цена устране- ния (usd) Модульное тестирование 2 11% 150 4 500 37% 501 15 030 Интеграционное тестирование 8 74% 1030 117 420 50% 676 81 120 UAT 14 3% 35 7 350 8% 108 22 680 Промышленная среда 28 12% 171 71 820 5% 67 28 140 100% 1386 207 270 100% 1352 146 970 Экономия тыс USD 60 300
  • 9. ПОЧЕМУ В ПРИВЕДЕННОМ ПРИМЕРЕ НА СТАДИИ МОДУЛЬНОГО ТЕСТИРОВАНИЯ НЕ УДАЕТСЯ НАЙТИ 37% ДЕФЕКТОВ? 9 • Недостаточное количество тестировщиков? • Недостаточная квалификация тестировщиков?
  • 10. ПОЧЕМУ В ПРИВЕДЕННОМ ПРИМЕРЕ НА СТАДИИ МОДУЛЬНОГО ТЕСТИРОВАНИЯ НЕ УДАЕТСЯ НАЙТИ 37% ДЕФЕКТОВ? 10 ВРЕМЯ
  • 11. ПОЧЕМУ В ПРИВЕДЕННОМ ПРИМЕРЕ НА СТАДИИ МОДУЛЬНОГО ТЕСТИРОВАНИЯ НЕ УДАЕТСЯ НАЙТИ 37% ДЕФЕКТОВ? 11 Разработка Модульное тестирование План Разработка Модульное тести… Факт Deadline стадии модульного тестирования 11% ошибок
  • 12. КАК НАХОДИТЬ 37% ДЕФЕКТОВ? 12
  • 13. СМЕЩАЕМ АКЦЕНТЫ. ТЕСТИРОВАТЬ БУДЕТ РАЗРАБОТЧИК 13 Разработка Автоматизация сценариев Подготовка сценариев Deadline Исследовательское тестирование
  • 14. КАК ОРГАНИЗОВАТЬ? 14 • Вопросы тестировщика: как написать достаточно детальный тест-кейс на код, которого еще нет? Нет экранных форм, нет названий методов API, нет описания типов данных - вообще ничего нет • Вопросы разработчика: что имел ввиду тестировщик???
  • 15. ТЕСТОВЫЕ СПЕЦИФИКАЦИИ НА BDD 15 • Простые. Всего 4 конструкции - Дано, Если, И, То • Для написания тестового сценария тестировщику не нужно иметь реализацию; достаточно знать постановку задачи на систему • Разработчик и тестировщик не ждут друг друга по пол-дня. Разработчик тестирует сам. • Прогресс разработки измеряется количеством passed-сценариев • При изменении кода не нужно откатывать тест-кейсы и ретестировать вручную
  • 16. ПРИМЕР СПЕЦИФИКАЦИИ BDD 16 # language: ru Функционал: Клиринговый сеанс. Сценарий: Исключение сделки из клирингового сеанса при отсутствии денег Дано Новый клиринговый сеанс со сделкой | NUM_SORT | ORDER_ID | F_RESERVATION | F_SUO | STATUS | EXCLUDE_REASON | | 1 | 1 | 0 | 0 | P | 0 | Если финиструменты | ORDER_ID | LA_D_ID | LA_C_ID | QUANTITY | | 1 | 1 | 2 | 5 | И расчеты по деньгам в сделке | ORDER_ID | BA_D_ID | BA_C_ID | AMOUNT | | 1 | 1001 | 1003 | 3.1 | И остатки по лицевым счетам | LIC_ACC_ID | FACT_VALUE | CALC_VALUE | | 1 | 5 | 5 | | 2 | 0 | 0 | И остаток по денежным счетам | BANK_ACC_ID | FACT_VALUE | CALC_VALUE | RESERV_VALUE | F_RESERVATION_CALC | | 1001 | 2.7 | 2.7 | 0 | 0 | | 1003 | 0 | 0 | 0 | 0 | То Сделка исключается из клирингового сеанса | NUM_SORT | ORDER_ID | F_RESERVATION | F_SUO | STATUS | EXCLUDE_REASON | | 1 | 1 | 0 | 0 | P | 0 |
  • 17. ПРИМЕР РЕАЛИЗАЦИИ НА JAVA 1 / 2 17 @Дано("^Новый клиринговый сеанс со сделкой$") //таблица TT_CLR_DEAL public void Новый_клиринговый_сеанс_со_сделкой(DataTable clrDeal) throws Throwable, SQLException { DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); con = DriverManager.getConnection("jdbc:oracle:thin:@eprusamw0125:1521/ORA11G", "qa", "qa"); List<Map<String, String>> data = clrDeal.asMaps(String.class, String.class); for (int i = 0; i < data.size(); i++) { String sql = ("INSERT INTO TT_CLR_DEAL (NUM_SORT, ORDER_ID, F_RESERVATION, F_SUO, STATUS, EXCLUDE_REASON)" + "VALUES (" + data.get(i).get("NUM_SORT") + "," + data.get(i).get("ORDER_ID") + "," + data.get(i).get("F_RESERVATION") + "," + data.get(i).get("F_SUO") + ",'" + data.get(i).get("STATUS") + "'," + data.get(i).get("EXCLUDE_REASON") + ")"); System.out.println(sql); st = con.createStatement(); st.executeUpdate(sql); } }
  • 18. ПРИМЕР РЕАЛИЗАЦИИ НА JAVA 2 / 2 18 @И("^расчеты по деньгам в сделке$")//таблица TT_CLR_DEAL_MONEY public void расчеты_по_деньгам_в_сделке(DataTable clrDealMoney) throws Throwable { List<Map<String, String>> data = clrDealMoney.asMaps(String.class, String.class); for (int i = 0; i < data.size(); i++) { String sql = ("INSERT INTO TT_CLR_DEAL_MONEY (ORDER_ID, BA_D_ID, BA_C_ID, AMOUNT)" + "VALUES (" + data.get(i).get("ORDER_ID") + "," + data.get(i).get("BA_D_ID") + "," + data.get(i).get("BA_C_ID") + "," + data.get(i).get("AMOUNT") + ")"); System.out.println(sql); st = con.createStatement(); st.executeUpdate(sql); } } … @То("^Сделка исключается из клирингового сеанса$")//таблица TT_CLR_DEAL public void Сделка_исключается_из_клирингового_сеанса(DataTable expectedClrDeal) { … st = con.createStatement(); String sql = "begin execute_clearing_session(1); end;"; System.out.println(sql); st.executeUpdate(sql); … }
  • 19. ОТСЛЕЖИВАЕМ ГОТОВНОСТЬ РЕЛИЗА ПО PASSED- СЦЕНАРИЯМ 19 0 100 200 300 400 500 600 Planned Passed Failed
  • 20. ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ 20 • С чего начать? Развернуть Cucumber, начать писать BDD на баги • Нужно ли нанимать тестировщиков с навыками написания автотестов? Нет • Сколько сценариев делать? Варьируется. В среднем - 1 сценарий на 4 часа разработки • Сколько нужно модульных тестировщиков? Обычно достаточно одного модульного тестировщика на шесть разработчиков
  • 22. ПРАВОВАЯ ОГОВОРКА  Настоящая презентация была подготовлена и выпущена НКО ЗАО НРД (далее – «Компания»). Если нет какой-либо оговорки об ином, то Компания считается источником всей информации, изложенной в настоящем документе. Данная информация предоставляется по состоянию на дату настоящего документа и может быть изменена без какого-либо уведомления.  Данный документ не является, не формирует и не должен рассматриваться в качестве предложения или же приглашения для продажи или участия в подписке, или же, как побуждение к приобретению или же к подписке на какие-либо ценные бумаги, а также этот документ или его часть или же факт его распространения не являются основанием и на них нельзя полагаться в связи с каким-либо предложением, договором, обязательством или же инвестиционным решением, связанными с ним, равно как и он не является рекомендацией относительно ценных бумаг компании.  Изложенная в данном документе информация не являлась предметом независимой проверки. В нем также не содержится каких-либо заверений или гарантий, сформулированных или подразумеваемых и никто не должен полагаться на достоверность, точность и полноту информации или мнения, изложенного здесь. Никто из Компании или каких-либо ее дочерних обществ или аффилированных лиц или их директоров, сотрудников или работников, консультантов или их представителей не принимает какой-либо ответственности (независимо от того, возникла ли она в результате халатности или чего-то другого), прямо или косвенно связанной с использованием этого документа или иным образом возникшей из него.  Данная презентация содержит прогнозные заявления. Все включенные в настоящую презентацию заявления, за исключением заявлений об исторических фактах, включая, но, не ограничиваясь, заявлениями, относящимися к нашему финансовому положению, бизнес-стратегии, планам менеджмента и целям по будущим операциям являются прогнозными заявлениями. Эти прогнозные заявления включают в себя известные и неизвестные риски, факторы неопределенности и иные факторы, которые могут стать причиной того, что наши нынешние показатели, достижения, свершения или же производственные показатели, будут существенно отличаться от тех, которые сформулированы или подразумеваются под этими прогнозными заявлениями. Данные прогнозные заявления основаны на многочисленных презумпциях относительно нашей нынешней и будущей бизнес-стратегии и среды, в которой мы ожидаем осуществлять свою деятельность в будущем. Важнейшими факторами, которые могут повлиять на наши нынешние показатели, достижения, свершения или же производственные показатели, которые могут существенно отличаться от тех, которые сформулированы или подразумеваются этими прогнозными заявлениями являются, помимо иных факторов, следующие:  восприятие рыночных услуг, предоставляемых Компанией и ее дочерними обществами;  волатильность (а) Российской экономики и рынка ценных бумаг и (b) секторов с высоким уровнем конкуренции, в которых Компания и ее дочерние общества осуществляют свою деятельность;  изменения в (a) отечественном и международном законодательстве и налоговом регулировании и (b) государственных программах, относящихся к финансовым рынкам и рынкам ценных бумаг;  ростом уровня конкуренции со стороны новых игроков на рынке России;  способность успевать за быстрыми изменениями в научно-технической среде, включая способность использовать расширенные функциональные возможности, которые популярны среди клиентов Компании и ее дочерних обществ;  способность сохранять преемственность процесса внедрения новых конкурентных продуктов и услуг, равно как и поддержка конкурентоспособности;  способность привлекать новых клиентов на отечественный рынок и в зарубежных юрисдикциях;  способность увеличивать предложение продукции в зарубежных юрисдикциях.  Прогнозные заявления делаются только на дату настоящей презентации, и мы точно отрицаем наличие любых обязательств по обновлению или пересмотру прогнозных заявлений в настоящей презентации в связи с изменениями наших ожиданий, или перемен в условиях или обстоятельствах, на которых основаны эти прогнозные заявления.