Как тестируют в Google. Джефф Каролло. Читать онлайн. Newlib. NEWLIB.NET

Автор: Джефф Каролло
Издательство: ""Издательство ""Питер""
Серия:
Жанр произведения: Интернет
Год издания: 2012
isbn: 978-5-496-00893-8
Скачать книгу
все проекты в большой IT-компании могли работать с общей тестовой инфраструктурой, она должна поддерживать множество разных сценариев запуска тестов.

      Например, вот некоторые типичные сценарии запуска тестов, которые поддерживает общая инфраструктура тестирования Google.

      – Разработчик хочет скомпилировать и запустить малый тест и тут же получить результаты.

      – Разработчик хочет запустить все малые тесты для проекта и тут же получить результаты.

      – Разработчик хочет скомпилировать и запустить только те тесты, которые связаны с последним изменением кода, и тут же получить результаты.

      – Разработчик или тестировщик хочет собрать данные о покрытии кода в конкретном проекте и посмотреть результаты.

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

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

      – Команда хочет еженедельно собирать статистику о покрытии кода и отслеживать его прогресс со временем.

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

      Система выполнения тестов Google отличает быстрые задания от медленных по информации о размере тестов. У каждого размера есть верхняя граница времени выполнения теста (табл. 2.1). Размер определяет и потенциальную потребность в ресурсах (табл. 2.2). Система прерывает выполнение и сообщает об ошибке, если тест превышает выделенное для его категории время или доступный объем ресурса. Это мотивирует разработчиков в тестировании назначать правильные метки размеров тестов. Точное определение размеров тестов позволяет системе строить эффективное расписание.

      Таблица 2.1. Цели и ограничения времени отработки тестов по их размеру

      Таблица 2.2. Использование ресурсов в зависимости от размеров теста

      Преимущества разных размеров тестов

      Размер теста имеет значение. Он влияет на специфические преимущества теста. На рис. 2.5 показана общая сводка, а ниже мы приводим более подробный список достоинств и недостатков каждого типа тестов.

      Рис. 2.5. Ограничения разных размеров тестов

      Большие тесты

      Достоинства и недостатки больших тестов:

      – Большие тесты проверяют самое важное – работу приложения. Они учитывают поведение внешних подсистем.

      – Большие