Я работаю в компании среднего размера (150 человек, команда инженеров ~ 10), и большинство моих проектов включают взаимодействие с лабораторным оборудованием (осциллографы, анализаторы оптического спектра и т. Д.) Для целей полуавтоматических тестовых приложений. Я столкнулся с несколькими различными сценариями, в которых я не могу эффективно устранять неполадки или тестировать новый код, потому что у меня больше нет или никогда не было доступной настройки оборудования для меня.
Пример 1: установка, в которой 10-20 процессов «прожигания» выполняются независимо с использованием настольного датчика - я смог получить один такой датчик для тестирования и иногда мог украсть секунду для моделирования всех аспектов сопряжения с несколько устройств (поиск, подключение, потоковая передача и т. д.).
В конце концов обнаружилась ошибка (и в конечном итоге оказалась в микропрограмме и драйверах устройства), которую было очень трудно точно воспроизвести только с одним устройством, но она достигла уровня «покажите стопор», когда 10-20 из этих устройств использовались одновременно. Это все еще не решено и продолжается.
Пример 2. Тест, требующий использования дорогостоящего оптического анализатора спектра в качестве основного компонента. Устройство довольно старое, по словам производителя, которое было приобретено более крупной компанией и в основном распущено, и его единственная документация была длинным (и неинформативным) документом, который кажется плохо переведенным. Во время первоначальной разработки я мог держать устройство на своем рабочем столе, но теперь оно было привязано как физически, так и по графику во время его многонедельных тестов 24/7.
Когда обнаруживаются ошибки, связанные или не связанные с устройством, мне часто приходится сталкиваться с проблемой тестирования кода, внешнего по отношению к приложению, его встраивания или написания кода вслепую и попытки выжать некоторое время между тестами, как можно больше. логика программы требует наличия OSA и остального тестового оборудования.
Я думаю, мой вопрос, как я должен подойти к этому? Потенциально я мог бы потратить время на разработку симуляторов устройств, но подсчитав, что в оценке развития это будет больше, чем многие, вероятно, оценят. Он также может точно не воспроизводить все проблемы, и довольно редко можно увидеть такое же оборудование, которое используется здесь дважды. Я мог бы стать лучше в модульном тестировании ... и т.д. ... Я также мог бы громко рассказать об этой проблеме и дать понять другим, что потребуются временные задержки, не намного больше, чем головная боль для исследований и разработок, но обычно воспринимаемая как шутка когда передано в производство.