Требования к выполнению тестов
Требования к выполнению тестов
У системы выполнения тестов в Google одинаковые требования ко всем тестам.
— Каждый тест должен быть независим от других, чтобы тесты могли выполняться в любом порядке.
— Тесты не должны иметь долгосрочных последствий. После их завершения среда должна возвращаться в то же состояние, в котором она находилась при запуске.
Требования простые и понятные, но выполнить их оказывается не так просто. Даже если сам тест отвечает требованиям, тестируемая программа может их нарушать, сохраняя файлы данных или изменяя конфигурацию. К счастью, сама среда выполнения тестов Google упрощает соблюдение этих требований.
Что касается требования независимости, инженер во время прогона может установить флаг выполнения тестов в случайном порядке. Эта фича помогает выявить зависимости, связанные с порядком выполнения. Впрочем, случайный порядок может означать, что тесты запускаются параллельно. Система может отправить выполнять два теста на одной машине. Если каждый тест требует единоличного доступа к ресурсам системы, один из них упадет. Например:
— оба теста пытаются подключиться к одному порту для единоличного получения сетевого трафика;
— оба теста пытаются создать каталог, используя один путь;
— один тест создает и заполняет таблицу базы данных, а другой пытается удалить ту же таблицу.
Такие конфликты могут вызывать сбои не только в самих тестах, но и в соседних тестах, которые выполняются в той же системе, даже если эти другие тесты соблюдают правила. Наша система умеет выявлять такие ситуации и оповещать владельцев тестов-бунтарей.
Если установить специальный флаг, тест будет выполняться единолично на выделенной машине. Но это лишь временное решение. Все равно придется переписать тесты и удалить зависимости от критических ресурсов. Например, эти проблемы можно решить так:
— каждый тест запрашивает свободный порт у системы выполнения тестов, а тестируемая программа динамически к нему подключается;
— каждый тест создает все папки и файлы во временной директории, созданной и выделенной системой специально для него перед выполнением тестов;
— каждый тест работает со своим экземпляром базы данных в изолированной среде с выделенными системой выполнения тестов директориями и портами.
Ребята, ответственные за сопровождение системы выполнения тестов Google, довольно подробно описали свою среду выполнения тестов. Их документ называется «Энциклопедией тестирования Google», и он отвечает на все вопросы о том, какие ресурсы доступны тестам во время выполнения. «Энциклопедия тестирования» составлена как стандартизированный документ, где у терминов «должен» и «будет» однозначное значение. В энциклопедии подробно объясняются роли и обязанности тестов, исполнителей тестов, систем хостинга, рантайм-библиотек, файловых систем и т.д.
Вряд ли все инженеры Google читали «Энциклопедию тестирования». Скорее всего, большинство предпочитает учиться у других, или испытывать метод проб и ошибок, или постоянно натыкаться на комментарии рецензентов их кода. Они и не подозревают, что общая среда выполнения тестов может обслужить все проекты по тестированию Google. Чтобы это узнать, достаточно заглянуть в энциклопедию. Им неизвестно, что этот документ — главная причина того, что тесты ведут себя в общей среде ровно так же, как и на личной машине написавшего тест инженера. Технические детали даже самых сложных систем остаются незамеченными теми, кто их использует. Все же работает, зачем читать.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Выполнение тестов
Выполнение тестов На Web-сайте книги в каталоге TimeTest находятся пакетные файлы, с помощью которых вы сможете запускать тесты как под управлением Windows 2000/NT, так и под управлением Windows 9x:• cpTIME.bat• cpTIME.bat• atouTIME.bat• grepTIME.bat• sortTIME.bat• threeST.batДля всех тестов, кроме тестов
Набор тестов
Набор тестов Итак, для проверки гипотезы и установления истинных коэффициентов нам потребуется 2 набора тестов:Тесты на сжатие: для набора пар значений «size — gzip»Тесты на запись: для набора пар значений «size — FS»Почему именно 2 — а как же издержки на инициализацию
Обязательства по выполнению
Обязательства по выполнению Описывают действия, которые должна выполнить организация, чтобы обеспечить установление и стабильность процесса. Обязательства по выполнению обычно касаются установления организационных политик и поддержки со стороны высшего
Обязательства по выполнению
Обязательства по выполнению Обязательство 1 Проект следует документу организационной политики управления системными требованиями, отнесенными к ПО.В рамках этих практик системные требования, отнесенные к ПО, называются «установленными требованиями».Установленные
Обязательства по выполнению
Обязательства по выполнению Обязательство 1 Должен быть назначен производственный менеджер проекта, в обязанности которого входит обсуждение обязательств и подготовка плана разработки ПО.Обязательство 2 Проект следует документированной организационной политике по
Обязательства по выполнению
Обязательства по выполнению Обязательство 1 Должен быть назначен производственный менеджер проекта, ответственный за работы по проекту и их результаты. Обязательство 2 Проект следует документированной организационной политике управления проектом разработки ПО.Эта
Обязательства по выполнению
Обязательства по выполнению Обязательство 1 Проект следует документированной организационной политике управления производственным субподрядом.Эта политика обычно состоит из следующих положений:1. При выборе субподрядчиков и управлении договорами по субподряду
Обязательства по выполнению
Обязательства по выполнению Обязательство 1 Проект следует документированной организационной политике по обеспечению качества ПО.Эта политика обычно состоит из следующих положений.1. Группа обеспечения качества контролирует работу по всем проектам разработки в
Обязательства по выполнению
Обязательства по выполнению Обязательство 1 Проект следует документированной организационной политике управления конфигурацией ПО (Software Configuration Management, SCM).Эта политика обычно состоит из следующих положений:1. По каждому проекту должны быть назначены конкретные лица,
Обязательства по выполнению
Обязательства по выполнению Обязательство 1. Организация следует документированной политике координирования общекорпоративных мероприятий по разработке и усовершенствованию производственного процесса.Эта политика обычно состоит из следующих указаний:1. Создается
Обязательства по выполнению
Обязательства по выполнению Обязательство 1. Организация следует документированной политике разработки и сопровождения СППО и связанных с ним основных средств.Основные средства ППО:стандартный производственный процесс организации,инструкции и критерии для адаптации
Обязательства по выполнению
Обязательства по выполнению Обязательство 1. Организация следует документированной политике предоставления необходимого обучения.Эта политика обычно состоит из следующих положений:1. Должны быть определены навыки и знания, необходимые для каждой руководящей или
Обязательства по выполнению
Обязательства по выполнению Обязательство 1. Проект следует документированной организационной политике, согласно которой планирование проекта и управление им должно проводиться с использованием СППО и связанных с ним основных средств.Практики, касающиеся СППО и
Обязательства по выполнению
Обязательства по выполнению Обязательство 1. Проект следует документированной организационной политике выполнения операций по разработке ПО.Эта политика обычно состоит из следующих положений:1. Операции разработки ПО выполняются в соответствии с производственным
Виды тестов
Виды тестов Вместо того чтобы разделять тестирование на модульное, интеграционное и системное, мы делим все тесты на малые, средние и большие. Пожалуйста, не путайте с методом оценки из гибких методологий. Мы ориентируемся на охват, а не на размер теста. Малые тесты
Выполнение тестов
Выполнение тестов Автоматизация тестирования — это больше, чем просто написание отдельных тестов. Если подумать, что еще нужно для хорошего результата, мы увидим, что в автоматизации не обойтись без компиляции тестов и их выполнения, анализа, сортировки и формирования