Является ли распространенной или даже хорошей идеей выпуск исходного кода для автоматизированных тестов с приложением с закрытым исходным кодом? - PullRequest
1 голос
/ 12 июля 2010

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

Я никогда раньше не продавал программное обеспечение, но когда я ставлю себя на место своих клиентов, я думаю: «Я уверен, что хотел бы увидеть исходный код для автоматических тестов для любого программного обеспечения, которое я покупаю. Это послужило бы очень подробная документация на программное обеспечение, которое я покупаю! На самом деле, я бы хотел, чтобы тесты были проверкой перед покупкой, если это возможно ".

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

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

РЕДАКТИРОВАТЬ: Спасибо всем за проницательные комментарии. Я должен уточнить, что моя цель - , а не , чтобы сказать: «Посмотрите, насколько качественно мое программное обеспечение!» но вместо этого «Вот как вы используете программное обеспечение» (используя тесты в качестве документации). Это для API; пользовательский интерфейс не участвует. Я просто хочу продемонстрировать, как его использовать (общедоступный интерфейс), а не внутреннюю работу. Я действительно ненавижу демонстрационные приложения, которые очень длинные, но показывают только «счастливый путь» через API, поэтому я искал способ улучшить это.

Ответы [ 5 ]

2 голосов
/ 13 июля 2010

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

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

Теоретически теория и практика совпадают.На практике это не так.

2 голосов
/ 12 июля 2010

Не обычно, я никогда не видел этого для готового программного обеспечения.

НО, я видел клиентов (в более научных и / или технических областях), которые "сертифицируют"«программное обеспечение с собственным набором тестов и данными, чтобы быть уверенным, что программное обеспечение не отклоняется от своих собственных стандартов (которые могут отличаться от установленных разработчиками).

Когда сертификация выполнена (и принята)новая версия программного обеспечения может быть запущена в производство.

2 голосов
/ 12 июля 2010

Не принято и не стоит давать пользователям возможность видеть результаты теста при любом автоматическом тестировании.

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

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

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

В этой ситуации вы бы хотели, чтобы текущий клиент сказал перспективному, что 5% ваших тестов не пройдены?Или вы бы предпочли, чтобы ваш текущий клиент сказал: «все, что я использую, работает отлично» ..

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

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

2 голосов
/ 12 июля 2010

Это откроет вас людям, копирующим вашу реализацию, если они смогут точно проверить совместимость.

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

0 голосов
/ 12 июля 2010

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

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