Как эффективно устранить или проверить новый код при установке оборудования, чтобы воспроизвести ошибки трудно или невозможно получить?

Я работаю в небольшой компании (человек 150ish, ~10 размер инженерная команда), и большинство моих проектов предполагает взаимодействие с лабораторным оборудованием (осциллографы, оптические анализаторы спектра и т. д.) Для полу-автоматизированного тестирования приложений. Я бежал в несколько различных сценариев, в которых я не в состоянии эффективно устранить или проверить новый код, потому что я больше нет или никогда не было установки оборудования, доступных для меня.

Пример 1: Установка 10-20 где-то "выгорания" и процессы запускаются самостоятельно с помощью настольного типа датчика - я был в состоянии получить один такой датчик для тестирования и может иногда украсть вторую для моделирования всех аспектов взаимодействия с несколькими устройствами (поиск, подключение, потоковая передача и т. д.).

В итоге баг появился (и в конечном счете заканчивал тем, что в устройстве встроенного усилителя; amp; водителей), что было очень трудно воспроизвести точно только с одним блоком, но попал рядом с "тормоз" и уровни 10-20, когда эти устройства были в ходу одновременно. Это остается и продолжается.

Пример 2: тест требующих дорогостоящих оптических анализаторов спектра в качестве основного компонента. Прибор довольно старый, устаревший по данным производителя у которого была приобретена более крупной компанией, и в основном растворяется, и его только документация был длинный скучный (и малоинформативный) документ, который, кажется, плохо переведены. На начальном этапе разработки я был в состоянии держать устройство за моим столом, но теперь ее связали, как физически, так и в расписание за время своего 24/7 многонедельные тесты.

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

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

Комментарии к вопросу (2)
Решение

Руководство понимает это займет больше времени для разработки и поддержки программного обеспечения, когда вы Don'т иметь полный доступ для проверки оборудования. Нужно это учитывать, когда делаете свои оценки. Часть критериев приемки сдачи программного обеспечения в эксплуатацию должны быть, что у вас есть способ, чтобы сохранить программное обеспечение в большинстве случаев без остановки производства. Если вы'вновь практикующих ТДД, это должно произойти довольно естественно.

Я привык писать программы для самолета 60 миллионов долларов. Очевидно, там'с высокой степенью достоверности, и они неохотно дают каждому разработчику для их регистрации. Мы в основном были 5 уровни испытательных сред, более реальном оборудовании на каждом уровне, вплоть до полного самолета. По моим оценкам 95% нашего программного обеспечения может быть разработана и отлажена только с эмуляторами и модульные тесты. 95% из оставшихся может быть работал на следующий уровень, и так далее.

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

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

Например, возможно у вас есть ошибка и вы можете придумать 10 возможных причин. Если только на время вы можете попасть на машину 15 минут, пока оператор на перерыв, пишу короткий, автономные, правильный (компилируемые), пример, который вызывает ошибку и писать 10 автоматических тестов, используя которые SSCCE, чтобы проверить свои теории и хранить кучу данных. Потом обратно на свой рабочий стол вы можете взять столько, сколько нужно, чтобы просеять через данные для следующей попытки. Идея в том, чтобы максимизировать полезность вашего ограниченного времени с оборудованием.

Комментарии (3)

Вы'вновь пытается решить проблему, что это'т твое решение.

Руководству необходимо уделить особое внимание доступу к оборудованию. Это может означать, что вы в конечном итоге с более широкий доступ, но это может также означать, что вы в конечном итоге с меньшими затратами.

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

Оттуда, компании (управление) имеет приоритет, кто получает доступ и когда. Это'ы бизнес-решение, что они должны сделать, поскольку (отсутствие) наличие ресурсов, влияющих на развитие бизнеса.

Комментарии (1)

Вы эффективно кодирование слепой.

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

Стоимость устройств не нужно'т быть полностью выделено в "развития" и цикл. Может быть, они могут быть повернуты на производстве, или в качестве резервной копии. Они могли даже быть перепроданы вторую руку в другом месте?

Попробуйте и затраты на исправление ошибок фаз, во времени и денег и показать общую стоимость вашей команде/компании.

Комментарии (0)

Спорить с начальством гораздо легче, когда у вас есть несколько чисел, или, по крайней мере, некоторые плюсы и минусы под рукой, так что мое предложение-это попытка сделать плату и принесут пользу анализа. Представление идет как это:

  • сколько сил развития вы ожидаете для написания симулятор устройства? (Обратите внимание, что симулятор устройство не может заменить оригинального оборудования 100%, особенно если оборудование имеет несколько неожиданных вывертов).

  • сколько тестировании / отладке вы ожидаете без такого инструмента? Включать затраты на работников лаборатории, потому что вы должны блокировать оборудование для тестирования. Включают также расходы за то время, что система не может быть использована из-за ошибок и у вас есть проблемы, чтобы найти причину.

  • сколько будет дополнительное оборудование для тестирования стоимости?

  • сколько времени вы предполагаете необходимость блокирования оборудования для целей тестирования?

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

Представить результаты руководству, обсуждать альтернативы, а затем пусть они сами решают.

Комментарии (3)