Уиттакер . - Как тестируют в Google
Именно через браузер пользователь оперирует основными элементами интерфейса и использует фичи 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.
— Ведущий инженер автоматизации браузера.
— Панель мониторинга статусов тестирования и метрик.
— Определение и выполнение ручных приемочных тестов.
— Определение и выполнение ручных регрессионных тестов командами внешних тестировщиков.
— Совместимость приложений, базовый пользовательский интерфейс и функциональность браузера (ручные тесты).
— Аудио и видео.
— Стабильность и внедрение сбоев.
— Тестирование доступности для пользователей с ограниченными возможностями.
— Аппаратные лаборатории: Киркленд, Хайдарабад и Маунтин-Вью.
— Автоматизация ферм.
— Приемка оборудования.
— Общее руководство и финансирование.
Необходимые документы и ресурсы
— Анализ рисков.
— Аппаратные лаборатории.
— Автоматизация ферм E2E.
— Инфраструктура управления виртуальными и физическими машинами.
— Инструменты для отображения служебной информации.
— Ручные приемочные тесты.
— Информационная панель с результатами тестирования.
— Тесты проверки железа для производителей.
— Сводная панель с информацией об использовании и работоспособности оборудования.
— План ручного функционального тестирования Chrome OS.
Приложение Б. Тестовые туры для Chrome
Туры тестов:
— Тур покупателя
— Тур студента
— Тур международных звонков
— Тур ориентиров
— Тур «не спим всю ночь»
— Тур предпринимателя
— Тур неблагополучных районов
— Тур персонализации
Тур покупателя
Описание: шопинг — любимое времяпровождение для многих, особенно во время поездок в другие страны, там всегда можно купить что-то новенькое. В некоторых городах сами магазины стали главными достопримечательностями. В Гонконге, например, расположен один из самых больших торговых центров мира, под крышей которого расположено более 800 магазинов.
Коммерция не чужда и области разработки ПО. Хотя и не в каждом приложении можно потратить деньги, но во многих из них есть возможность что-нибудь купить. Движение в ту сторону стало особенно заметным сейчас, когда дополнительно загружаемый контент стал чем-то привычным. Тур покупателя предлагает пользователю совершить покупки везде, где только можно в тестируемом приложении. Так мы проверяем, может ли пользователь покупать без проблем и не тратить на это много времени.
Применение: Chrome открывает перед пользователем дверь в мировой торговый центр, где возможности потратить деньги безграничны. Конечно, протестировать работу каждого интернет-магазина невозможно. Мы можем только проверить доступность и работоспособность большинства из них. Вот список крупнейших интернет-магазинов (по количеству трафика на их сайтах):
— eBay (www.eBay.com)
— Amazon (www.amazon.com)
— Sears (www.sears.com)
— Staples (www.staples.com)
— OfficeMax (www.officemax.com)
— Macy’s (www.macys.com)
— NewEgg (www.newegg.com)
— Best Buy (www.bestbuy.com)
Тур студента
Описание: многие студенты уезжают учиться за границу. Обосновавшись в новом городе, они используют местные ресурсы для того, чтобы узнать больше об интересующей их области. Для них есть туры, показывающие им полезные места — библиотеки, архивы, музеи и т.д.
Точно так же в интернете люди пробуют новые технологии, чтобы изучать и узнавать больше по конкретной нужной им теме. Этот тур направлен как раз на это: он помогает воспользоваться приложением и протестировать все его возможности для сбора и организации информации.
Применение: протестировать, насколько хорошо Chrome умеет собирать и систематизировать информацию из разных источников. Например, может ли пользователь получить информацию с нескольких сайтов и объединить ее в облачном документе? Можно ли загрузить и использовать контент в офлайне?