O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Как не сломать обратную
совместимость в Public API
Виктор Розаев
Odin (Ingram Micro Cloud)
vrozaev@odin.com
APS JS SDK и ISV
• APS JS SDK – это JavaScript фреймворк который мы разрабатываем
• ISV (Independent Software Vendor) – ст...
А их более 500!
Уже написанные приложения должны
работать!
2
Любое изменение вносить всё опаснее…
ПРОБЛЕМА
3
РЕШЕНИЕ
Тестирование!
4
Тестирование?!
Чем тестировать?
Как тестировать?
Что тестировать?
5
Что тестировать?
6
Public API
Визуальные компоненты (виджеты):
• Свойства
• Методы
Утилиты
• Работа с сетью
• Data store
• Help tools
7
Необходимо проверить
Свойства
• Значение по умолчанию
• Все сайд-эффекты от изменения значения
• Валидацию
Методы и событи...
Как тестировать?
9
Методики тестирования
Unit Tests
Functional Tests
Scenario Tests
10
Чем тестировать?
11
theintern.github.io
12
Не зависит от фреймворка
13
Какие типы тестов поддерживает Intern?
Unit Tests
Unit Tests
• ПоддерживаютсяBDD, TDD, QUnit
• Встроенная Chai Assertion L...
Различные стили декларации тестов
BDD ObjectiveInterface
TDD QUnit
15
Какие типы тестов поддерживает Intern?
Unit Tests
Unit Tests
• ПоддерживаютсяBDD, TDD, QUnit
• Встроенная Chai Assertion L...
Какие типы тестов поддерживает Intern?
Unit Tests
Unit Tests
• ПоддерживаютсяBDD, TDD, QUnit
• Встроенная Chai Assertion L...
Пример:
18
Какие типы тестов поддерживает Intern?
Unit Tests
Unit Tests
• ПоддерживаютсяBDD, TDD, QUnit
• Встроенная Chai Assertion L...
• Встроенныеинструменты для code coverage
• Поддержкаmulti-level source maps
• Интеграция с CI
• Расширяемость
• Интеграци...
Понимание тестирования
Чем тестировать— Intern
Как тестировать— Unit Tests,Functional Tests
Что тестировать — Public API
К...
Проверка по API coverage и LoC coverage:
22
Полученное покрытие тестами
Публичное API — 100%
По условиям — 84.5%
По строкам — 92.9%
23
• Изменения стали более контролируемыми.
• Изменилось качество багов.
• Код стал чище.
• Можно коммититьв пятницу вечером!...
На этом всё, спасибо!
Сайт: https://theintern.github.io
Демо проекты: https://github.com/theintern/intern-examples
Блог: h...
Próximos SlideShares
Carregando em…5
×

de

Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 1 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 2 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 3 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 4 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 5 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 6 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 7 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 8 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 9 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 10 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 11 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 12 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 13 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 14 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 15 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 16 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 17 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 18 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 19 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 20 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 21 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 22 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 23 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 24 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 25 Виктор Розаев - Как не сломать обратную совместимость в Public API Slide 26
Próximos SlideShares
Александр Русаков - TypeScript 2 in action
Avançar
Transfira para ler offline e ver em ecrã inteiro.

0 gostaram

Compartilhar

Baixar para ler offline

Виктор Розаев - Как не сломать обратную совместимость в Public API

Baixar para ler offline

Представьте что у вас есть публичный JavaScript API. Им пользуются сторонние девелоперы от Индии до Канады, чтобы писать свои облачные сервисы. Эти сервисы продают телекомуникационные компании с многомиллиардными оборотами превышающими стоимость вашей компании. Любая остановка сервиса - миллионные убытки. Представили? А нам и представлять не надо - это наша работа. Добро пожаловать в нашу реальность. В рамках доклада мы расскажем о том, как сохранить обратную совместимость при активном развитии и неизвестных пользователях, ну и причем тут вообще интерны.

  • Seja a primeira pessoa a gostar disto

Виктор Розаев - Как не сломать обратную совместимость в Public API

  1. 1. Как не сломать обратную совместимость в Public API Виктор Розаев Odin (Ingram Micro Cloud) vrozaev@odin.com
  2. 2. APS JS SDK и ISV • APS JS SDK – это JavaScript фреймворк который мы разрабатываем • ISV (Independent Software Vendor) – сторонние разработчики которые интегрируют новые сервисы в Odin Automation 1
  3. 3. А их более 500! Уже написанные приложения должны работать! 2
  4. 4. Любое изменение вносить всё опаснее… ПРОБЛЕМА 3
  5. 5. РЕШЕНИЕ Тестирование! 4
  6. 6. Тестирование?! Чем тестировать? Как тестировать? Что тестировать? 5
  7. 7. Что тестировать? 6
  8. 8. Public API Визуальные компоненты (виджеты): • Свойства • Методы Утилиты • Работа с сетью • Data store • Help tools 7
  9. 9. Необходимо проверить Свойства • Значение по умолчанию • Все сайд-эффекты от изменения значения • Валидацию Методы и события • Результат выполнения • Работу с некорректнымиаргументами • Безопасностьпереопределения • Порядоквыполнения • Контекстисполнения • Аргументы • Количество вызовов 8
  10. 10. Как тестировать? 9
  11. 11. Методики тестирования Unit Tests Functional Tests Scenario Tests 10
  12. 12. Чем тестировать? 11
  13. 13. theintern.github.io 12
  14. 14. Не зависит от фреймворка 13
  15. 15. Какие типы тестов поддерживает Intern? Unit Tests Unit Tests • ПоддерживаютсяBDD, TDD, QUnit • Встроенная Chai Assertion Library Functional Tests • Компенсация ошибок в WebDriver Benchmark Tests Accessibility Visual Regression 14
  16. 16. Различные стили декларации тестов BDD ObjectiveInterface TDD QUnit 15
  17. 17. Какие типы тестов поддерживает Intern? Unit Tests Unit Tests • ПоддерживаютсяBDD, TDD, QUnit • Встроенная Chai Assertion Library Functional Tests • Компенсация ошибок в WebDriver Benchmark Tests Accessibility Visual Regression 16
  18. 18. Какие типы тестов поддерживает Intern? Unit Tests Unit Tests • ПоддерживаютсяBDD, TDD, QUnit • Встроенная Chai Assertion Library Functional Tests • Компенсация ошибок в WebDriver Benchmark Tests Accessibility Visual Regression 17
  19. 19. Пример: 18
  20. 20. Какие типы тестов поддерживает Intern? Unit Tests Unit Tests • ПоддерживаютсяBDD, TDD, QUnit • Встроенная Chai Assertion Library Functional Tests • Компенсация ошибок в WebDriver Benchmark Tests Accessibility Visual Regression Benchmark Tests Accessibility Visual Regression 19
  21. 21. • Встроенныеинструменты для code coverage • Поддержкаmulti-level source maps • Интеграция с CI • Расширяемость • Интеграция с облачными системами • Автоматическая настройка локального Selenium • Тестированиемобильных приложений И многое другое! Полный список возможностей: theintern.github.io 20
  22. 22. Понимание тестирования Чем тестировать— Intern Как тестировать— Unit Tests,Functional Tests Что тестировать — Public API Кто это будет делать? Когда этим заниматься? Кто это будет делать — Все! Когда этим заниматься — В процессеразработки! 21
  23. 23. Проверка по API coverage и LoC coverage: 22
  24. 24. Полученное покрытие тестами Публичное API — 100% По условиям — 84.5% По строкам — 92.9% 23
  25. 25. • Изменения стали более контролируемыми. • Изменилось качество багов. • Код стал чище. • Можно коммититьв пятницу вечером! Что нам это дало? 24
  26. 26. На этом всё, спасибо! Сайт: https://theintern.github.io Демо проекты: https://github.com/theintern/intern-examples Блог: https://www.sitepen.com/blog/category/intern

Представьте что у вас есть публичный JavaScript API. Им пользуются сторонние девелоперы от Индии до Канады, чтобы писать свои облачные сервисы. Эти сервисы продают телекомуникационные компании с многомиллиардными оборотами превышающими стоимость вашей компании. Любая остановка сервиса - миллионные убытки. Представили? А нам и представлять не надо - это наша работа. Добро пожаловать в нашу реальность. В рамках доклада мы расскажем о том, как сохранить обратную совместимость при активном развитии и неизвестных пользователях, ну и причем тут вообще интерны.

Vistos

Vistos totais

776

No Slideshare

0

De incorporações

0

Número de incorporações

1

Ações

Baixados

1

Compartilhados

0

Comentários

0

Curtir

0

×