Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

116 views

Published on

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

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Виктор Розаев - Как не сломать обратную совместимость в 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

×