2010-07-20 2 views
3

Краткая версия. Каков наилучший способ автоматизации тестирования совместимости против большого количества сторонних программ?Автоматизация тестирования совместимости с множеством программ

Детали:

Я разработать program, основной особенностью взаимодействует с различными различных частей музыкального проигрывателя программного обеспечения с помощью их соответствующих RPC интерфейсов. Сам RPC обычно происходит либо через D-Bus, либо через некоторую клиентскую библиотеку , специфичную для конкретного игрока. Поскольку у каждого музыкального плеера есть свой собственный уникальный RPC-интерфейс, моя программа требует специального кода для .

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

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

Вот проблемы, которые я вижу:

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

  • Эти начальные состояния могут быть частично динамическим. Например, музыкальная библиотека будет содержать полные пути к музыкальным файлам внутри нее, но пути к фактическим «музыкальным» файлам, которые используются для тестирования, будут варьироваться от к машине и не будут известны до времени исполнения.

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

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

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

Итак, Каков наилучший способ автоматизации тестирования совместимости с большим числом (несколько десятков) сторонних программ?

В случае, если это влияет на рекомендации, моя программа написана на Python, , и я использую GNU autotools в качестве рамки сборки.

ответ

0

Если это единственная среда Windows, есть один способ пойти, и это с MS Hyper-V.

Link (http://www.microsoft.com/virtualization/en/us/solution-application-development.aspx)

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

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

Большая проблема в том, что эти расходы хороший немного денег и Hyper-V - довольно сложный продукт для настройки.

Возможно, альтернативой может быть использование Virtual Box (Open Source) и создание собственного скрипта для автоматизации установки изображения с новыми версиями программного обеспечения для тестирования. Я сделал это со стандартным сценарием чтения изображений при запуске из сетевой папки, чтобы установить какое-либо программное обеспечение для тестирования. Его не полностью автоматизированное решение, но сэкономило моей команде много времени.

+0

Это Linux, поэтому Hyper-V не является вариантом. Я закончил настройку виртуальной машины (используя kvm) с моими различными объектами, установленными параллельно, с настраиваемой тестовой жгутом для сброса их конфигураций для каждого теста. Я надеялся, что для этого будет какой-то существующий инструмент, так как упряжь была нетривиальной задачей для создания. –

Смежные вопросы