Запись и воспроизведение сценариев в BITE
Запись и воспроизведение сценариев в BITE
Тестировщики и разработчики в тестировании трятят значительную часть своего рабочего времени на автоматизацию больших, сквозных регрессионных тест-кейсов. Именно эти тесты показывают, могут ли все части продукта работать слаженно на благо конечного пользователя. Подавляющее большинство таких тестов пишется на Java с использованием Selenium для управления браузером и хранения логики тест-кейсов. Но у этого подхода есть недостатки.
— Трудности перевода. Логика теста пишется на одном языке, а выполняемое приложение на другом (Java вместо JavaScript). Разработчики и тестировщики в Google часто жалуются на эту разницу, потому что она значительно замедляет отладку, и не каждый инженер хочет учить дополнительный язык.
— Место жительства. Код тестов живет за пределами браузера, поэтому приходится делать дополнительный шаг для сборки и развертывания тестовых бинарных файлов на компьютерах. Централизованная инфраструктура автоматизации тестирования Matrix, к сожалению, не решает проблему полностью.
— Окружающая среда. Тестировщик работает в установленной локально среде разработки, отделенной от браузера и настроенной только для тестируемого проекта.
— Потерянное время. Тестировщики тратят много времени на постоянное переключение между страницей приложения и средой Eclipse. Они ищут XPath-пути нужных элементов, а потом вручную добавляют их в Java-код. Потом сборка, запуск, проверка работоспособности. Все это требует времени и достаточно утомительно.
— Ничто не вечно. Веб-приложения Google часто меняют свою модель DOM. Это значит, что тест-кейсы падают при каждом изменении положения элемента на странице или его атрибутов. Поэтому команды сначала тратят много времени на сопровождение тестов, а потом и вовсе игнорируют полученные результаты из-за обилия ложноположительных срабатываний.
Мы придумали веб-решение этих проблем: Record and Playback Framework (RPF) на основе JavaScript, а еще мы серьезно поработали над хранением сценариев тест-кейсов в облаке. Это решение отлично работает и в Chrome OS, которая не поддерживает выполнение тест-кейсов Selenium или WebDriver.
Чтобы записать тест, просто нажмите Record and Playback в BITE-меню в браузере. На экране появится окно записи, в котором запишутся все операции мышкой в основном окне браузера. Клик правой кнопкой мыши на любом элементе запустит режим проверки, в котором можно проверить конкретную строку, картинку, значение конкретного элемента. Можно даже проверить относительную позицию элемента на странице. Это полезно при работе с YouTube: не всегда известно, где именно будет располагаться видео на домашней странице, но общий макет страницы мы знаем.
Самый главный плюс метода RPF в том, что он избавляет инженера по тестированию от хлопотного просмотра модели DOM приложения и пересчетов путей XPath, когда элементы меняются. Мы вложили много усилий в написание кода, который останавливает тест. Если элемент не найден в процессе воспроизведения, код сделает паузу, чтобы тестировщик выбрал новый элемент, автоматически обновит скрипт и продолжит работу. Еще мы реализовали так называемое «ленивое выполнение»: вместо того чтобы придирчиво проверять, соответствует ли элемент ожидаемому XPath, RPF проверяет все атрибуты элемента HTML, в том числе и его родительские и дочерние элементы в DOM. Во время воспроизведения RPF сначала ищет точное совпадение. Если не находит, начинает искать максимально похожие элементы. Может быть, например, изменился только ID, а все остальное осталось прежним. Точность совпадений поиска настраивается. Если различие в пределах допустимого, тест переходит к следующему шагу и просто записывает предупреждение в логи. Мы надеялись, что этот метод сэкономит много времени разработки.
Первой RPF опробовала команда тестирования Chrome Web Store. RPF успешно отработал в 90% тестовых сценариев. Проблемы возникли только с диалоговыми окнами загрузки файлов, которые по сути — встроенные окна ОС, а не браузера, и с некоторыми функциями Google Checkout: нельзя автоматизировать финансовые сценарии через Web API из-за безопасности. Правда, тестировщиков не сильно захватила идея «ленивого» поиска совпадений или возможность поставить работу на паузу для исправления. Им было проще и быстрее переписать тест с нуля. Все тесты мы поначалу разрабатывали параллельно на два фронта, для WebDriver и для RPF. Оказалось, что RPF в семь раз эффективнее для генерации и сопровождения тестов, чем Selenium или WebDriver. Показатели могли меняться, но это уже был хороший признак.
BITE использует RPF для записи сценариев при регистрации багов. Для некоторых сайтов BITE автоматически записывает все действия тестировщика, а когда инженер регистрирует баг с помощью BITE, к нему прикрепляется ссылка на сгенерированный сценарий воспроизведения. Для Google Maps, например, сохраняются все операции поиска и изменения масштаба. Если у разработчика установлен BITE, он может одним кликом запустить воспроизведение и посмотреть, что делал тестировщик, когда нашел баг. Если во время сеанса на сайте баг не заводился, то записанный сценарий самоуничтожается.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Play - Воспроизведение
Play - Воспроизведение Play(Глобальная функция)Воспроизведение ролика после остановкиСинтаксис:Play()Описание:При вызове функции Play() начинается последовательное воспроизведение кадров текущего главного фильма или клипа. Текущим называется фильм или клип, в котором
5.1.2.1. Воспроизведение МР3
5.1.2.1. Воспроизведение МР3 Разработчики Fedora обещали, что установка кодеков в восьмой версии будет реализована по принципу "одного щелчка". Попробуйте открыть в Fedora любой фильм - просто дважды щелкните в окне Обозреватель файлов на значке видеофайла. Получите картину из
5.3. Воспроизведение музыки
5.3. Воспроизведение музыки 5.3.1. Проигрыватели В Fedora 8 вам доступны два музыкальных проигрывателя (если не считать проигрывателя AudioCD) - Audacious и Rhytmbox. Вы можете установить и дополнительные проигрыватели, но в этом просто нет
Эксперимент BITE
Эксперимент BITE Мы создали BITE (Browser Integrated Test Environment), тестовую среду, интегрированную в браузер, для того чтобы вынести как можно больше тестовых действий, инструментов и данных в браузер и облако и показывать их в контексте. Мы хотели уменьшить время, которое тестировщики
Регистрируем баги с BITE
Регистрируем баги с BITE Помните про правило одного клика, которое работает в Google Feedback? Тестировщик, обнаружив баг в веб-приложении, может одним точным ударом сообщить о баге, выделив часть страницы, где возникла проблема, и дописав от себя сообщение. BITE, по сути, позволяет
Влияние BITE на проект Maps
Влияние BITE на проект Maps Сейчас BITE используют только внутри Google для регистрации багов Google Maps. Большая часть информации о состоянии приложения не сохраняется в URL-адресе, а серверные данные постоянно меняются, поэтому регистрация багов Google Maps — дело очень затейливое. Проще
Просмотр багов в BITE
Просмотр багов в BITE Когда инженер в кабине пилота-тестировщика исследует приложение или выполняет регрессионные тесты, информация о багах страницы, на которой он сейчас находится, показывается прямо над тестируемым приложением. Это помогает быстро сориентироваться и
Слияние BITE с RPF Джеймс Арбон
Слияние BITE с RPF Джеймс Арбон В первые дни тестирования Chrome OS мы обнаружили, что главное качество платформы — безопасность — сильно осложняет тестирование. Тестируемость часто конфликтует с безопасностью, а ведь в Chrome OS очень большой упор сделан именно на безопасность.В
Ручные и исследовательские тесты в BITE
Ручные и исследовательские тесты в BITE Мы в Google опробовали уйму способов распределения тестов между инженерами: от недружелюбного TestScribe до электронных таблиц совместного использования, где вручную вводились имена людей напротив тестов, которые они должны провести.BITE
Уровни BITE
Уровни BITE Как и любое приложение, внутренние проекты всегда нужно делать расширяемыми. В BITE есть возможность размещения произвольных сценариев и их внедрения в тестируемую страницу. То есть в архитектуре есть несколько логических уровней: один из них, к примеру,
Охотимся на баги и потерянное время вместе с BITE
Охотимся на баги и потерянное время вместе с BITE Среда, 12 октября 2011 г. 9:21http://googletesting.blogspot.com/2011/10/take-bite-out-of-bugs-and-redundant.htmlДжо Аллан МухарскиХотя веб становится все более удобным и легким в работе, регистрация багов на сайтах — все еще ручной и утомительный труд. Найди дефект.
Воспроизведение окружающего рельефа
Воспроизведение окружающего рельефа Ранее неоднократно подчеркивалось, что добавление и текстурирование поверхностей, отображающих особенности реального рельефа вокруг дома, всегда придают больше реалистичности любому проекту.Для работы с рельефом в программе ArCon
Инструмент Запись и воспроизведение
Инструмент Запись и воспроизведение С помощью инструмента Запись и воспроизведение (см. табл. П3.3) можно записывать видеосюжеты разных планов. С помощью инструмента IW Recorder (Рекордер) происходит запись всех действий на интерактивной доске и звукового сопровождения.
13.1. Воспроизведение музыки
13.1. Воспроизведение музыки Опять «семерка» порадовала прекрасными средствами для воспроизведения музыки и видео. Вообще, проигрыватель Windows Media, используемый в Windows 7, очень напоминает свою предыдущую версию, которая использовалась в Windows Vista, однако новый проигрыватель
Воспроизведение звука и видео
Воспроизведение звука и видео Как отмечалось ранее, для запуска проигрывателя достаточно дважды щелкнуть кнопкой мыши на значке любого файла мультимедиа, после чего воспроизведение начнется автоматически. Вы также можете выбрать файл для воспроизведения из библиотеки