Гугл тесты что это
Google testing framework (gtest)
Ключевые понятия
Ключевым понятием в Google test framework является понятие утверждения (assert). Утверждение представляет собой выражение, результатом выполнения которого может быть успех (success), некритический отказ (nonfatal failure) и критический отказ (fatal failure). Критический отказ вызывает завершение выполнения теста, в остальных случаях тест продолжается. Сам тест представляет собой набор утверждений. Кроме того, тесты могут быть сгруппированы в наборы (test case). Если сложно настраиваемая группа объектов должна быть использована в различных тестах, можно использовать фиксации (fixture). Объединенные наборы тестов являются тестовой программой (test program).
Утверждения (assertion)
Утверждения, порождающие в случае их ложности критические отказы начинаются с ASSERT_, некритические — EXPECT_. Следует иметь ввиду, что в случае критического отказа выполняется немедленный возврат из функции, в которой встретилось вызвавшее отказ утверждение. Если за этим утверждением идет какой-то очищающий память код или какие-то другие завершающие процедуры, можете получить утечку памяти.
Имеются следующие утверждения (некритические начинаются не с ASSERT_, а с EXPECT_):
Простейшие логические
Сравнение
Сравнение строк
Проверка на исключения
Проверка предикатов
В случае ложности утверждения, выдаются данные, использованные в утверждении. Кроме того, можно задать собственный комментарий:
Можно использовать расширенные наборы символов (wchar_t) как в комментариях, так и в утверждениях, касающихся строк. При этом выдача будет в UTF-8 кодировке.
Тесты (tests)
Для определения теста используется макрос TEST. Он определяет void функцию, в которой можно использовать утверждения. Как отмечалось ранее, критический отказ вызывает немедленный возврат из функции.
TEST принимает 2 параметра, уникально идентифицирующие тест, — название тестового набора и название теста. В рамках одного и того же тестового набора названия тестов не должны совпадать. Если название начинается с DISABLED_, это означает, что вы пометили тест (набор тестов) как временно не используемый.
Можно использовать утверждения не только в составе теста, но и вызывать их из любой функции. Имеется лишь одно ограничение — утверждения, порождающие критические отказы не могут быть вызваны из не void функций.
Фиксации (fixtures)
Случается, что объекты, участвующие в тестировании, сложно настраиваются для каждого теста. Можно задать процесс настройки один раз и исполнять его для каждого теста автоматически. В таких ситуациях используются фиксации.
Фиксация представляет собой класс, унаследованный от ::testing::Test, внутри которого объявлены все необходимые для тестирования объекты при этом в конструкторе либо функции SetUp() выполняется их настройка, а в функции TearDown() освобождение ресурсов. Сами тесты, в которых используются фиксации, должны быть объявлены с помощью макроса TEST_F, в качестве первого параметра которого должно быть указано не название набора тестов, а название фиксации.
Для каждого теста будет создана новая фиксация, настроена с помощью SetUp(), запущен тест, освобождены ресурсы с помощью TearDown() и удален объект фиксации. Таким образом каждый тест будет иметь свою копию фиксации «не испорченную» предыдущим тестом.
В некоторых случаях создание тестируемых объектов является очень дорогой операцией, а тесты не вносят никаких изменений в объекты. В таком случае можно не создавать фиксации заново для каждого теста, а использовать распределенную фиксацию с глобальным SetUp()и TearDown(). Фиксация автоматически становится распределенной, если в классе имеется хотя бы один статический член. Статические функции SetUpTestCase() и TearDownTestCase() будут вызываться для настройки объекта и освобождения ресурсов соответственно. Таким образом, набор тестов перед первым тестом вызовет SetUpTestCase(), а после последнего TearDownTestCase().
Если существует потребность в SetUp() и TearDown() для всей программы тестирования, а не только для набора теста, необходимо создать класс-наследник для ::testing::Environment, переопределить SetUp() и TearDown() и зарегистрировать его с помощью функции AddGlobalTestEnvironment.
Запуск тестов
Объявив все необходимые тесты, мы можем запустить их с помощью функции RUN_ALL_TESTS(). Функцию можно вызывать только один раз. Желательно, чтобы тестовая программа возвращала результат работы функции RUN_ALL_TESTS(), так как некоторые автоматические средства тестирования определяют результат выполнения тестовой программы по тому, что она возвращает.
Флаги
Вместо заключения
В данном посте я кратко пробежался по основным функциям Google Test Framework. За более подробными сведениями следует обратиться к документации. Оттуда вы сможете почерпнуть информацию о ASSERT_DEATH используемом при падении программы, о ведении дополнительных журналов, о параметризованных тестах, настройке вывода, тестировании закрытых членов класса и многое другое.
UPD: По справедливому замечанию хабрапользователя nikel добавлена краткая инофрмация по использованию флагов.
UPD 2: Исправление разметки после изменений на Хабре (нативный тег source).
Как делать A/Б тесты в Google Optimize [бесплатно и без программиста]
Порой даже небольшие доработки в дизайне и контенте сайта становятся точками роста. Увеличили размер кнопки «Купить» — она стала заметней, и у вас больше продаж. Прикрутили блок с видео о продукте на лендинг — и у вас больше заявок. Но предугадать, какой вариант будет лучше восприниматься пользователями, сложно. Нужно тестирование: шрифтов, цветов, кнопок, их расположения, текстов, изображений и массы других элементов.
Для этих задач подходит Google Optimize. Этот сервис создан для тестирования изменений на страницах и оценки их эффективности с точки зрения поведения пользователей. Детально разобрали, как с ним работать, какие есть виды тестирования, по шагам показали настройку А/Б теста.
Для чего нужен Google Optimize
Google Optimize — сервис для тестирования изменений в интерфейсе страниц сайта. С его помощью можно быстро и без вмешательства в код сайта протестировать, как изменения в интерфейсе влияют на конверсию и другие метрики эффективности.
Упрощенно процесс выглядит так:
Структура Google Optimize
Чтобы было проще разобраться с работой сервиса, полезно понимать его структуру. Она состоит из трех уровней:
Для внесения изменений на сайт используется браузерное расширение Google Optimize. Расширение позволяет редактировать существующие элементы или добавлять новые для проведения экспериментов — без вмешательства в исходный код сайта.
Работа с сервисом: интерфейс и основные возможности
Перейдите на страницу Google Optimize (можете сделать это по прямой ссылке или найти сервис в Google Marketing Platform).
Кликните «Start for free».
После клика вы будете перенаправлены на русскоязычную версию сервиса (Google Оптимизация).
Обратите внимание, для работы с сервисом вам нужен аккаунт Google (если у вас его нет — создайте), а также аккаунт Google Аналитики.
Настраиваем контейнер
После создания аккаунта в Google Optimize необходимо добавить первый контейнер. В нем будут храниться данные о ресурсах, с которыми проводятся эксперименты, и сами эксперименты.
При создании контейнера ему присваивается название по умолчанию — «Мой контейнер». Это название можно оставить или изменить. Общая рекомендация — указать в названии адрес сайта или название проекта, с которым работаете. Это поможет проще ориентироваться в аккаунте, если контейнеров будет много.
Чтобы переименовать контейнер, откройте его и кликните по кнопке «Настройки».
Затем кликните по знаку карандаша в блоке «Сведения о контейнере».
Если вы планируете проводить тесты на разных сайтах, удобно следовать такой логике: для одного сайта — один контейнер. Однако это не обязательное условие. В одном контейнере могут быть проекты для нескольких сайтов.
Выбираем тип проекта (эксперимента)
На нижнем уровне иерархии — проект. По сути, это эксперимент, который запускается для решения конкретной задачи. Задачи могут быть разными, например:
В сервисе доступно 4 вида проектов. Расскажем о каждом из них.
Эксперимент А/Б
Классический А/Б тест. С помощью этой функции вы можете создать несколько вариантов страницы, с разным отображением одного элемента. При этом вариантов не обязательно должно быть два — их можно создавать сколько угодно.
Google будет распределять трафик между вариантами страницы в зависимости от настроек:
С помощью настроек таргетинга в проекте можно выбрать аудиторию, которой будут показываться измененные варианты страницы. Например, ее могут видеть только пользователи мобильных или аудитория, которая приходит с конкретной рекламной кампании.
Дополнительно можно указать, какая доля общего трафика должна участвовать в эксперименте.
Самый простой пример А/Б теста — тестирование разного цвета кнопок. Например, изначально на сайте стоит CTA-кнопка синего цвета, но мы хотим проверить гипотезу: изменится ли конверсия, если кнопка будет более яркой (скажем, красной). Для этого создаем вариант исходной страницы с измененным цветом кнопки.
После запуска проекта Google Optimize будет рандомизированно распределять трафик между вариантами страницы и сравнивать эффективность по заданному параметру (например, по уровню конверсии).
Многовариантный эксперимент
В отличие от А/Б теста он позволяет протестировать изменение сразу нескольких элементов.
Например, этот вариант подойдет, если нужно протестировать два заголовка и три изображения.
Система создаст все возможные комбинации страниц, в зависимости от того, сколько элементов и какое количество вариантов мы хотим протестировать. В нашем примере будет создано 6 комбинаций (2 заголовка * 3 картинки = 6).
Если вы хотите посмотреть, изменение какого элемента на странице даст больший прирост конверсий, используйте этот вариант экспериментов.
Эксперимент с переадресацией
В предыдущих вариантах экспериментов сравнивались одни и те же страницы, отличались лишь отдельные элементы. Здесь же сравниваются разные страницы.
Пример. Допустим, вы делаете посадочную страницу для продажи продукта. Хотите протестировать две версии лендинга:
Чтобы узнать, что сработает лучше, создайте в Google Optimize эксперимент с переадресацией и укажите две страницы с разным URL:
После завершения тестов вы получите данные и узнаете, какой из вариантов посадочной страницы сработал лучше.
Персонализация
Позволяет вносить изменения на сайте для персонализированного показа определенной аудитории. Персонализация нужна после того, как вы уже провели эксперимент (например, А/Б тест) и определили выигрышный вариант изменений. На основе этого варианта Google Optimize создаст персонализацию. Ее можно настроить для показа любому сегменту аудитории.
Также «Персонализация» пригодится в случаях, когда нужно запустить краткосрочную акцию для определенного сегмента аудитории. Например, с 1 по 31 июля вы хотите предложить бесплатную доставку клиентам из Москвы. Для этого создаете проект с типом эксперимента «Персонализация». Вносите изменения на сайт с помощью браузерного расширения Google Optimize — добавляете текст с информацией о бесплатной доставке. В настройках таргетинга указываете целевое местоположение — Москва.
После запуска эксперимента жители Москвы будут видеть ваше предложение, а остальным пользователям будет показана обычная версия страницы.
Настраиваете и ведете контекст/таргет? Подключитесь в Click.ru, и вы будете получать до 6% от оборота с контекстной и до 10% от оборота с таргетированной рекламы. Кроме того, вы получите доступ к бесплатным инструментам и объедините всю рекламу в одном интерфейсе (единый баланс, один договор, закрывающие документы).
Как создать и запустить A/Б тест в Google Optimize: пример настройки
Покажем пошагово, как запустить тест в Google Optimize. Для примера возьмем сайт детской тематики.
Первым делом создаем проект в контейнере:
В базовых настройках указываем:
В созданном проекте необходимо:
По умолчанию эксперимент длится 90 дней, а затем завершается. 90 дней — максимальный срок эксперимента, продлить его нельзя. Единственное, что можно сделать — уменьшить срок, настроить график запуска и окончания. Для этого кликните по иконке часов в панели инструментов.
Затем нужно указать дату начала и окончания эксперимента. Если длительность для вас не важна, можете указать только дату начала — через 90 дней эксперимент завершится автоматически.
Создаем варианты страницы с измененным элементом
На странице блога у нас есть превью статей и кнопка «Read More» оранжевого цвета. С помощью теста мы хотим узнать, будут ли чаще кликать на нее и открывать полную статью, если изменить цвет кнопки.
В эксперименте установим красный цвет для кнопки. Жмем «Создать вариант», указываем название и сохраняем его.
Затем кликаем по кнопке «Изменить».
Откроется страница блога, на которой будет показана панель инструментов расширения Google Optimize. Если расширение у вас еще не установлено, при нажатии на «Изменить» система предложит установить его. Меняем цвет кнопки «READ MORE» на красный и сохраняем изменения.
По умолчанию трафик распределяется между исходной страницей и тестовыми вариантами поровну. У нас только один тестовый вариант, поэтому распределение трафика — 50/50.
Это соотношение можно изменить вручную и установить любое другое: например, 60% — для исходной страницы, 40% — для тестовой.
Настраиваем таргетинг: выбираем аудиторию, которая будет участвовать в эксперименте
Кликаем по ссылке «правила выбора целевой аудитории».
Выбираем тип правил для настройки таргетинга.
С помощью настроек таргетинга можно указать, какой аудитории показывать исходный и тестируемый вариант страницы. Выбрать можно такие варианты:
Задаем геотаргетинг
В правилах таргетинга кликаем по пункту «Геоданные». Выбираем из выпадающего списка уровень, на котором будем задавать таргетинг. Здесь доступно четыре уровня:
Выбираем пункт «Страна», затем начинаем вводить название нужной страны на английском языке. Из выпадающего списка выбираем подходящий вариант.
Задаем правило для страницы
В блоке «Таргетинг на страницы» жмем «Добавить правило для URL».
Здесь необходимо указать адрес страницы, при переходе на которую пользователям будут показаны тестируемые варианты.
Устанавливаем связь с Google Analytics
Для того, чтобы получить достоверные данные по эффективности эксперимента, необходимо настроить связь с ресурсом Google Аналитики, в котором отслеживаются данные нашего сайта.
При авторизации в Google Optimize мы использовали тот же аккаунт Google, на котором зарегистрирована Google Аналитика. Поэтому выбираем нужный ресурс из списка. Выбираем представление «Все данные по веб-сайту».
Жмем «Создать». Сервис генерирует обновленный тег счетчика Аналитики. Вставляем код в разделе на сайте.
После установки связи с Google Аналитикой в интерфейсе отобразится уникальный идентификатор эксперимента.
Выбираем основную и дополнительные цели, по которым будет оцениваться эффективность эксперимента
В блоке «Цели» указываем основную цель эксперимента — она нужна для оценки результатов и определения выигрышного варианта. Есть два способа:
Нужная нам цель уже есть в связанном аккаунте Google Аналитике, поэтому выбираем пункт «Выбрать из списка». Во всплывающем окне покажется список доступных целей. Кликаем по нужной — она будет установлена в качестве основной цели.
Также можно указать до двух дополнительных целей (для замеров дополнительных метрик).
Указываем дополнительные настройки
В принципе, проект уже можно запускать, но давайте пройдемся по дополнительным настройкам (находятся в блоке «Настройки» после настроек целей).
На что здесь нужно обратить внимание:
Следующий шаг — запуск проекта. Кликаем по кнопке «Ок» на панели инструментов. Сервис покажет код проекта, который необходимо разместить на тестируемой странице сайта.
После запуска сервису нужно некоторое время, чтобы собрать первые данные. Увидеть их можно будет уже через несколько суток.
[Инструкция] Создание гугл-тестов (гугл-форм)
Спасибо пользователям Exosphere и Yuriy_krd за помощь и конструктивную критику
Иногда кажется, что создать что-то по конструктору весьма быстро и просто: хоть сайт, хоть опрос, хоть таблицы. Однако часто упускаешь из внимания какие-то обидные мелочи, из-за которых время уходит впустую и приходится переделывать работу из-за обидного пустяка. Согласитесь, неприятно. Я решил пройти все процессы за вас и предупредить о возможных неприятных мелочах, а также помочь новичкам.
В этой статье мы с вами сделаем гугл-форму, с помощью которой можно собирать данные, опрашивать сотрудников, клиентов, проводить тестирования гипотез и проч. Кстати, крайне актуальная информация в условиях удалённой работы.
Для создания тестов у вас должен быть активный гугл-аккаунт. Если у вас его нет — обратитесь к инструкции “Создание гугл-аккаунта и работа с Гугл-диском”.
Итак, создаем Форму (тестирование).
Входящая задача
Нам нужно создать тестирование, которое будет собирать набор информации.
Шаг 1 — создание теста (формы)
Переходим в гугл-диск. Для этого нажмите кнопку с точками на панели сверху справа, перейдя по ссылке https://www.google.com/ или https://www.google.ru/ Далее выберите Гугл-диск (далее по тексту Диск).
Шаг 2. Создание Теста (формы)
Как и в любом документе в Гугл-диске, начало работы начинается с кнопки “Создать+” в верхней левой части экрана. Этой кнопкой создаются папки на Диске, создаются все документы.
Нажав кнопку Создать, вы увидите меню. В нем нужно выбрать пункт “Еще”.
Создать форму можно несколькими способами:
1. Создание пустой формы:
Мы создали пустую форму (тестирование).
Шаг 3. Элементы управления
Первое, что нужно сделать — создать имя файла для формы. Это имя внутреннее, под ним форма будет храниться на Диске.
Имя создается, если щелкнуть по словосочетанию “Новая форма” в верхней левой части экрана.
В центре экрана находится поле с названием теста (формы). Его будут видеть тестируемые при выполнении. Изменим его на нужное.
Там же заполним описание к тесту (форме).
Далее автоматически создается первый блок вопроса.
В поле “Вопрос без заголовка” вам нужно вписать свой вопрос. Ниже переименовать Вариант 1 ответа на нужный. Если нужно добавить еще один вопрос — нужно нажать ниже “Добавить вопрос”. Также можно добавить вариант “Другое”, тогда в тесте появится текстовое поле, куда пользователь может внести любой иной ответ в произвольной форме.
Выпадающий список позволяет выбрать вид вопроса. В нашем случае автоматически создан вопрос с одним вариантом ответа. Если выпадающий список раскрыть, то можно выбрать иную форму вопроса.
Внизу блока есть кнопки:
Элемент управления “Настройки”
Закладка Общие и Презентация не должны вызвать каких-то вопросов. Важная вкладка “Тесты” — в ней вы можете настроить балльную оценку для каждого вопроса в форме. Для этого активируйте сдвижной переключатель “Тест” и Ваша форма перейдет в разряд теста. После активации этой кнопки вы можете назначать в списке вопросов правильные ответы и количество баллов за правильный ответ.
После активации переключателя, нажмите кнопку “Сохранить” и перейдите к вопросам. Внизу блока вопроса появиться кнопка “Ответы”:
Нажав на нее, вы перейдете в режим установки верных ответов и начисления баллов за правильный ответ.
Итак, давайте начнем выполнение поставленной в начале задачи.
Шаг 4. Создаем тест
Активируем переключатель “Обязательный вопрос”. Теперь пользователь обязан ввести Фамилию и Имя, чтобы продолжить прохождение теста.
Добавляем второй вопрос нажав на верхнюю кнопку в правой вертикальной панеле элементов управления.
Сделаем этот вопрос необязательным не активируя переключатель внизу справа блока. Даже не ответив на этот вопрос, пользователь продолжит и сможет закончить тестирование.
Создаем еще один блок с единственным вариантом ответа
Добавляем блок с несколькими вариантами ответов
Тут мы также добавили вариант ответа “Другое”.
Теперь настраиваем баллы для правильных ответов. Переходим в пункт настройки в верхней правой части элементов управления (значок шестеренки). Переходим на закладку “Тест” и активируем переключатель. Нажимаем кнопку Сохранить и возвращаемся к списку наших вопросов.
Нажав на любое пустое место блока вопроса, активируем его. Слева внизу активируем блок ответов. Выбираем нужный нам ответ верным и назначаем количество баллов.
Нажимаем кнопку готово. Баллы назначены.
Теперь нам нужно настроить регулярность вопросов и сбор адресов электронной почты.
Опять переходим в пункт “Настройки” в верхней части элементов управления. Активируем нужные нам элементы настроек.
Переходим сразу в закладку “Презентации” и проверяем, что активирован пункт “Показывать ссылку для повторного заполнения формы”. Нажимаем кнопку “Сохранить”
Шаг 4. Отправка теста (формы)
Отправка теста (формы) осуществляется путем нажатии кнопки “Отправить”. В открывшемся окне можно выбрать разные варианты отправки.
Отправка по электронной почте:
В поле “Кому” введите адреса получателей. В этом случае в закладке ответы, Вы будете видеть кто проголосовал, а кто еще не ответил на вопросы формы.
Так же форму можно сразу включить в тело письма.
Следующая закладка — отправить ссылку. В этом случае вы можете отправлять ее не только почтой, но и любым иным способом, в том числе через Мессенджер. Однако в этом случае вы будете вынуждены отслеживать ответивших самостоятельно.
Третий вариант — вставка на сайт. Это для более продвинутых пользователей. Позволяет встроить код с формой сразу в шаблон сайта.
Вы закончили создание формы.
Ссылка на тестовую форму, созданную при написании инструкции.