GTAC 2016: Презентации

Вступительное слово

Мэтт Лоури (Google)

Эволюция деловой и инженерной производительности

Манаси Джоши (Google)

Ссылки: видео , слайды

В этом ключевом докладе мы постараемся познакомить всех с тем, как в Google развивалась инженерная дисциплина производительности, и как это было и является инструментом роста бизнеса Google для быстрого продвижения, сохранения стабильности и обеспечения большей уверенности в процессах разработки/выпуска/мониторинга. Мы также упоминаем о некоторых проблемах, с которыми мы сталкиваемся сегодня, и о новых горизонтах для тестирования кросс-платформенных продуктов с высокой степенью связи/вертикальных связей, через которые проходит Google.

Автоматизация управления роботом телеприсутствия

Таня Дженкинс (Cantilever Consulting)

Ссылки: видео , слайды

Тестирование управляющего интерфейса устройства телеприсутствия является сложной задачей. Он работает в реальном мире, взаимодействует с людьми и объектами, но должен быть протестирован в контролируемой среде. Как вы справляетесь с созданием реалистичной среды удаленного вождения, одновременно проверяя местоположение и положение устройства, когда вы его не видите? Я представлю инновационное решение.

Что в вашем кошельке?

Хима Мандали (Capital One)

Ссылки: видео , слайды

Capital One — одна из крупнейших компаний по выпуску кредитных карт в США с более чем 70 миллионами счетов. В Capital one мы создаем множество крутых продуктов, которые обеспечивают потрясающие цифровые возможности для наших клиентов. Поскольку мобильные устройства становятся предпочтительным каналом для наших клиентов, этот доклад будет посвящен тому, как мы решили проблему автоматизации тестирования мобильных веб-приложений и что мы сделали, чтобы ускорить конвейер доставки программного обеспечения. Мы также поделимся инструментами с открытым исходным кодом, которые мы использовали, и информационной панелью с открытым исходным кодом, которую мы создали для решения наших проблем.

Использование статистики автоматизации тестов, чтобы предсказать, какие тесты нужно запускать

Борис Приходький (Unity Technologies)

Ссылки: видео , слайды

Тесты стали жизненно важной частью процессов разработки приложений, но что делать, если когда-то спаситель стал узким местом в повседневной жизни. Здесь мы делимся нашим опытом о том, что мы делали, когда у нас было 3-6 часов ожидания для запуска тестовой конфигурации. В этом докладе представлен простой, но мощный подход, который экономит драгоценное время на запуск вечно зеленых тестов на ферме сборки и тестирования. Также рассматриваются возможные пути улучшения процесса.

Автоматизация тестирования на основе Selenium для Windows и Windows Phone

Николай Абалов (2gis)

Ссылки: видео , слайды

Есть Selenium для автоматизации тестирования веб-приложений. Есть Appium для мобильных приложений на iOS и Android. Но для Windows Desktop и Windows Phone/Mobile нам пришлось придумать собственное решение на основе Selenium. Так был создан Виниум. Winium — это решение с открытым исходным кодом для автоматизации тестирования приложений Windows Desktop и Windows Phone/Mobile. Winium основан на Selenium, поэтому начать использовать его для ваших нужд автоматизации должно быть относительно легко, если вы уже знакомы с Selenium или Appium, его можно интегрировать в существующую инфраструктуру Selenium. В докладе я представлю проекты, из которых состоит Winium, и продемонстрирую Winium.Desktop и Winium.Mobile в действии.

Более причудливая сторона тестирования

Брайан Ванпи (Google)

Ссылки: видео , слайды

Не все ошибки одинаковы. Иногда виноваты странности языков программирования, которые мы используем, и их обнаружение часто ставит в тупик даже лучших программистов и тестировщиков. Присоединяйтесь к нам, чтобы весело взглянуть на причудливую сторону тестирования, показав несколько отобранных примеров из многих языков, которые мы используем каждый день. Наконец, мы бросим вам вызов, чтобы вы попытались угадать причуду, поскольку мы представляем серию странных примеров, найденных в таких языках, как C, Java, Objective-C, PHP и всеми любимый - JavaScript.

Алгоритм машинного обучения для настройки мобильной тестовой среды

Раджкумар Бходжан (Технологии Wipro)

Ссылки: видео , слайды

В связи с быстрым развитием технологий мобильных вычислений существует значительный спрос на тестирование мобильных приложений на мобильных устройствах. Управление мобильными устройствами играет жизненно важную роль в тестировании мобильных приложений, и понимание проблем в управлении мобильными устройствами так же важно, как и их решение. Чтобы избежать проблем, связанных с конкретным устройством, разработчики автоматизации тестирования должны тестировать свои приложения на большом количестве устройств, что является дорогостоящим и неэффективным. В этом докладе мы покажем, как алгоритм машинного обучения может определить правильный набор устройств для настройки мобильной тестовой среды.

"Ты слышишь меня?" - Тестирование качества звука на выживание

Александр Браукман и Дэн Хислоп (Citrix)

Ссылки: видео , слайды

IATF: новая автоматизированная кроссплатформенная среда тестирования API для нескольких устройств.

Янбин Чжан (Intel)

Ссылки: видео , слайды

Чтобы облегчить внедрение технологии WebRTC и сделать ее широко доступной для расширения или создания новых приложений, корпорация Intel разработала комплексное решение WebRTC — Intel® Collaboration Suite for WebRTC. В настоящее время Intel уже создает растущую экосистему Intel® Collaboration Suite для WebRTC по всему миру. Сотрудничество охватывает различные области, включая образование, медицину, отраслевые облачные технологии, онлайн-вещание в социальных сетях, видеоконференции, носимые устройства и т. д. Быстрорастущее число поддерживаемых платформ для SDK API приводит к взрывному увеличению усилий по межплатформенной совместимости и интеграционному тестированию. Как автоматически тестировать совместимость этих различных SDK на разных платформах, становится большой проблемой. В этом докладе мы представим нашу автоматизированную кросс-платформенную платформу тестирования API для нескольких устройств — IATF. Его можно использовать для любого кросс-платформенного тестирования SDK и тестирования нескольких устройств, которое требует взаимодействия между различными платформами.

Использование анализа формальных концепций в тестировании программного обеспечения

Федор Строк (Яндекс/НИУ ВШЭ)

Ссылки: видео , слайды

Анализ формальных понятий предоставляет нам набор инструментов для построения формальной онтологии над набором объектов с описаниями (выраженными в виде набора атрибутов). Эта ветвь алгебраической теории была введена в 1984 году и в настоящее время применяется для решения широкого круга задач интеллектуального анализа данных. Этот доклад посвящен методам, которые могут быть особенно полезны при тестировании программного обеспечения: использованию формальной онтологии для создания удобных отчетов о тестировании и полуавтоматической генерации тестовых сценариев.

Как ненадежные тесты в непрерывной интеграции: текущая практика в Google и будущие направления

Джон Микко (Google)

и

Атиф Мемон (Университет Мэриленда, Колледж-Парк)

Ссылки: видео , слайды

У Google есть огромный набор тестов, которые мы постоянно запускаем в нашей массивной системе непрерывной интеграции. Глядя на эти данные, мы обнаруживаем, что ненадежные тесты вызывают у нас много потерь в нескольких различных измерениях. Мы работаем над тем, чтобы улучшить нашу способность понимать воздействие, обнаруживать и смягчать присущий уровень ненадежности, который мы наблюдаем в нашей системе.

Опыт разработчиков, FTW!

Ниранджан Тулпуле (Google)

Ссылки: видео , слайды

Геораспределенная тестовая ферма на основе Docker — практика тестовой инфраструктуры в программе Intel для Android

Джерри Ю (Intel) и Гобин Чен (Intel)

Ссылки: видео , слайды

OpenHTF — среда тестирования оборудования с открытым исходным кодом

Джо Этье (Google) и Джон Хоули (Google)

Ссылки: видео , слайды

Направленная генерация тестов для обнаружения неэффективности цикла

Моника Дхок (Индийский научный институт)

Ссылки: видео , слайды

Избыточный обход циклов был определен как источник ошибок производительности во многих библиотеках Java. Это привело к разработке методов статического и динамического анализа для автоматического обнаружения этих ошибок производительности. Однако, хотя эффективность динамического анализа зависит от проанализированных входных тестов, статический анализ менее эффективен для автоматической проверки наличия этих проблем, проверки исправлений и предотвращения регрессий в будущих версиях. Мы предлагаем новый подход к автоматической генерации тестов для обнаружения неэффективности циклов в библиотеках Java. В докладе дается краткий обзор этой работы.

Need for Speed: ускорьте выполнение автоматизированных тестов с 3 часов до 3 минут

Эмануил Славов (Komfo Inc)

Ссылки: видео , слайды

Все высокоуровневые автоматизированные тесты медленны для сегодняшней быстро меняющейся среды с первоклассной маркировкой. Это слон в комнате, которого все игнорируют. И по уважительной причине. Создание быстрых, надежных и полезных автоматизированных тестов — тяжелая работа. Однако у вас нет выбора — с медленными автоматическими тестами вы просто быстрее отправляете дерьмо своим клиентам. В Komfo мы проводили тесты более 3 часов каждую ночь. Время выполнения росло без ограничений. Тесты становились нестабильными и непригодными для использования в качестве петли обратной связи. В какой-то момент тесты не удавались более 20 дней подряд. Ошибки регрессии начали появляться в продакшене. Мы решили остановить это безумие, и после значительных усилий и самоотверженности в настоящее время те же самые тесты выполняются менее чем за 3 минуты. Это история о непрерывном улучшении того, как мы добились ускорения тестов в 60 раз.

Покрытие кода — сильный показатель эффективности набора тестов в реальном мире

Рахул Гопинат (Университет штата Орегон)

Ссылки: видео , слайды

ClusterRunner: упрощение быстрой обратной связи за счет горизонтального масштабирования

Тэджун Ли (Box Inc.) и Джозеф Харрингтон (Box Inc.)

Ссылки: видео , слайды

Box выполняет около тридцати часов модульных и интеграционных тестов для каждого коммита. Мы распараллеливаем их, чтобы они выполнялись менее чем за 17 минут, используя нашу тестовую платформу распространения с открытым исходным кодом ClusterRunner. Почему у Box так много тестов? Как работает ClusterRunner? Легко ли настроить ClusterRunner для собственных тестов? (Спойлер: да.) ClusterRunner обеспечивает невероятно быструю обратную связь при тестировании как за счет распараллеливания тестов на одном хосте, так и за счет их распределения по множеству хостов. Мы используем ClusterRunner, разработанный командой инженеров по повышению производительности Box, для выполнения набора из более чем тридцати линейных часов тестов за 17 минут, и мы делаем это сотни раз каждый день. ClusterRunner имеет открытый исходный код и не зависит от языка, поэтому вы можете легко использовать его для своего собственного проекта. Мы создали ClusterRunner для инженерных групп, которые борются с длительными задержками обратной связи при тестировании или недостаточно протестированным кодом. Мы разработали его снизу вверх, чтобы он был простым в использовании и может интегрироваться с вашей существующей системой CI. Он узнает, сколько времени требуется для выполнения ваших тестов, и планирует будущие запуски в соответствии с этим, чтобы предоставить обратную связь как можно быстрее. Его компоненты взаимодействуют через дружественный REST API, что делает его доступным и расширяемым.

Интеграционное тестирование с несколькими мобильными устройствами и службами

Александр Дорохин (Google) и Энг Ли (Google)

Ссылки: видео , слайды

Mobly — это разработанная Google платформа с открытым исходным кодом для тестирования продуктов, требующих взаимодействия между несколькими устройствами, например социальных приложений; или тесты, требующие управления тестовой средой, например, соединение Wi-Fi. Мы обсудим, чем тестирование на нескольких устройствах отличается от тестирования на одном устройстве, и его уникальные проблемы, такие как синхронизация и поток кода между несколькими устройствами, и как их решает Mobly.

Масштаб против ценности: автоматизация тестирования на BBC

Джитеш Госаи (BBC) и Дэвид Бакхерст (BBC)

Ссылки: видео , слайды

Мы создали собственное облако устройств с открытым исходным кодом для масштабного тестирования наших мобильных и телевизионных приложений, но оно довольно быстро превратилось в монстра, который заставил нас переосмыслить наш подход к автоматизации и найти правильный баланс между масштабом и ценностью. Узнайте, как мы решили проблемы тестирования на устройстве с помощью целенаправленной автоматизации и совместного владения. Также узнайте, как создать собственное внутреннее облако устройств и использовать наши инструменты с открытым исходным кодом.

Поиск ошибок в библиотеках C++ с помощью LibFuzzer

Костя Серебряный (Google)

Ссылки: видео , слайды

Как я научился краш-тестировать сервер

Джонатан Абрахамс (MongoDB)

Ссылки: видео , слайды

Узнайте, как мы проверяли надежность сервера MongoDB, чтобы выдержать различные сценарии сбоя системы. Узнайте, как нам удалось автоматизировать аварийное завершение работы сервера с любым типом ОС и конфигурацией хоста (физического или виртуального).