GTAC 2015: Презентации,GTAC 2015: Презентации

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

Иветт Намет (Google)

Вступительный доклад

Юрген Альгайер (Google)

Uber Challenge кросс-приложения / кросс-девайсного тестирования

Эппл Чоу (Uber) и Бянь Цзян (Uber)

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

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

Автоматизация тестирования с помощью роботов

Ханс Куосманен (OptoFidelity) и Наталья Лейнонен (OptoFidelity)

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

OptoFidelity — финская высокотехнологичная компания с 10-летним опытом разработки и предоставления решений для автоматизации тестирования. Этот доклад будет включать в себя наш опыт и будущие перспективы методов неинтрузивного тестирования, используемых при тестировании производительности пользовательского интерфейса мобильных устройств. Знаете ли вы, что команда разработчиков Chrome OS использует роботизированное решение от OptoFidelity для измерения сквозной задержки устройств Android и ChromeOS?

Жонглирование бензопилами ради удовольствия и прибыли: уроки, извлеченные из тестирования мобильной кроссплатформенной интеграции

Дэн Джованнелли (Google)

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

Мобильная разработка — это сложно. Создать тестовую инфраструктуру сложно. Работать кроссплатформенно сложно. Объедините три, и у вас есть рецепт катастрофы. В этом выступлении Дэн Джованнелли поделится своим опытом работы над проектом кроссплатформенной мобильной тестовой инфраструктуры. Он обсудит, что получилось правильно, что пошло (крайне) неправильно, и что он хотел бы теперь, когда он знал это с самого начала. Приходите, чтобы узнать о разработке мобильных инструментов для немобильных инженеров, оставайтесь, чтобы узнать, что же такое, черт возьми, «Матрица» и как победить ее в ее собственной игре.

Автоматизация тестирования мобильных игр с использованием реальных устройств

Йоуко Каасила (Bitbar/Testdroid)

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

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

К счастью, есть способы использовать стандартные среды автоматизации тестирования мобильных устройств для автоматизации тестирования на реальных мобильных устройствах для игр, используя творческий подход и общедоступные библиотеки. В своей презентации Йоуко Каасила из Testdroid обсудит три различных подхода с примерами из реального мира и некоторыми примерами кода.

Как проверить компоненты супа с клецками

Тони Чанг (Google)

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

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

Я проведу вас через увлекательное путешествие по переводу E2E-тестирования в компонентное тестирование, которое придаст вам уверенности в конечном продукте. Надеюсь, это даст вам свежий взгляд на ваш собственный продукт.

Автоматизация тестирования Chromecast

Брайан Гоган (Google)

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

Интернет вещей привел к распространению подключенных устройств. Проверка поведения на различных взаимодействующих устройствах является серьезной проблемой тестирования. Для тестирования Chromecast было использовано несколько подходов. Мы описываем тестовые структуры, лабораторную инфраструктуру и инструменты тестирования, которые мы разработали для получения надежных сигналов качества от продукта. Мы подробно описываем проблемы тестирования продукта, работающего в шумной сетевой среде. Мы предполагаем, что инструменты тестирования для таких устройств, как Chromecast, находятся в зачаточном состоянии и открывают возможности для инноваций в разработке тестирования программного обеспечения.

Использование роботов для тестирования приложений Android

Доктор Шаувик Рой Чоудхари (Технологический институт Джорджии/Checkdroid)

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

Программные роботы, такие как Monkey, можно использовать для тестирования приложений Android без особых усилий вручную. В академических кругах предложено несколько таких инструментов, целью которых является автоматическое создание тестовых входных данных для управления приложениями Android. В этом выступлении я представлю набор репрезентативных инструментов генерации тестовых входных данных и представлю сравнительное исследование, чтобы выделить их сильные и слабые стороны. Вы узнаете о внутреннем устройстве этих инструментов и о том, как их можно использовать для тестирования своего приложения. Подробности исследования вместе с настройкой виртуальной машины с инструментами доступны по адресу: http://bear.cc.gatech.edu/~shauvik/androtest/

Ваши тесты не ошибаются

Алистер Скотт (Automattic)

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

Ненадежные тесты — главная проблема любого инженера по автоматизированному тестированию; как кто-то (вероятно, Алистер) однажды сказал: «Безумие — это проводить одни и те же тесты снова и снова и получать разные результаты». Ненадежные тесты вызывают безграничное отчаяние, но, возможно, не существует такого понятия, как ненадежный или ненадежный тест, возможно, нам нужно посмотреть на эту проблему через другую призму. Мы должны тратить больше времени на создание более детерминированных, более тестируемых систем, чем тратить время на создание устойчивых и устойчивых тестов. Алистер поделится несколькими примерами того, как ненадежность тестов скрывала реальные проблемы внутри системы, и как можно решить проблему ненадежности тестов, создав более совершенные системы.

Крупномасштабное автоматизированное визуальное тестирование

Адам Карми (Applitools)

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

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

Руки прочь от регрессионного тестирования

Карин Лундберг (Твиттер) и Пунит Хандури (Твиттер)

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

Ваша команда только что завершила основной рефакторинг службы, и все ваши модульные и интеграционные тесты пройдены. Хорошая работа! Но вы еще не закончили. Теперь вам нужно дополнительно убедиться, что вы ничего не сломали и что нет скрытых ошибок, которые вы еще не поймали. Пришло время заставить Диффи работать.

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

Кроме того, мы только что предоставили инструмент с открытым исходным кодом, и он быстро становится одним из самых популярных среди проектов Twitter с открытым исходным кодом.

Автоматизированное тестирование доступности для приложений Android

Кейси Буркхардт (Google)

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

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

Статистическая выборка данных

Джелал Зифтчи (Google) и Бен Гринберг (аспирант Массачусетского технологического института)

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

Общепринятой практикой является использование выборки производственных данных в тестах. Примеры:

  • Проверка работоспособности: загрузите образец производственных данных в свою систему, чтобы проверить, нет ли каких-либо сбоев.
  • A/B-тест: возьмите большой кусок производственных данных, пропустите его через текущую и новую версии вашей системы и сравните выходные данные для проверки.

Чтобы получить образец производственных данных, команды обычно используют специальные решения, такие как:

  • Вручную просматривая распределение определенных полей (например, числовых полей),
  • Выбор абсолютно случайной выборки

Однако у этих подходов есть серьезный недостаток: они могут упускать редкие события (например, пограничные случаи), что увеличивает риск появления неуловимых ошибок в рабочей среде. Чтобы снизить этот риск, команды выбирают очень большие выборки. Однако при таких больших выборках минусов еще больше:

  • Редкие события все еще можно пропустить,
  • Время выполнения тестов значительно увеличивается,
  • Различия слишком велики для понимания человеком, и в них много повторений.

В этом докладе мы предлагаем новый метод выборки статистических данных, чтобы «умно» выбрать «хорошую» выборку из производственных данных, которая:

  • Гарантирует, что редкие события не будут пропущены,
  • Минимизирует размер выбранного образца, удаляя дубликаты.

Наша методика выявляет редкие/пограничные случаи, сводит размер выборки к минимуму и неявно снижает ручное бремя просмотра выходных данных/отличий теста для разработчиков. Он также поддерживает параллельное выполнение (например, MapReduce), так что огромные объемы данных могут быть обработаны за короткий промежуток времени для выбора выборки.

Инфраструктура автоматизации Nest

Усман Абдулла (Гнездо), Джулия Гуиди (Гнездо) и Сэм Гордон (Гнездо)

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

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

Генераторы событий

Русси Руссев (Splunk)

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

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

Многопоточный синтез тестов

Мурали Кришна Раманатан (Индийский научный институт, Бангалор)

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

Незначительные ошибки параллелизма в многопоточных библиотеках, возникающие из-за неправильной или неадекватной синхронизации, часто трудно точно определить, используя только статические методы. С другой стороны, эффективность динамических детекторов критически зависит от многопоточных наборов тестов, выполнение которых может использоваться для выявления и запуска ошибок параллелизма, включая гонки данных, взаимоблокировки и нарушения атомарности. Обычно такие многопоточные тесты должны вызывать определенную комбинацию методов с объектами, участвующими в вызовах, совместно используемыми для выявления ошибки. Без априорного знания об ошибке построение таких тестов может оказаться сложной задачей.

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

Включение потоковых экспериментов в Netflix

Минал Мишра (Netflix)

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

Опыт потокового вещания 69+ миллионов пользователей имеет первостепенное значение для Netflix. Чтобы быстро улучшить это, мы переместили алгоритмы адаптивной потоковой передачи на уровень Javascript. Это создало уникальную проблему, связанную с частым выпуском клиентского программного обеспечения javascript, которое напрямую влияло на возможности потоковой передачи для потребителей. Заимствуя парадигму непрерывной доставки, которая была широко и успешно принята для сервисных приложений, мы использовали ее для устранения риска в течение жизненного цикла возврата и частой доставки обновлений. В этом докладе мы опишем ключевой компонент этой парадигмы, позволяющий обновлять программное обеспечение. Мы углубимся в процедуру развертывания клиента javascript и инструментов, чтобы точно сравнить работоспособность с текущей версией. Мы также расскажем о проблемах, с которыми сталкивается этот процесс.

Издеваться над Интернетом

Ябин Кан (LinkedIn)

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

Mock the internet, говоря о новой системе имитации в Linkedin, которая помогает имитировать весь исходящий трафик для интеграционных тестов на уровне обслуживания, также немного расскажу об обзоре стратегии Linkedin Mocking. Поделитесь знаниями и тем, что мы узнали, со всеми.

Эффективное тестирование приемника станции мониторинга GPS

Эндрю Нодт (Lockheed Martin)

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

Существующие станции GPS-мониторинга, используемые ВВС, стало сложно обслуживать, и предпринимаются попытки заменить их подходом Software Defined Radio (SDR) с ускорением на графическом процессоре. Будет представлен обзор уникальных задач тестирования этого специализированного GPS-приемника, а также рассмотрение нескольких подходов к тестированию. Несмотря на то, что эти подходы к тестированию ориентированы на приложение GPS, их можно легко применить к другим усилиям SDR производственного уровня.

Автоматизация на носимых устройствах

Анураг Рутрой (Intel)

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

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

Унифицированное тестирование интеграции Infra и CI (Docker/Vagrant)

Максим Генис (Сверхзвуковой)

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

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

  • Использование Docker в интеграционных тестах CI
  • Управление стеком вместо одного докера или приложения.
  • Контроль версий сред разработки и тестирования, легко распространяемый с помощью инструментов git и docker.
  • Полная поддержка запуска Dockers на Mac и Windows.

Устранение бесполезных тестовых битов

Патрик Лэм (Университет Ватерлоо)

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

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

Покрытие не сильно коррелирует с эффективностью набора тестов

Лаура Иноземцева (Университет Ватерлоо)

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

Покрытие набора тестов часто используется в качестве показателя его способности обнаруживать ошибки. Однако в предыдущих исследованиях, в которых изучалась корреляция между охватом кода и эффективностью набора тестов, не удалось прийти к единому мнению о характере и силе взаимосвязи между этими характеристиками набора тестов. Более того, многие исследования проводились с использованием небольших или синтетических программ, из-за чего неясно, распространяются ли их результаты на более крупные программы, а в некоторых исследованиях не учитывалось искажающее влияние размера набора тестов. Мы расширили эти исследования, оценив взаимосвязь между размером набора тестов, охватом и эффективностью для реалистичных программ Java; наше исследование является крупнейшим на сегодняшний день в литературе. Мы измерили охват операторов, охват решений и охват измененных условий этих наборов и использовали мутационное тестирование для оценки их эффективности обнаружения ошибок. Мы обнаружили, что существует низкая или умеренная корреляция между охватом и эффективностью при контроле количества тестовых случаев в наборе. Кроме того, мы обнаружили, что более сильные формы охвата не обеспечивают более глубокого понимания эффективности пакета.

Поддельные серверные части с RpcReplay

Мэтт Гаррет (Google)

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

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

Лаборатория автоматизации тестирования ChromeOS

Симран Баси (Google) и Крис Соса (Google)

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

ChromeOS в настоящее время поставляет более 60 различных Chromebook/боксов, каждая из которых работает со своим собственным программным обеспечением. В полевых условиях клиенты получают новую систему каждые 6 недель. Это было бы невозможно без надежной системы непрерывной интеграции, контролирующей проверку более чем 200 наших разработчиков. В этом докладе мы опишем общую архитектуру с особым акцентом на нашу лабораторию по автоматизации тестирования. Кроме того, мы обсуждаем Moblab (сокращение от «мобильная (тестовая) лаборатория»), всю нашу инфраструктуру автоматизации тестирования, работающую с одного Chromebox. Эту систему используют многие наши партнеры, чтобы они тоже могли проводить тесты так же, как это делаем мы.

,

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

Иветт Намет (Google)

Вступительный доклад

Юрген Альгайер (Google)

Uber Challenge кросс-приложения / кросс-девайсного тестирования

Эппл Чоу (Uber) и Бянь Цзян (Uber)

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

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

Автоматизация тестирования с помощью роботов

Ханс Куосманен (OptoFidelity) и Наталья Лейнонен (OptoFidelity)

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

OptoFidelity — финская высокотехнологичная компания с 10-летним опытом разработки и предоставления решений для автоматизации тестирования. Этот доклад будет включать в себя наш опыт и будущие перспективы методов неинтрузивного тестирования, используемых при тестировании производительности пользовательского интерфейса мобильных устройств. Знаете ли вы, что команда разработчиков Chrome OS использует роботизированное решение от OptoFidelity для измерения сквозной задержки устройств Android и ChromeOS?

Жонглирование бензопилами ради удовольствия и прибыли: уроки, извлеченные из тестирования мобильной кроссплатформенной интеграции

Дэн Джованнелли (Google)

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

Мобильная разработка — это сложно. Создать тестовую инфраструктуру сложно. Работать кроссплатформенно сложно. Объедините три, и у вас есть рецепт катастрофы. В этом выступлении Дэн Джованнелли поделится своим опытом работы над проектом кроссплатформенной мобильной тестовой инфраструктуры. Он обсудит, что получилось правильно, что пошло (крайне) неправильно, и что он хотел бы теперь, когда он знал это с самого начала. Приходите, чтобы узнать о разработке мобильных инструментов для немобильных инженеров, оставайтесь, чтобы узнать, что же такое, черт возьми, «Матрица» и как победить ее в ее собственной игре.

Автоматизация тестирования мобильных игр с использованием реальных устройств

Йоуко Каасила (Bitbar/Testdroid)

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

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

К счастью, есть способы использовать стандартные среды автоматизации тестирования мобильных устройств для автоматизации тестирования на реальных мобильных устройствах для игр, используя творческий подход и общедоступные библиотеки. В своей презентации Йоуко Каасила из Testdroid обсудит три различных подхода с примерами из реального мира и некоторыми примерами кода.

Как проверить компоненты супа с клецками

Тони Чанг (Google)

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

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

Я проведу вас через увлекательное путешествие по переводу E2E-тестирования в компонентное тестирование, которое придаст вам уверенности в конечном продукте. Надеюсь, это даст вам свежий взгляд на ваш собственный продукт.

Автоматизация тестирования Chromecast

Брайан Гоган (Google)

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

Интернет вещей привел к распространению подключенных устройств. Проверка поведения на различных взаимодействующих устройствах является серьезной проблемой тестирования. Для тестирования Chromecast было использовано несколько подходов. Мы описываем тестовые структуры, лабораторную инфраструктуру и инструменты тестирования, которые мы разработали для получения надежных сигналов качества от продукта. Мы подробно описываем проблемы тестирования продукта, работающего в шумной сетевой среде. Мы предполагаем, что инструменты тестирования для таких устройств, как Chromecast, находятся в зачаточном состоянии и открывают возможности для инноваций в разработке тестирования программного обеспечения.

Использование роботов для тестирования приложений Android

Доктор Шаувик Рой Чоудхари (Технологический институт Джорджии/Checkdroid)

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

Программные роботы, такие как Monkey, можно использовать для тестирования приложений Android без особых усилий вручную. В академических кругах предложено несколько таких инструментов, целью которых является автоматическое создание тестовых входных данных для управления приложениями Android. В этом выступлении я представлю набор репрезентативных инструментов генерации тестовых входных данных и представлю сравнительное исследование, чтобы выделить их сильные и слабые стороны. Вы узнаете о внутреннем устройстве этих инструментов и о том, как их можно использовать для тестирования своего приложения. Подробности исследования вместе с настройкой виртуальной машины с инструментами доступны по адресу: http://bear.cc.gatech.edu/~shauvik/androtest/

Ваши тесты не ошибаются

Алистер Скотт (Automattic)

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

Ненадежные тесты — главная проблема любого инженера по автоматизированному тестированию; как кто-то (вероятно, Алистер) однажды сказал: «Безумие — это проводить одни и те же тесты снова и снова и получать разные результаты». Ненадежные тесты вызывают безграничное отчаяние, но, возможно, не существует такого понятия, как ненадежный или ненадежный тест, возможно, нам нужно посмотреть на эту проблему через другую призму. Мы должны тратить больше времени на создание более детерминированных, более тестируемых систем, чем тратить время на создание устойчивых и устойчивых тестов. Алистер поделится несколькими примерами того, как ненадежность тестов скрывала реальные проблемы внутри системы, и как можно решить проблему ненадежности тестов, создав более совершенные системы.

Крупномасштабное автоматизированное визуальное тестирование

Адам Карми (Applitools)

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

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

Руки прочь от регрессионного тестирования

Карин Лундберг (Твиттер) и Пунит Хандури (Твиттер)

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

Ваша команда только что завершила основной рефакторинг службы, и все ваши модульные и интеграционные тесты пройдены. Хорошая работа! Но вы еще не закончили. Теперь вам нужно дополнительно убедиться, что вы ничего не сломали и что нет скрытых ошибок, которые вы еще не поймали. Пришло время заставить Диффи работать.

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

Кроме того, мы только что предоставили инструмент с открытым исходным кодом, и он быстро становится одним из самых популярных среди проектов Twitter с открытым исходным кодом.

Автоматизированное тестирование доступности для приложений Android

Кейси Буркхардт (Google)

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

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

Статистическая выборка данных

Джелал Зифтчи (Google) и Бен Гринберг (аспирант Массачусетского технологического института)

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

Общепринятой практикой является использование выборки производственных данных в тестах. Примеры:

  • Проверка работоспособности: загрузите образец производственных данных в свою систему, чтобы проверить, нет ли каких-либо сбоев.
  • A/B-тест: возьмите большой кусок производственных данных, пропустите его через текущую и новую версии вашей системы и сравните выходные данные для проверки.

Чтобы получить образец производственных данных, команды обычно используют специальные решения, такие как:

  • Вручную просматривая распределение определенных полей (например, числовых полей),
  • Выбор абсолютно случайной выборки

Однако у этих подходов есть серьезный недостаток: они могут упускать редкие события (например, пограничные случаи), что увеличивает риск появления неуловимых ошибок в рабочей среде. Чтобы снизить этот риск, команды выбирают очень большие выборки. Однако при таких больших выборках минусов еще больше:

  • Редкие события все еще можно пропустить,
  • Время выполнения тестов значительно увеличивается,
  • Различия слишком велики для понимания человеком, и в них много повторений.

В этом докладе мы предлагаем новый метод выборки статистических данных, чтобы «умно» выбрать «хорошую» выборку из производственных данных, которая:

  • Гарантирует, что редкие события не будут пропущены,
  • Минимизирует размер выбранного образца, удаляя дубликаты.

Наша методика выявляет редкие/пограничные случаи, сводит размер выборки к минимуму и неявно снижает ручное бремя просмотра выходных данных/отличий теста для разработчиков. Он также поддерживает параллельное выполнение (например, MapReduce), так что огромные объемы данных могут быть обработаны за короткий промежуток времени для выбора выборки.

Инфраструктура автоматизации Nest

Усман Абдулла (Гнездо), Джулия Гуиди (Гнездо) и Сэм Гордон (Гнездо)

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

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

Генераторы событий

Русси Руссев (Splunk)

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

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

Многопоточный синтез тестов

Мурали Кришна Раманатан (Индийский научный институт, Бангалор)

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

Незначительные ошибки параллелизма в многопоточных библиотеках, возникающие из-за неправильной или неадекватной синхронизации, часто трудно точно определить, используя только статические методы. С другой стороны, эффективность динамических детекторов критически зависит от многопоточных наборов тестов, выполнение которых может использоваться для выявления и запуска ошибок параллелизма, включая гонки данных, взаимоблокировки и нарушения атомарности. Обычно такие многопоточные тесты должны вызывать определенную комбинацию методов с объектами, участвующими в вызовах, совместно используемыми для выявления ошибки. Без априорного знания об ошибке построение таких тестов может оказаться сложной задачей.

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

Включение потоковых экспериментов в Netflix

Минал Мишра (Netflix)

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

Опыт потокового вещания 69+ миллионов пользователей имеет первостепенное значение для Netflix. Чтобы быстро улучшить это, мы переместили алгоритмы адаптивной потоковой передачи на уровень Javascript. Это создало уникальную проблему, связанную с частым выпуском клиентского программного обеспечения javascript, которое напрямую влияло на возможности потоковой передачи для потребителей. Заимствуя парадигму непрерывной доставки, которая была широко и успешно принята для сервисных приложений, мы использовали ее для устранения риска в течение жизненного цикла возврата и частой доставки обновлений. В этом докладе мы опишем ключевой компонент этой парадигмы, позволяющий обновлять программное обеспечение. Мы углубимся в процедуру развертывания клиента javascript и инструментов, чтобы точно сравнить работоспособность с текущей версией. Мы также расскажем о проблемах, с которыми сталкивается этот процесс.

Издеваться над Интернетом

Ябин Кан (LinkedIn)

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

Mock the internet, talking about a new mocking system in Linkedin that helps to mock all the outbound traffic for service level integration tests, will also talk a little bit about the overview of Linkedin Mocking strategy. Share the knowledge and what we learnt with everyone.

Effective Testing of a GPS Monitoring Station Receiver

Andrew Knodt (Lockheed Martin)

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

The existing GPS monitoring stations used by the Air Force have become difficult to maintain and an effort is underway to replace them with a GPU accelerated Software Defined Radio (SDR) approach. An overview of the unique testing challenges of this specialized GPS receiver along with an examination of several testing approaches will be presented. While focused on a GPS application, these testing approaches could easily be applied to other production level SDR efforts.

Automation on Wearable Devices

Anurag Routroy (Intel)

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

As wearable technology is on the rise in personal and business use, all the companies which have a solid space in the Android market have switched their focus on this upcoming technology. Thus creating their apps with wearable support, which also increases the effort to test their app on the wearable devices. Hence automation on the wearables becomes important to reduce testing effort and increase efficiency.

Unified Infra and CI Integration Testing (Docker/Vagrant)

Maxim Guenis (Supersonic)

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

Developers struggle every day to have a working local development environment ready when developing, debugging and going through the continues integration cycle.We can to solve that by integrating docker and vagrant to be used with CI tool. This combination allows to control applications at stack level on development machines, while able to use the same stack in integration tests. In this talk we will discuss:

  • Use of Docker in CI integration tests
  • Control of stack instead of single docker or app.
  • Version control of development and test environments, easily ddistributed with git and docker tools.
  • Seamless support for running Dockers on Mac and windows.

Eliminating Useless Test Bits

Патрик Лэм (Университет Ватерлоо)

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

Specializing static analysis techniques for test suites has yielded interesting results. We've previously learned that most tests are simple straight-line code, namely a sequence of setup statements followed by a payload consisting of asserts. We show how static analysis can identify useless setup statements, enabling developers to simplify and speed up their test cases.

Coverage is Not Strongly Correlated with Test Suite Effectiveness

Laura Inozemtseva (University of Waterloo)

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

The coverage of a test suite is often used as a proxy for its ability to detect faults. However, previous studies that investigated the correlation between code coverage and test suite effectiveness have failed to reach a consensus about the nature and strength of the relationship between these test suite characteristics. Moreover, many of the studies were done with small or synthetic programs, making it unclear whether their results generalize to larger programs, and some of the studies did not account for the confounding influence of test suite size. We have extended these studies by evaluating the relationship between test suite size, coverage, and effectiveness for realistic Java programs; our study is the largest to date in the literature. We measured the statement coverage, decision coverage, and modified condition coverage of these suites and used mutation testing to evaluate their fault detection effectiveness. We found that there is a low to moderate correlation between coverage and effectiveness when the number of test cases in the suite is controlled for. In addition, we found that stronger forms of coverage do not provide greater insight into the effectiveness the suite.

Fake Backends with RpcReplay

Matt Garrett (Google)

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

Keeping tests fast and stable is critically important. This is hard when servers depend on many backends. Developers must choose between long and flaky tests, or writing and maintaining fake implementations. Instead, tests can be run using recorded traffic from these backends. This provides the best of both worlds, allowing developers to test quickly against real backends.

ChromeOS Test Automation Lab

Simran Basi (Google) and Chris Sosa (Google)

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

ChromeOS is currently shipping 60+ different Chromebook/boxes each running their own software. On the field, customers are getting a fresh system every 6 weeks. This would not be possible without a robust Continuous Integration System vetting check-ins from our 200+ developers. In this talk, we describe the overall architecture with specific emphasis on our test automation lab. In addition, we discuss Moblab (short for mobile (test) lab), our entire test automation infrastructure running from one chromebox. This system is used by many of our partners so that they too can run tests the way we do.