Google testing framework (gtest)
Содержание:
Google Apps Script
Создание Google форм можно автоматизировать. Вот простейший пример кода для создания новой формы с одним вопросом:
function newForm() {
// Создаем форму
var form = FormApp.create(‘Новая форма’);
// Добавляем вопрос
var item = form.addCheckboxItem();
// Указываем формулировку вопроса
item.setTitle(‘Сколько вам лет?’);
// Добавляем варианты ответов
item.setChoices();
// Выводим в консоль ссылки на форму
Logger.log(‘Ссылка для заполнения формы: ‘ + form.getPublishedUrl());
Logger.log(‘Ссылка для редактирования формы: ‘ + form.getEditUrl());
}
А так можно добавить код в уже существующую форму:
function addQuestion() {
// Открываем форму по ID (его можно посмотреть в адресной строк на странице редактирования формы)
var someForm = FormApp.openById(‘1E_wHU6QbWr7ByWXP1tqpv5HOBdK8nwm9ADuv4tRu6iE’);
// Добавляем вопрос
var item = someForm.addCheckboxItem();
// Указываем формулировку вопроса
item.setTitle(‘Вопрос добавленный Google Apps Script’);
// Добавляем варианты ответа
item.setChoices();
}
Как это может пригодиться?
Если вы хотите создать анкету из сотни вопросов, то вам будет неудобно набирать и проверять их в интерфейсе Google Форм. Гораздо удобнее набрать их в своем любимом текстовом редакторе, потом разместить в таблице Google и запустить скрипт для автоматической генерации формы.
Больше информации об автоматизации работы с формами можно почитать в Google Apps Script Form Service Reference. Также рекомендую посмотреть статьи из этого списка, чтобы понять, как интегрировать формы с другими сервисами Google (к примеру, делать еженедельную групповую рассылку определенному кругу лиц с новыми ответами на вопрос):
- 4 лайфхака Gmail и Google Apps Script
- Автоматизируем Google Таблицы на Google Apps Script
- Google Apps Script для Docs в примерах
- Простые автоматизации для Google Drive
- Планируем жизнь с Google Calendar и Google Apps Script
- Как правильно делать автоматизированные рассылки в Gmail
Создание тестов в Google Формах.
Как создать тест в Гугл Формах. В этой статье я расскажу, как при помощи сервиса Google Формы, можно создавать потрясающие тесты, с возможностью автоматической и ручной проверки. Так же эти тесты обладают широчайшими возможностями по интеграции. Их можно отправить по почте, поделиться ссылкой на тест, либо встроить на страницы своего сайта.
В интернет много платных сервисов, которые предоставляют возможности по созданию тестов и квизов. Я потратил кучу времени чтобы выбрать наиболее подходящие для одного своего клиента. Однако все они имели недостатки. Некоторые слишком дорогие, некоторые не имели нужного функционала, например, встраивания на страницу сайта.
Каково же было мое удивление что все что нужно было лежало на поверхности интернета совершенно бесплатно.
Дело в том, что Google Формы имеют режим тестов. Он подключается в настройках. И эта простецкая штуковина, превращается в мощный инструмент, при помощи которого можно делать тесты с различными гибкими настройками.
Какой нужен тест
Клиенту нужен был сервис по созданию тестов, который отвечал бы следующим требованиям:
- Тест должен легко встраиваться на страницы сайта
- Его можно легко создать
- Неограниченное количество тестируемых
- Возможность проверки теста в ручном режиме и автоматически
- Аналитика по вопросам (Сколько правильных и сколько не правильных)
- Тест показывает правильный и не правильный ответ настраиваемо, как в момент прохождения теста, так и при просмотре формы
- Выбираться должен ответ, один из множества, несколько правильных, выбор изображений.
- Возможность комментировать ответы обучающихся при проверке теста
И все это есть в Google Формах.
Я протестировал, поигрался с составлением тестов и понял, что да, это то что надо. Одновременно разбираясь записывал инструкцию. Получилось примерно 30 минут. Видео и тайминг ниже.
Приятного просмотра. Откройте для удобства на полный экран!
Тайминг на видео тест в Гугл Формах
Чтоб вам долго не искать я создал тайминг который позволит легко попасть в нужное место в видео для решения своего вопроса.
Ссылка на Google Формы https://docs.google.com/forms
Как создать форму 3:31 https://www.youtube.com/watch?v=LrGTWrMuc20?t=211
Как включить тесты 6:03 https://www.youtube.com/watch?v=LrGTWrMuc20?t=363
Как добавить описание вопроса 6:32 https://www.youtube.com/watch?v=LrGTWrMuc20?t=392
Как добавлять баллы за правильный ответ 6:48 https://www.youtube.com/watch?v=LrGTWrMuc20?t=408
Как добавить комментарий к правильному и не правильному ответу 6:53 https://www.youtube.com/watch?v=LrGTWrMuc20?t=413
Как выбрать множественный вариант ответа 8:40 https://www.youtube.com/watch?v=LrGTWrMuc20?t=520
Как добавить свой вариант ответа 9:03 https://www.youtube.com/watch?v=LrGTWrMuc20?t=543
Как работает обязательный вопрос 9:27 https://www.youtube.com/watch?v=LrGTWrMuc20?t=567
Как вставлять картинки в тест 10:15 https://www.youtube.com/watch?v=LrGTWrMuc20?t=615
Как настроить внешний вид теста 12:52 https://www.youtube.com/watch?v=LrGTWrMuc20?t=772
Как разместить тест на сайте 13:50 https://www.youtube.com/watch?v=LrGTWrMuc20?t=830
Как отправить тест по почте 13:50 https://www.youtube.com/watch?v=LrGTWrMuc20?t=830
Как дать ссылку на прохождение теста 13:50 https://www.youtube.com/watch?v=LrGTWrMuc20?t=830
Где смотреть аналитику 16:47 https://www.youtube.com/watch?v=LrGTWrMuc20?t=1007
Как сделать чтобы отвеченный вопрос исчезал, а появлялся новый 17:57 https://www.youtube.com/watch?v=LrGTWrMuc20?t=1077
Как проверять в ручном режиме тесты и как в автоматическом 23:33 https://www.youtube.com/watch?v=LrGTWrMuc20?t=1413
Моментальная проверка ответа. Настройка действия после определенного ответа 25:40 https://www.youtube.com/watch?v=LrGTWrMuc20?t=1540
Как делать пояснения к вопросу под вопросом или над вопросом 27:38 https://www.youtube.com/watch?v=LrGTWrMuc20?t=1658
Как скачать варианты ответов в виде таблицы к себе на комп 35:21 https://www.youtube.com/watch?v=LrGTWrMuc20?t=2121
Ну и демонстрация теста, как без неё)))
Я думаю любой сможет собрать тест в Гугл Формах. Пробуйте!
Simple Tests
To create a test:
- Use the macro to define and name a test function. These are
ordinary C++ functions that don’t return a value. - In this function, along with any valid C++ statements you want to include,
use the various googletest assertions to check values. - The test’s result is determined by the assertions; if any assertion in the
test fails (either fatally or non-fatally), or if the test crashes, the
entire test fails. Otherwise, it succeeds.
TEST(TestSuiteName, TestName) { ... test body ... }
arguments go from general to specific. The first argument is the name
of the test suite, and the second argument is the test’s name within the test
suite. Both names must be valid C++ identifiers, and they should not contain
any underscores (). A test’s full name consists of its containing test suite and
its individual name. Tests from different test suites can have the same
individual name.
For example, let’s take a simple integer function:
int Factorial(int n); // Returns the factorial of n
A test suite for this function might look like:
// Tests factorial of 0. TEST(FactorialTest, HandlesZeroInput) { EXPECT_EQ(Factorial(), 1); } // Tests factorial of positive numbers. TEST(FactorialTest, HandlesPositiveInput) { EXPECT_EQ(Factorial(1), 1); EXPECT_EQ(Factorial(2), 2); EXPECT_EQ(Factorial(3), 6); EXPECT_EQ(Factorial(8), 40320); }
googletest groups the test results by test suites, so logically related tests
should be in the same test suite; in other words, the first argument to their
should be the same. In the above example, we have two tests,
and , that belong to the same test
suite .
Availability: Linux, Windows, Mac.
Создание страницы со структурированными данными
При создании страницы со структурированными данными рекомендуем следовать приведенным ниже инструкциям.
- Соблюдайте требования, которые действуют для вашего типа контента. Пример: .
- Протестируйте свой код с помощью инструмента проверки расширенных результатов. Для этого перейдите по этой ссылке, вставьте код в поле и нажмите Проверить код.
- Опубликуйте страницу и с помощью инструмента проверки URL посмотрите, как она выглядит в Поиске. Если у вас есть обычная и мобильная страница, добавьте структурированные данные в обе версии. Убедитесь, что доступ Google к странице не заблокирован метатегами robots и noindex и что для него не требуется авторизация. Если всё в порядке, в Сканере Google для сайтов запросите индексирование страницы. Подробнее о том, …
- Когда страница будет проиндексирована, проверьте ее на наличие ошибок, используя подходящие отчеты о статусе расширенных результатов.
В идеале количество расширенных результатов или типов структурированных данных должно вырасти, а число ошибок – нет.- Если при сканировании структурированных данных не происходит ошибок, обновите файлы Sitemap, чтобы робот Googlebot мог сканировать страницу регулярно.
- Если ошибки есть, исправьте их, снова воспользуйтесь инструментом проверки URL и запросите повторное индексирование. Когда будут устранены все неполадки, опубликуйте остальные страницы.
- Периодически (особенно после выпуска новых шаблонов и обновления кода) проверяйте страницы на наличие ошибок, используя подходящие отчеты о статусе расширенных результатов.
Как создать тест при помощи Форм Google
Как я уже писала здесь, сейчас я ищу сервис, который позволял бы создавать красивые онлайн-тесты, добавлять в них различные элементы, такие как изображение или ссылка, автоматически проверять ответы, а также встраивать тест на сайт или блог.
Подобных сервисов существует огромное количество, но они, как правило, платные, $20-40 в месяц. Прежде чем приобрести подписку на один из платных сервисов, мне показалось логичным изучить бесплатные варианты. Один из таких вариантов — это создание тестов при помощи Форм Google.
Думаю, что Вы знакомы с различными возможностями Диска Google, такими как создание таблиц, презентаций, форм, и так далее. Они очень похожи на те, что можно найти в пакете Microsoft Office. Так, Документы Google похожи на Word, Таблицы Google — на Excel, и так далее. Но у них есть одно существенное преимущество, а именно возможность использовать их бесплатно, как для индивидуальных пользователей, так и учебных заведений.
Для того, чтобы получить доступ к Google Диску, Вам необходима учетная запись в Google. Если такой учетной записи у Вас нет, то создайте ее, а затем войдите под своим именем и перейдите в Google Диск.
Для того, чтобы создать новую форму, выберите Создать – Google Формы.
После чего Вы создаете новую форму. Даете ей название, и добавляете вопросы, выбирая необходимый тип вопроса. В качестве эксперимента я создала тест по употреблению артиклей a/an/the. Тип вопросов — множественный выбор. Вы можете сделать некоторые вопросы обязательными. Пока учащийся не ответит на все обязательные вопросы, он не сможет отправить результаты теста.
При необходимости, Вы можете также добавить такие элементы, как видео, изображение, шкала, сетка, и так далее, выбрав внизу формы пункт Добавить элемент.
Вы также можете сменить тему, выбрав в верхнем меню пункт Вид, в затем Сменить тему.
После того, как Ваша форма готова, нажимаете Отправить внизу страницы, и сервис создаст для Вас ссылку, а также код, который можно встроить на сайт. Здесь есть интересная функция — возможность отправить тест на почту. Получатель сможет заполнить форму прямо в письме, если у него почта на gmail.
После того, как Вы создали и опубликовали форму, Google автоматически создаст таблицу, в которую будут, опять же автоматически, вноситься все варианты ответов. Попробуйте заполнить форму несколько раз. Один раз заполните ее правильно.
Для того, чтобы автоматически проверить ответы, необходимо установить дополнение Flubaroo. Для этого Вам необходимо будет в верхнем меню перейти в пункт Дополнения — Установить дополнение, и среди дополнений найти Flubaroo. Устанавливаете дополнение, запускаете его, а затем выбираете пункт Grade Assignment.
Далее скрипт предложит Вам выбрать, во сколько баллов оценивать ответы, и необходимо ли автоматически проверять их все.
Далее Вам необходимо будет среди имеющихся заполнений выбрать правильное, относительно которого будут проверяться все остальные.
Дополнение автоматически проверит ответы, а также сгенерирует статистику правильных и неправильных ответов.
Как я уже писала выше, Google генерирует код, который позволяет встроить форму в сайт или блог. Она будет доступна, если Ваш сайт создан, например, при помощи Blogger или Сайтов Google, но я не могу вставить ее себе на этот блог, работающий на WordPress. Не знаю, в чем тут дело. Возможно, в теге iframe, возможно, в особенностях моей темы.
Плюс к этому, невозможно сделать так, чтобы учащийся видел результаты теста сразу после его выполнения непосредственно на сайте, как это позволяет сделать, например, Polldaddy. Поэтому я сейчас изучаю другие, платные варианты. О результатах напишу чуть позже.
На Youtube есть подробная видео-инструкция по созданию тестов при помощи Форм Google.
Понимание тестовых фикстур
Перед началом модульного тестирования, как правило, выполняется некоторая пользовательская инициализация. Например, если вы пытаетесь определить время выполнения теста и занимаемый им объем памяти, то вам необходимо написать для этого теста определенный код, позволяющий измерить эти значения. Здесь в дело вступают фикстуры, помогающие вам настраивать такие тестовые окружения. В показано, как выглядит класс тестовой фикстуры.
Листинг 13. Класс тестовой фикстуры
class myTestFixture1: public ::testing::test { public: myTestFixture1( ) { // код инициализации } void SetUp( ) { // код, который будет выполнен перед началом теста } void TearDown( ) { // код, который будет выполнен сразу по завершении теста // при необходимости здесь можно вызывать исключения } ~myTestFixture1( ) { // очистка всех ресурсов, вызов исключений не допускается } // сюда можно поместить необходимые вам пользовательские объекты данных };
Класс фикстуры является производным от класса , объявленного в модуле . В приведен пример, в котором используется класс фикстуры
Обратите внимание на то, что в данном примере вместо макроса используется макрос
Листинг 14. Пример использования фикстуры
TEST_F (myTestFixture1, UnitTest1) { . } TEST_F (myTestFixture1, UnitTest2) { . }
Ниже перечислены несколько условий, которые необходимо учитывать при использовании фикстур:
- Вы можете выполнить инициализацию или распределение ресурсов как с помощью конструктора, так и с помощью метода – выбор остается за вами.
- Вы можете освобождать ресурсы с помощью метода или с помощью функции деструктора. Однако если вы хотите использовать обработку исключений, вы должны делать это только через метод , поскольку вызов исключения в деструкторе может привести к непредсказуемым результатам.
- Макросы правил Google могут вызывать исключения на тех платформах, для которых они доступны в будущих версиях. Поэтому для лучшего сопровождения программ хорошо использовать макросы правил в коде метода .
- Одни и те же фикстуры не используются в различных тестах. Для каждого нового модульного теста система создает новую тестовую фикстуру. Так что в метод (пожалуйста, используйте здесь правильную орфографию) вызывается дважды, потому что создаются два объекта .
Коды и статусы версий для тестирования
Требования к номерам версий
Пользователи получают последнюю версию приложения, для которой справедливы оба условия:
- версия совместима с устройством пользователя;
- у пользователя есть доступ к этой версии.
У всех пользователей есть доступ к рабочей версии. Если номер опубликованной рабочей версии больше, чем у доступной версии для тестирования, пользователи получат APK-файл рабочей версии.
Пользователи с доступом к разным версиям получат APK-файл с наибольшим номером, опубликованный для соответствующей версии.
Чтобы пользователь мог получать версии для тестирования, должны выполняться такие условия:
- Пользователь должен быть в указан в настройках версии.
- Пользователь должен зарегистрироваться в соответствующей программе тестирования.
Например, у всех пользователей, зарегистрированных в программе тестирования, есть доступ к версии для открытого тестирования. У пользователей, зарегистрированных в программе внутреннего тестирования, нет доступа к версиям для открытого и закрытого тестирования, даже если эти пользователи указаны в настройках версий. Соответственно, такие пользователи не будут получать последние APK-файлы, опубликованные для этих версий.
Запасные версии приложения
При запуске новой версии приложения вы можете увидеть сообщения о том, что тестировщики определенной версии получили APK-файл или набор App Bundle, предназначенный для другой версии – резервной.
Статусы и условия резервных версий
- Shadowed (Замещено). Один APK-файл заменяет другой. Это происходит, когда он частично или полностью соответствует конфигурации устройства и его номер версии выше.
- Promoted (Улучшено). Все APK-файлы для определенной группы пользователей заменены более стабильными версиями. Например, вместо APK-файла для бета-тестирования пользователь скачивает APK-файл рабочей версии. Такая ситуация возникает, если вы выпускаете сначала тестовую версию приложения, а затем более стабильную.
- Superseded (Заменено). Все APK-файлы для определенной группы пользователей полностью заменены более поздними версиями приложения. Пользователи не могут скачать никакой из этих файлов и получают запасные версии. Такое происходит, если вы перестаете обновлять версии приложения для определенных групп пользователей.
- Partially shadowed (Частично замещено). Хотя бы один основной APK-файл замещен запасным APK-файлом с более высокой версией. В таком случае некоторые бета-тестировщики получат предназначенный им APK-файл, а другие могут получить рабочую версию приложения. Обычно это происходит из-за некорректной нумерации версий.
Выбираем тип проекта (эксперимента)
На нижнем уровне иерархии — проект. По сути, это эксперимент, который запускается для решения конкретной задачи. Задачи могут быть разными, например:
- протестировать цвет или текст CTA-кнопок;
- сравнить эффективность посадочной страницы с видео на первом экране и без него;
- проанализировать эффективность разных форм обратной связи и т. д.
В сервисе доступно 4 вида проектов. Расскажем о каждом из них.
Эксперимент А/Б
Классический А/Б тест. С помощью этой функции вы можете создать несколько вариантов страницы, с разным отображением одного элемента. При этом вариантов не обязательно должно быть два — их можно создавать сколько угодно.
Google будет распределять трафик между вариантами страницы в зависимости от настроек:
- Равномерно — каждый вариант получит равную долю трафика. Например, если вы создали 5 вариантов страницы, каждый из них получит по 20% от общего трафика.
- Заданную вручную долю трафика. В настройках вы можете указать, на какой из вариантов направить больше трафика.
С помощью настроек таргетинга в проекте можно выбрать аудиторию, которой будут показываться измененные варианты страницы. Например, ее могут видеть только пользователи мобильных или аудитория, которая приходит с конкретной рекламной кампании.
Дополнительно можно указать, какая доля общего трафика должна участвовать в эксперименте.
Самый простой пример А/Б теста — тестирование разного цвета кнопок. Например, изначально на сайте стоит CTA-кнопка синего цвета, но мы хотим проверить гипотезу: изменится ли конверсия, если кнопка будет более яркой (скажем, красной). Для этого создаем вариант исходной страницы с измененным цветом кнопки.
После запуска проекта Google Optimize будет рандомизированно распределять трафик между вариантами страницы и сравнивать эффективность по заданному параметру (например, по уровню конверсии).
Многовариантный эксперимент
В отличие от А/Б теста он позволяет протестировать изменение сразу нескольких элементов.
Например, этот вариант подойдет, если нужно протестировать два заголовка и три изображения.
Система создаст все возможные комбинации страниц, в зависимости от того, сколько элементов и какое количество вариантов мы хотим протестировать. В нашем примере будет создано 6 комбинаций (2 заголовка * 3 картинки = 6).
Если вы хотите посмотреть, изменение какого элемента на странице даст больший прирост конверсий, используйте этот вариант экспериментов.
Эксперимент с переадресацией
В предыдущих вариантах экспериментов сравнивались одни и те же страницы, отличались лишь отдельные элементы. Здесь же сравниваются разные страницы.
Пример. Допустим, вы делаете посадочную страницу для продажи продукта. Хотите протестировать две версии лендинга:
- на одной — подробно описан продукт, его свойства, характеристики и особенности, расписаны ответы на возражения и частые вопросы и т.д.;
- другой — более лаконичный. На нем только основная информация, нужная для принятия решения, и призыв к действию.
Чтобы узнать, что сработает лучше, создайте в Google Optimize эксперимент с переадресацией и укажите две страницы с разным URL:
- в качестве исходной укажите лендинг, где все расписано максимально подробно;
- в качестве тестируемой — лаконичный.
После завершения тестов вы получите данные и узнаете, какой из вариантов посадочной страницы сработал лучше.
Персонализация
Позволяет вносить изменения на сайте для персонализированного показа определенной аудитории. Персонализация нужна после того, как вы уже провели эксперимент (например, А/Б тест) и определили выигрышный вариант изменений. На основе этого варианта Google Optimize создаст персонализацию. Ее можно настроить для показа любому сегменту аудитории.
Также «Персонализация» пригодится в случаях, когда нужно запустить краткосрочную акцию для определенного сегмента аудитории. Например, с 1 по 31 июля вы хотите предложить бесплатную доставку клиентам из Москвы. Для этого создаете проект с типом эксперимента «Персонализация». Вносите изменения на сайт с помощью браузерного расширения Google Optimize — добавляете текст с информацией о бесплатной доставке. В настройках таргетинга указываете целевое местоположение — Москва.
После запуска эксперимента жители Москвы будут видеть ваше предложение, а остальным пользователям будет показана обычная версия страницы.
«Смертельные» тесты
В системе Google C++ Testing Framework имеется интересная категория правил (, и т. д.), называющихся «смертельными» правилами. Эти правила используются для проверки того, было ли какое-либо сообщение об ошибке получено в результате передачи на вход функции некорректных данных, или же работа этой функции была завершена в соответствии с заранее определенным кодом завершения. Например, возвращаясь к , неплохо было бы получить сообщение об ошибке при выполнении функции и выйти из программы со статусом вместо получения значения . В для такого сценария используется правило .
Листинг 11. Выполнение «смертельного» теста платформы Google
#include "gtest/gtest.h" double square-root (double num) { if (num < 0.0) { std::cerr << "Error: Negative Input\n"; exit(-1); } // Код для 0 и положительных чисел… } TEST (SquareRootTest, ZeroAndNegativeNos) { ASSERT_EQ (0.0, square-root (0.0)); ASSERT_EXIT (square-root (-22.0), ::testing::ExitedWithCode(-1), "Error: Negative Input"); } int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }
Правило проверяет, была ли функция завершена в соответствии с заданным кодом завершения (т. е. аргументом функций или ), и сравнивает заключенную в кавычки строку с тем, что выводит функция на стандартное устройство сообщений об ошибках
Обратите внимание на то, что сообщения об ошибках должны выводиться на устройство , а не на. В представлены макеты для правил и
Листинг 12. Макеты для «смертельных» правил
ASSERT_DEATH(оператор, ожидаемое_сообщение) ASSERT_EXIT(оператор, предикат, ожидаемое_сообщение)
Google предоставляет в ваше распоряжение встроенный предикат . Результат этого предиката будет истинным только в том случае, если программа завершается с тем же кодом завершения, что и аргумент этого предиката. Правило проще, чем правило – оно просто сравнивает сообщение об ошибке, выводимое на стандартное устройство, с ожидаемым сообщением, заданным пользователем.
Регулярные выражения
Если вы хотите, чтобы ответы респондентов соответствовали нескольким критериям, используйте регулярные выражения. Они позволяют сравнивать ответы с заданным вами шаблоном.
Примеры регулярных выражений
Таблица содержит примеры некоторых регулярных выражений, поддерживаемых Google Документами. Вам доступны не только они, но и многие другие.
Выражение | Описание | Пример | Результаты поиска | Не отобразится в результатах |
---|---|---|---|---|
. | На месте точки может быть любой символ. | с. | сом, стол, осока | том, порт |
* | Символ перед звездочкой может присутствовать в слове, отсутствовать или повторяться несколько раз. | со* | сон, сн, сооон | сОн, соль |
+ | Символ перед знаком плюса повторяется один или несколько раз подряд. | со+н | сон, сооон | сн, сОн, соль |
? | Символ перед знаком вопроса может присутствовать или не присутствовать в слове. | со?н | сн, сон | сОн, соль |
^ | Знак вставки в начале регулярного выражения означает, что результат начинается с указанных в скобках символов или их сочетания. | ^он | сон, тон | не сон, и тон |
$ | Знак доллара ставится в конец регулярного выражения. Это означает, что результат заканчивается одним или несколькими символами, расположенными перед $. | он$ | сон, тон, и тон | сонм, тонна |
{A,B} | Часть выражения, заключенная в скобки, повторяется от А до В раз (на месте А и В нужно указать числа). | с(о{1,2})н | сон, соон | сн, сооон, сОн |
, , | Только один символов, указанных в квадратных скобках, может содержаться в результате поиска. В скобки можно поместить любое выражение, в том числе одно из описанных выше в таблице. Например, запрос может выглядеть так: | cн | сон, сан | сн, сОн, сооон |
Поиск символа в заданном диапазоне. Обычно используются диапазоны а-я, А-Я и 0-9. Их можно объединять между собой () или комбинировать с другими выражениями из данной таблицы (. | cн | сан, син, сен, сон | сн, сОн, сын | |
Здесь знак вставки означает поиск символа, который не входит в указанный диапазон. | сн | сон, сОн, сын, с$н | сн, сан, сен | |
\s | Все символы пробелов. | с\sн | с н, сн | сн, сон, стон |
Примечание. Хотите найти в таблице символ, который входит в регулярные выражения (например, ^ или $)? Поставьте в начале запроса обратную косую черту (\). Например, чтобы найти все упоминания символа $, введите \$.
Вот несколько примеров использования регулярных выражений для поиска по таблице:
Поиск ячеек, содержащих суммы, указанные в долларах
Введите в строку поиска запрос ^\$(+)?+
Это значит, что вы ищете сумму в долларах, которая начинается с любой цифры от 0 до 9 (или с запятой). Цифра может повторяться или не повторяться. Затем следует любая цифра от 0 до 9, повторяющаяся один или более раз. В результатах может отобразиться любая из следующих сумм: $4,666, $17,86, $7,76, $0,54, $900 001,00, $523 877 231,56.
Поиск почтовых индексов США
Введите в строку поиска следующую команду: {5}(-{4})?
Так вы найдете почтовые индексы США, состоящие из пяти цифр, дефиса (опционально) и четырехзначного цифрового кода.
Поиск имен, начинающихся со строчной буквы
Введите в строку поиска следующую команду: ^.*
Так вы найдете текст, начинающийся со строчной буквы, за которой следуют другие символы. В результатах поиска отобразятся ячейки, содержащие, например, такие слова: катя, лена, дМИТРИЙ, люБа.
Заключение
В этой статье мы лишь поверхностно рассмотрели платформу Google C++ Testing Framework. Подробная документация по этой платформе доступна на сайте компании Google. Для профессиональных разработчиков я рекомендую ознакомиться с дополнительными материалами об открытых платформах регрессионного тестирования, таких как Boost unit test framework и CppUnit. Для получения дополнительной информации обратитесь к разделу .
Похожие темы
- Оригинал статьи «A quick introduction to the Google C++ Testing Framework» (EN).
- Прочитайте статью Google TestPrimer (EN), чтобы начать работу с Google C++ Testing Framework.
- Для более подробного изучения Google C++ Testing Framework ознакомьтесь с руководством Google TestAdvancedGuide (EN).
- На странице Google TestFAQ (EN) вы найдете советы и ответы на часто задаваемые вопросы, касающиеся платформы Google C++ Testing Framework.
- Прочитайте статью «Open source C/C++ unit testing tools, Part 1: Get to know the Boost unit test framework» (EN) (developerWorks, декабрь 2009).
- Прочитайте статью «Open source C/C++ unit testing tools, Part 2: Get to know CppUnit» (EN) (developerWorks, январь 2010).
- Для получения дополнительной информации о сравнении чисел с плавающей запятой ознакомьтесь со статьями What Every Computer Scientist Should Know About Floating-Point Arithmetic (EN) Дэвида Голдберга (David Goldberg) и Comparing floating point numbers (EN) Брюса Доусона (Bruce Dawson).
- Загрузите Google C++ Testing Framework.
- Загрузите ознакомительные версии программного обеспечения IBM или работайте с онлайновыми пробными версиями на странице IBM SOA Sandbox. Познакомьтесь с инструментами для разработчиков и межплатформенными приложениями от DB2, Lotus, Rational, Tivoli и WebSphere.