Текст книги "Как тестируют в Google"
Автор книги: Джеймс Уиттакер
Соавторы: Джефф Каролло,Джейсон Арбон
Жанр:
Программирование
сообщить о нарушении
Текущая страница: 25 (всего у книги 26 страниц)
Обратная связь
Отзывы пользователей очень важны для проекта. Нужно вложиться в то, чтобы им было предельно просто отправить нам обратную связь. И не забыть о том, что нам нужно будет обрабатывать данные.
– Расширение GoogleFeedback. Чтобы отправить сообщение, пользователи могут легко выделить и отправить ошибку для любого URL-адреса. Расширение группирует полученные от пользователей данные и выводит их на информационную панель для анализа. Команда тестирования приложит усилия, чтобы GoogleFeedback был интегрирован в Chrome OS, и расширит его отчетность на ChromeUX.
– Панель информации о багах. У приближенных к разработке пользователей проекта должны быть простые инструменты, чтобы заводить новые или просмотреть существующие баги прямо в браузере Chrome OS. В перспективе идея должна развиться в общую систему отображения информации в режиме наложения, чтобы инженер сразу видел состояние проекта и его качество.
Команда тестирования будет настойчиво продвигать настройку такой системы, в том числе и для нестандартных конфигураций.
Репозитории тест-кейсов
– Ручные: все ручные тест-кейсы хранятся в TestScribe. Идет работа над созданием репозитория тест-кейсов для code.google.com.
– Автоматизированные: все автоматизированные тест-кейсы находятся в хранилище кода в формате Autotest. Все тесты версионизированы, доступны и располагаются рядом с тестируемым кодом.
Панели мониторинга тестов
Нужно будет быстро обрабатывать и распространять большой объем данных, поэтому команда тестирования возьмет на себя создание специальных информационных панелей для метрик качества. Это позволит командам быстро получать высокоуровневые данные: индикаторы качества (зеленые/красные сигналы о прохождениях или падениях тестов), общие результаты ручного и автоматизированного тестирования. Если нужно – можно будет копнуть глубже и получить детальную информацию о багах.
Виртуализация
Очень важно, особенно на ранней стадии, вложиться в виртуализацию образов Chrome OS. Это уменьшит зависимость от физического оборудования, поможет проводить регрессионное тестирование с помощью Selenium и WebDriver на целых фермах серверов и облегчит поддержку тестирования и разработки Chrome OS прямо на рабочих машинах инженеров.
Производительность
В двух словах производительность – ключевая фича Chrome OS. Поэтому она выделена в отдельный проект в команде разработки. Команда тестирования старается помочь рассчитать, предоставить и проанализировать показатели продуктивности в лаборатории, но не занимается непосредственно тестированием производительности.
Нагрузочное тестирование, продолжительное тестирование и тестирование стабильности
Команда тестирования создает и выполняет продолжительные тесты на физическом оборудовании в лаборатории. Не забыть про внедрение неисправностей (fault injection).
Фреймворк выполнения тестов Autotest
Команды тестирования и разработки решили использовать Autotest как основной фреймворк для автоматизации тестов. Autotest удачно прошел проверку в сообществе Linux, использовался в нескольких внутренних проектах, и, кроме того, он распространяется с открытым кодом. Autotest поддерживает локальное и распределенное выполнение. Этот фреймворк умеет подключать и другие оснастки функционального тестирования (например, WebDriver), так что у нас будет единый интерфейс для выполнения, распределения тестов и отчетности.
Хотим отметить, что основная команда разработки инструментов тестирования работает над поддержкой 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 работают специалисты по доступности для людей с ограниченными возможностями (например, raman@).
– Высокоуровневые сценарии.Сотрудничество с командой 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 умеет собирать и систематизировать информацию из разных источников. Например, может ли пользователь получить информацию с нескольких сайтов и объединить ее в облачном документе? Можно ли загрузить и использовать контент в офлайне?
Рекомендуемые области для тестированияВ тур студента для Chrome входят:
– «Копировать» и «Вставить»: возможна ли передача разных типов данных через буфер обмена?
– Перемещение офлайнового контента в облако: веб-страницы, изображения, текст и прочее.
– Производительность: возможность одновременного открытия нескольких документов в разных окнах.
– Перемещение данных: перемещение данных между вкладками и окнами, а также между окнами с разными настройками (в обычном режиме и инкогнито).
Тур международных звонков
Описание: во время поездки звонок домой может стать целым приключением. В другой стране легко запутаться в операторах международной связи, карточках оплаты и разнице валют.
При работе с программным продуктом пользователи могут захотеть использовать привычные фичи, но с других платформ, с другими настройками и уровнями доступа. Этот тур подтверждает, что у пользователя не возникнет проблем с использованием продукта, где бы он ни находился.
Применение: просмотр типичных сайтов и использование стандартных возможностей в Chrome на других платформах (Windows, Mac и Linux) с разными настройками подключения в ОС.
Рекомендуемые области для тестированияВ тур международных звонков для Chrome входят:
– Операционные системы: Windows, Mac и Linux.
– Уровни доступа: высокие и низкие уровни привилегий.
– Языки: сложные языки, системы письменности справа налево.
– Сетевые настройки: прокси-сервер, Wi-Fi, проводное подключение, брандмауэр.
Тур ориентиров
Описание: Все очень просто. Используйте компас, чтобы установить ориентир (дерево, камень, склон горы) в нужном вам направлении движения. Доберитесь до него, найдите следующий ориентир и т.д. Если ориентиры идут в одном направлении, вы сможете пробраться даже через дремучий лес. Тур ориентиров для исследовательских тестировщиков напоминает наш выбор ориентиров и движение по ним, чтобы не заблудиться.
Применение: для Chrome этот тур проверяет, легко ли пользователь перемещается от одного объекта к другому. Убедитесь, что пользователи смогут добраться до нужных ориентиров (например, другие окна браузера, открываемые вложения, настройки).
Рекомендуемые ориентиры для ChromeВ тур ориентиров для Chrome входят:
– Окно браузера: основное окно браузера для просмотра веб-сайтов.
– Окно режима инкогнито: используется для просмотра в режиме повышенной секретности; в левом верхнем углу появляется узнаваемое изображение «шпиона» для оповещения пользователя.
– Компактная навигационная панель: это окно браузера доступно из меню; в строке заголовка окна размещается поле поиска.
– Менеджер загрузки: вывод списка контента, загруженного пользователем.
– Менеджер закладок: менеджер закладок – полноценное окно, в котором отображаются закладки пользователя, которые можно нажать для перехода на страницу.
– Инструменты разработчика: менеджер задач, консоль JavaScript и прочее.
– Настройки: вызываются из меню в правом верхнем углу.
– Темы: страница, на которой пользователи могут выбрать свое оформление Chrome OS.
Тур «не спим всю ночь»
Описание: как далеко вы можете зайти? Тур «не спим всю ночь» предлагает туристам проверить свою выносливость, перемещаясь с одной вечеринки на другую без перерывов. «Этот тур проверит, на что вы способны. Выдержите? Хватит вас на всю ночь?»
Тур испытывает тестируемый продукт на прочность, чтобы узнать, выдержит ли он активное и продолжительное использование. Ключевой момент – ничего не закрывать, а продолжать один долгий сеанс взаимодействия с приложением. В ходе тура можно найти баги, появляющиеся только после долгого использования приложения.
Применение: открыть много вкладок Chrome, устанавливать расширения, менять темы и продолжать работу в одном сеансе как можно дольше. Старайтесь не закрывать вкладки или окна, когда вы закончите работу с ними, просто открывайте новую страницу. Если тур занимает несколько дней, Chrome нужно оставить открытым на ночь, чтобы продолжить работу на следующий день.
Рекомендуемые области для тестированияВ тур «не спим всю ночь» для Chrome входят:
– Вкладки и окна: нужно открыть много вкладок и окон.
– Расширения: установить много расширений и запустить их в работу.
– Продолжительность работы: оставьте всёоткрытым надолго.
Тур предпринимателя
Описание: одни путешествуют для развлечения, другие – по делам бизнеса. Этот тур выяснит, насколько легко заниматься бизнесом в стране визита. Есть ли подходящие местные поставщики? С какими бюрократическими тонкостями связано начало работы?
В программных продуктах этот тур проверяет, легко ли пользователь может разрабатывать контент, используя тестируемый продукт. Пользователь проверяет, сколько полезных инструментов дает программный продукт, насколько легко выполняется импорт и экспорт.
Применение: в Chrome есть обширный инструментарий для разработчиков на JavaScript и веб-разработчиков, которые запускают и тестируют свои веб-приложения. Тур нужен для проверки инструментария, генерации примеров скриптов и тестирования онлайн-контента.
Инструменты в ChromeВ тур предпринимателя для Chrome входят:
– Инструменты разработчика: просмотр элементов страницы, ресурсов и сценариев, включение отслеживания ресурсов.
– Консоль JavaScript: правильно ли выполняется код JavaScript?
– Просмотр исходного кода: легко ли читается код с цветовым (или другим) выделением, легко ли перейти к нужному разделу?
– Менеджер задач: правильно ли отображаются процессы, легко ли определить, сколько ресурсов потребляет веб-страница?