Непрерывное тестирование интеграции с физическими устройствами - PullRequest
2 голосов
/ 12 января 2012

Мне было интересно, как вы проводите тестирование в стиле CI, когда имеете дело с физическими устройствами.

Я представляю, что у вас есть набор тестов и пул устройств, на которые они могутбыть запущеннымДополнительно:

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

Какие серверы CI имеютподдержка для этого?

Мне все еще интересны те, которые имеют частичную поддержку, как изначально, так и через плагины, так как меня интересует, как это делается.

Ответы [ 3 ]

1 голос
/ 17 января 2012

Я могу предложить Test Manager, который является частью пакета TFS от Microsoft.Я не пробовал это со многими различными средами кроме основанных на Windows, хотя я знаю, что есть много соединителей.Я считаю, что для сред на базе Windows это удовлетворит большинство потребностей.

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

Тогда, когда у вас будет достаточно хорошее качество, вы можете перейти к регрессионным и интеграционным тестам, еслинеобходимо.

1 голос
/ 22 января 2012

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

Я реализовал систему сборки для кода, который должен был успешно компилироваться и тестироваться на 4 различных платформах (nt, wince, linux-arm, linux-x86) .Сервер CI будет:

  • Использовать компиляцию сервера сборки linux и winnt (и кросс-компиляцию)
  • Затем скомпилированные тесты и вспомогательные библиотеки будут скопированы всоответствующие устройства и автоматический запуск теста.
  • После того, как набор тестов будет завершен, журнал будет скопирован обратно (или он был записан в fs, смонтированный в сети)
  • Если тестовый набор был успешным, мы помечаем исходный код и упаковываем библиотеки и исполняемые файлы.

Эта же платформа была повторно использована для проверки разработчиком перед фиксацией.Разработчики будут запускать частичную сборку и тестировать (будет перекомпилирован только обновленный исходный код, и эти тесты будут перезапущены) .CI будет выполнять полную сборку (с нуля) .

Наша сборка была довольно быстрой, потому что у нас был правильный DAG для зависимостей сборки.Это позволило одновременно выполнять компиляцию в рамках сборки платформы.Каждая сборка платформы также была параллельной.В результате частичная сборка заняла несколько секунд, полная сборка заняла ~ 30 минут.Наши серверы сборки были довольно мощными (оптимизирован для быстрой компиляции) , а кодовая база была среднего размера (я не помню статистику) .

1 голос
/ 16 января 2012

Непрерывная интеграция позволяет команде часто интегрировать и тестировать свою работу.Автоматизированные сборки предназначены для компиляции, компоновки и запуска юнит-тестов.Вы хотите, чтобы ваш CI работал быстро, особенно если вы запускаете его при каждой регистрации.Вот почему вы хотели бы ограничить действия CI простым подтверждением только сборки и модульных тестов.То, о чем вы спрашиваете, кажется более подробным - в рамках тестирования обеспечения качества (QA) ... и объединение сбоев QA с вашими усилиями CI отвлечет усилия по развитию от прогресса.под впечатлением действия, связанные с CI, не зависят от физической машины final , на которую работа может быть в конечном итоге перенесена.

Теперь ... это не означает, что вы НЕ МОЖЕТЕ взятьCI-скомпилированный пакет и запуск его на какой-то конечной машине-цели ... но опять же ... это действительно считается отдельным действием.

Кажется, это будет усилено в следующем статья Мартина Фаулера .

Обратите внимание, что он не говорит об окончательных целевых устройствах ... только машина сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...