Представьте что у вас есть публичный JavaScript API. Им пользуются сторонние девелоперы от Индии до Канады, чтобы писать свои облачные сервисы. Эти сервисы продают телекомуникационные компании с многомиллиардными оборотами превышающими стоимость вашей компании. Любая остановка сервиса - миллионные убытки. Представили? А нам и представлять не надо - это наша работа. Добро пожаловать в нашу реальность. В рамках доклада мы расскажем о том, как сохранить обратную совместимость при активном развитии и неизвестных пользователях, ну и причем тут вообще интерны.
"Flexbox — гибче мыслишь, больше спишь", Алексей Чернышев, MoscowJS 24
Виктор Розаев - Как не сломать обратную совместимость в Public API
1. Как не сломать обратную
совместимость в Public API
Виктор Розаев
Odin (Ingram Micro Cloud)
vrozaev@odin.com
2. APS JS SDK и ISV
• APS JS SDK – это JavaScript фреймворк который мы разрабатываем
• ISV (Independent Software Vendor) – сторонние разработчики которые
интегрируют новые сервисы в Odin Automation
1
3. А их более 500!
Уже написанные приложения должны
работать!
2
9. Необходимо проверить
Свойства
• Значение по умолчанию
• Все сайд-эффекты от изменения значения
• Валидацию
Методы и события
• Результат выполнения
• Работу с некорректнымиаргументами
• Безопасностьпереопределения
• Порядоквыполнения
• Контекстисполнения
• Аргументы
• Количество вызовов
8
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. • Встроенныеинструменты для code coverage
• Поддержкаmulti-level source maps
• Интеграция с CI
• Расширяемость
• Интеграция с облачными системами
• Автоматическая настройка локального Selenium
• Тестированиемобильных приложений
И многое другое!
Полный список возможностей: theintern.github.io
20
22. Понимание тестирования
Чем тестировать— Intern
Как тестировать— Unit Tests,Functional Tests
Что тестировать — Public API
Кто это будет делать?
Когда этим заниматься?
Кто это будет делать — Все!
Когда этим заниматься — В процессеразработки!
21