Хотим отметить, что основная команда разработки инструментов тестирования работает над поддержкой Autotest в Windows и Mac.
Производители железа играют важную роль в проверке качества сборок Chrome OS. Команды тестирования и разработки создают релевантные ручные и автоматизированные тест-кейсы, при помощи которых производители проверяют сборки и оборудование на своей стороне. Кроме них команда тестирования сотрудничает с самыми популярными производителями и включает разные варианты железа в повседневное тестирование. Так мы сможем как можно раньше выявлять любые проблемы или регрессии, связанные с ним.
Лаборатория проверки оборудования
В лаборатории собрано много нетбуков и других устройств, на которых можно регулировать сетевые настройки (для проводного и беспроводного соединений), управлять питанием и т.д. Это инфраструктура для тестирования отдельных сервисов (например, беспроводной связи). Лабораторные машины в основном управляются инфраструктурой HIVE.
Фермы для сквозных автотестов
Команда тестирования создаст ферму нетбуков для прогона тестов и настроит передачу данных о состоянии матрицы аппаратных и программных средств. Фермы распределяются по офисам в Маунтин-Вью, Киркленде и Хайдарабаде для возможности локального доступа к лаборатории и организации практически круглосуточного выполнения тестов и отладки.
Тестирование AppManager в браузере
Основной браузер Chrome OS — это Linux-версия Chrome с пользовательским интерфейсом и фичами, специализированными для Chrome OS. Бо́льшая часть механизмов отображения страниц и функциональности такая же, однако есть значительные различия между базовым браузером и его разновидностью в Chrome OS. Например, закрепляемые вкладки, менеджер загрузки, запуск приложений, платформенные элементы управления, беспроводная связь и т.д.
— Chrome OS — главная платформа для основного тестирования браузера Chrome (ручного и автоматизированного).
— Команда разработки браузера определяет сборку, которую нужно интегрировать, на основании качества сборки и текущих фич Chrome OS.
— Для каждой «релиз-кандидат» версии OS команда браузера проводит стандартный набор тестов совместимости сайтов/приложений (топ-300 сайтов) с Chrome OS.
— Тесты совместимости сайтов/приложений частично автоматизируются с помощью WebDriver и интегрируются в автозапуски при сборках или в обычные лабораторные запуски, чтобы рано получать информацию о серьезных регрессиях, специфических для Chrome OS.
— Команда внешних тестировщиков создает и выполняет пакет ручных тестов для фич Chrome OS, связанных с браузером и менеджером приложений.
— Как только API будет реализован, внешние тестировщики автоматизируют пакет ручных тестов Chrome OS.
— Chrome OS Chromebot должен иметь версии для Linux и Chrome OS и запускаться на всей функциональности Chrome OS, а не только веб-приложений.
— Ручное исследовательское тестирование и туры помогут выявить пользовательские проблемы, связанные с функциональностью, удобством, простотой использования и т.д.
Именно через браузер пользователь оперирует основными элементами интерфейса и использует фичи Chrome OS. Бо́льшая часть компонентов BrowserUX либо не подходит для тестирования, либо может тестироваться только через низкоуровневые интерфейсы IPC AutomationProxy за пределами браузера. Для Chrome OS мы унифицируем тестирование веб-приложений, пользовательского интерфейса Chrome и функциональности. Мы стараемся избавиться от низкоуровневых системных тестов. Мы хотим, чтобы Chrome стал самым удобным браузером для тестирования веб-приложений, чтобы внешние команды веб-разработки начинали тестирование своих проектов именно с него. Вот что мы делаем для этого:
— Портирование Selenium и WebDriver в Chrome OS. Это основные тестовые фреймворки для современных веб-приложений. Команды браузера Chrome и Chrome OS, скорее всего, возьмут на себя специфические для Chrome аспекты WebDriver. Это станет шагом к созданию надежного, удобно тестируемого интерфейса для разработчиков приложений и внешних тестировщиков.
— Доступ к пользовательскому интерфейсу и функциональности Chrome через JavaScript DOM. Это позволит тестам WebDriver работать с пользовательским интерфейсом и функциональными аспектами Chrome. Функциональность доступна через те же методы, что и отключение, и спящий режим, и через которые с ChromeViews работают специалисты по доступности для людей с ограниченными возможностями (например, [email protected]).
— Высокоуровневые сценарии. Сотрудничество с командой WebDriver для расширения основного API WebDriver сначала в «чистый» JavaScript, а потом в высокоуровневые скрипты записи и воспроизведения с параметрами (например, «Google Search: <критерий>»). Так мы ускорим внутреннюю и внешнюю разработку тестов, которые, работая с WebDriver, все еще требуют большой работы по поиску элементов и сложны в поддержке из-за быстрого изменения пользовательского интерфейса.
Chrome OS должен соответствовать требованиям многих производителей оборудования. Нужно тестировать на основных платформах производителей железа, чтобы обеспечить интеграцию между физическим оборудованием и Chrome OS. Мы создаем тесты, которые проверяют:
— управление питанием: циклы питания от сети и батареи, сбои, управление питанием аппаратных компонентов и т.д.;
— сбои оборудования: что Chrome OS сможет обнаружить и как произведет восстановление?
4-й квартал 2009 года:
— Определить ручные приемочные тесты, выполнять их для непрерывных сборок.
— Определить основные тесты проверки качества и выполнять их для каждого крупного релиза.
— Запустить аппаратную лабораторию.
— Провести анализ рисков.
— Автоматизировать выполнение сквозных сценариев для непрерывных сборок на нетбуках в лаборатории.
— Настроить поддержку Hive для визуализации данных на виртуальных и физических машинах.
— Портировать WebDriver и Selenium на Chrome OS.
— Автоматизировать некоторые тесты для популярных веб-приложений.
— Выбрать тестовую оснастку для разработчиков и тестировщиков.
— Запустить интеграцию Google Feedback в Chrome OS.
— Сформировать основную команду тестирования: люди и процессы.
— Автоматизировать тесты для аудио и видео.
— Полностью спланировать тестирование с учетом рисков.
— Спланировать ручное тестирование пользовательского интерфейса.
1-й квартал 2010 года:
— Настроить панели мониторинга данных о качестве.
— Автоматизировать тесты автообновления.
— Настроить поддержку автоматизированного тестирования производительности в лаборатории.
— Настроить лаборатории в Хайдарабаде, Киркленде и Маунтин-Вью, к этому времени в них должно уже проводиться тестирование.
— Chromebot для Linux и Chrome OS.
— Обеспечить поддержку тестируемости для основных функций и пользовательского интерфейса Chrome OS.
— Создать набор функциональных регрессионных автоматизированных тестов для Chrome OS.
— Включить Chrome OS в регрессионные тесты веб-приложений для ферм Selenium.
— Создать прототип поддержки записи и воспроизведения для браузера и тестирования пользовательского интерфейса.
— Автоматизировать тест-кейсы ChromeSync E2E.
— Настроить тестирование стабильности и внедрения сбоев.
— Настроить тестирование сетевых компонентов.
— Проводить регулярное исследовательское ручное тестирование и туры (чтобы задобрить Джеймса).
2-й квартал 2010 года:
— Риски уже должны быть снижены из-за тестирования и автоматизации.
3-й квартал 2010 года:
— Риски должны быть снижены еще больше из-за тестирования и автоматизации.
4-й квартал 2010 года:
— Все риски минимизированы, работа автоматизирована, новых проблем нет, пользовательский интерфейс и функциональность остаются неизменными. Команда тестирования завершает работу.
Ключевые моменты тестирования
— Ведущий инженер по тестированию для платформы Chrome OS.
— Ведущий инженер по тестированию для браузера Chrome.
— Ведущий инженер автоматизации браузера.
— Панель мониторинга статусов тестирования и метрик.
— Определение и выполнение ручных приемочных тестов.
— Определение и выполнение ручных регрессионных тестов командами внешних тестировщиков.
— Совместимость приложений, базовый пользовательский интерфейс и функциональность браузера (ручные тесты).
— Аудио и видео.
— Стабильность и внедрение сбоев.
— Тестирование доступности для пользователей с ограниченными возможностями.