Книга: Как тестируют в Google
Интерфейсы и протоколы
Интерфейсы и протоколы
С описанием интерфейсов и протоколов разработчики Google справляются легко, ведь для этого нужно писать их любимый код. В Google разработали специальный расширяемый язык Protocol Buffer[19] для сериализации структурированных данных. Protobuf — это механизм описания данных, который не зависит от языка программирования или платформы, которые вы собираетесь использовать. По сути, он похож на XML, только компактнее, быстрее и проще. Разработчик определяет структуру данных с помощью Protocol Buffer и потом использует сгенерированные исходники для чтения и записи структурированных данных на разных языках (Java, C++ или Python). Часто код Protocol Buffer становится первым написанным кодом в проекте. Можно встретить документацию, которая ссылается на protobuf-файлы при описании того, как должна работать полностью реализованная система.
Разработчик в тестировании тщательно анализирует protobuf-код, потому что вскоре ему придется реализовывать большинство интерфейсов и протоколов, описанных в этом коде. Все верно, именно разработчик в тестировании обычно делает эту работу. Необходимость в интеграционном тестировании часто возникает до того, как будут построены все зависимые подсистемы, и к этому надо быть готовым. Чтобы проводить интеграционное тестирование настолько рано, разработчик в тестировании создает имитации и заглушки нужных зависимостей каждого компонента. Интеграционные тесты все равно придется написать, и чем раньше они будут написаны, тем больше от них пользы. Подставные объекты и имитации пригодятся для интеграционного тестирования и дальше. Через них гораздо проще имитировать условия возникновения ошибки и сам сбой, чем через боевую систему.
На заметку
Чтобы проводить интеграционное тестирование как можно раньше, разработчик в тестировании создает имитации и заглушки нужных зависимостей каждого компонента.
- Жизнь разработчика в тестировании
- Как организованы процессы разработки и тестирования
- Кто такие разработчики в тестировании на самом деле?
- Ранняя стадия проекта
- Структура команды
- Проектная документация
- Интерфейсы и протоколы
- Планирование автоматизации
- Тестируемость
- Как появились очереди на отправку и непрерывная сборка Джефф Карролло
- Пример работы разработчика в тестировании
- Выполнение тестов
- Определения размеров тестов
- Как мы используем размеры тестов в общей инфраструктуре
- Преимущества разных размеров тестов
- Требования к выполнению тестов
- Тестирование на скоростях и в масштабах Google Пуджа Гупта, Марк Айви и Джон Пеникс
- Тест-сертификация
- Как мы собеседуем на позицию разработчиков в тестировании
- 5.21 IP-адреса, интерфейсы и множественное пребывание
- Множественные интерфейсы и имена методов
- 2.2 Интерфейсы IDE, EIDE и АТА
- 7.5 Программные интерфейсы приложений для адаптеров шины
- Абстрактные базы как двоичные интерфейсы
- Интерфейсы накопителей на жестких магнитных дисках
- Протоколы модемной связи
- 5 Текстовое представление данных: ясные протоколы лежат в основе хорошей практики
- Протоколы
- 16. Лекция: Введение в сетевые протоколы
- Глава 10 Интерфейсы компьютерных сетей
- Интерфейсы