Требования к выполнению тестов

Требования к выполнению тестов

У системы выполнения тестов в Google одинаковые требования ко всем тестам.

— Каждый тест должен быть независим от других, чтобы тесты могли выполняться в любом порядке.

— Тесты не должны иметь долгосрочных последствий. После их завершения среда должна возвращаться в то же состояние, в котором она находилась при запуске.

Требования простые и понятные, но выполнить их оказывается не так просто. Даже если сам тест отвечает требованиям, тестируемая программа может их нарушать, сохраняя файлы данных или изменяя конфигурацию. К счастью, сама среда выполнения тестов Google упрощает соблюдение этих требований.

Что касается требования независимости, инженер во время прогона может установить флаг выполнения тестов в случайном порядке. Эта фича помогает выявить зависимости, связанные с порядком выполнения. Впрочем, случайный порядок может означать, что тесты запускаются параллельно. Система может отправить выполнять два теста на одной машине. Если каждый тест требует единоличного доступа к ресурсам системы, один из них упадет. Например:

— оба теста пытаются подключиться к одному порту для единоличного получения сетевого трафика;

— оба теста пытаются создать каталог, используя один путь;

— один тест создает и заполняет таблицу базы данных, а другой пытается удалить ту же таблицу.

Такие конфликты могут вызывать сбои не только в самих тестах, но и в соседних тестах, которые выполняются в той же системе, даже если эти другие тесты соблюдают правила. Наша система умеет выявлять такие ситуации и оповещать владельцев тестов-бунтарей.

Если установить специальный флаг, тест будет выполняться единолично на выделенной машине. Но это лишь временное решение. Все равно придется переписать тесты и удалить зависимости от критических ресурсов. Например, эти проблемы можно решить так:

— каждый тест запрашивает свободный порт у системы выполнения тестов, а тестируемая программа динамически к нему подключается;

— каждый тест создает все папки и файлы во временной директории, созданной и выделенной системой специально для него перед выполнением тестов;

— каждый тест работает со своим экземпляром базы данных в изолированной среде с выделенными системой выполнения тестов директориями и портами.

Ребята, ответственные за сопровождение системы выполнения тестов Google, довольно подробно описали свою среду выполнения тестов. Их документ называется «Энциклопедией тестирования Google», и он отвечает на все вопросы о том, какие ресурсы доступны тестам во время выполнения. «Энциклопедия тестирования» составлена как стандартизированный документ, где у терминов «должен» и «будет» однозначное значение. В энциклопедии подробно объясняются роли и обязанности тестов, исполнителей тестов, систем хостинга, рантайм-библиотек, файловых систем и т.д.

Вряд ли все инженеры Google читали «Энциклопедию тестирования». Скорее всего, большинство предпочитает учиться у других, или испытывать метод проб и ошибок, или постоянно натыкаться на комментарии рецензентов их кода. Они и не подозревают, что общая среда выполнения тестов может обслужить все проекты по тестированию Google. Чтобы это узнать, достаточно заглянуть в энциклопедию. Им неизвестно, что этот документ — главная причина того, что тесты ведут себя в общей среде ровно так же, как и на личной машине написавшего тест инженера. Технические детали даже самых сложных систем остаются незамеченными теми, кто их использует. Все же работает, зачем читать.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Обязательства по выполнению

Из книги Модель зрелости процессов разработки программного обеспечения автора Паулк Марк

Обязательства по выполнению Описывают действия, которые должна выполнить организация, чтобы обеспечить установление и стабильность процесса. Обязательства по выполнению обычно касаются установления организационных политик и поддержки со стороны высшего


Обязательства по выполнению

Из книги Разгони свой сайт автора Мациевский Николай

Обязательства по выполнению Обязательство 1 Проект следует документу организационной политики управления системными требованиями, отнесенными к ПО.В рамках этих практик системные требования, отнесенные к ПО, называются «установленными требованиями».Установленные


Обязательства по выполнению

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Обязательства по выполнению Обязательство 1 Должен быть назначен производственный менеджер проекта, в обязанности которого входит обсуждение обязательств и подготовка плана разработки ПО.Обязательство 2 Проект следует документированной организационной политике по


Обязательства по выполнению

Из книги Как тестируют в Google автора Уиттакер Джеймс

Обязательства по выполнению Обязательство 1 Должен быть назначен производственный менеджер проекта, ответственный за работы по проекту и их результаты. Обязательство 2 Проект следует документированной организационной политике управления проектом разработки ПО.Эта


Обязательства по выполнению

Из книги автора

Обязательства по выполнению Обязательство 1 Проект следует документированной организационной политике управления производственным субподрядом.Эта политика обычно состоит из следующих положений:1. При выборе субподрядчиков и управлении договорами по субподряду


Обязательства по выполнению

Из книги автора

Обязательства по выполнению Обязательство 1 Проект следует документированной организационной политике по обеспечению качества ПО.Эта политика обычно состоит из следующих положений.1. Группа обеспечения качества контролирует работу по всем проектам разработки в


Обязательства по выполнению

Из книги автора

Обязательства по выполнению Обязательство 1 Проект следует документированной организационной политике управления конфигурацией ПО (Software Configuration Management, SCM).Эта политика обычно состоит из следующих положений:1. По каждому проекту должны быть назначены конкретные лица,


Обязательства по выполнению

Из книги автора

Обязательства по выполнению Обязательство 1. Организация следует документированной политике координирования общекорпоративных мероприятий по разработке и усовершенствованию производственного процесса.Эта политика обычно состоит из следующих указаний:1. Создается


Обязательства по выполнению

Из книги автора

Обязательства по выполнению Обязательство 1. Организация следует документированной политике разработки и сопровождения СППО и связанных с ним основных средств.Основные средства ППО:стандартный производственный процесс организации,инструкции и критерии для адаптации


Обязательства по выполнению

Из книги автора

Обязательства по выполнению Обязательство 1. Организация следует документированной политике предоставления необходимого обучения.Эта политика обычно состоит из следующих положений:1. Должны быть определены навыки и знания, необходимые для каждой руководящей или


Обязательства по выполнению

Из книги автора

Обязательства по выполнению Обязательство 1. Проект следует документированной организационной политике, согласно которой планирование проекта и управление им должно проводиться с использованием СППО и связанных с ним основных средств.Практики, касающиеся СППО и


Обязательства по выполнению

Из книги автора

Обязательства по выполнению Обязательство 1. Проект следует документированной организационной политике выполнения операций по разработке ПО.Эта политика обычно состоит из следующих положений:1. Операции разработки ПО выполняются в соответствии с производственным


Набор тестов

Из книги автора

Набор тестов Итак, для проверки гипотезы и установления истинных коэффициентов нам потребуется 2 набора тестов:Тесты на сжатие: для набора пар значений «size — gzip»Тесты на запись: для набора пар значений «size — FS»Почему именно 2 — а как же издержки на инициализацию


Выполнение тестов

Из книги автора

Выполнение тестов На Web-сайте книги в каталоге TimeTest находятся пакетные файлы, с помощью которых вы сможете запускать тесты как под управлением Windows 2000/NT, так и под управлением Windows 9x:• cpTIME.bat• cpTIME.bat• atouTIME.bat• grepTIME.bat• sortTIME.bat• threeST.batДля всех тестов, кроме тестов


Виды тестов

Из книги автора

Виды тестов Вместо того чтобы разделять тестирование на модульное, интеграционное и системное, мы делим все тесты на малые, средние и большие. Пожалуйста, не путайте с методом оценки из гибких методологий. Мы ориентируемся на охват, а не на размер теста. Малые тесты


Выполнение тестов

Из книги автора

Выполнение тестов Автоматизация тестирования — это больше, чем просто написание отдельных тестов. Если подумать, что еще нужно для хорошего результата, мы увидим, что в автоматизации не обойтись без компиляции тестов и их выполнения, анализа, сортировки и формирования