На риск звучащего бойка, проверьте оба. Потерпи меня.
Начните с автоматизированного процесса сборки, который может выполнить чистую сборку вашего программного обеспечения из системы контроля версий (у вас есть система контроля версий, верно?). Добавить автоматизированные тесты. Это включает в себя все: от низкоуровневых модульных тестов до интеграционных тестов и автоматических функциональных тестов с использованием чего-то вроде TestComplete или SmarteScript . Теперь, поскольку теперь вы можете тестировать весь свой продукт (или, по крайней мере, ключевые элементы) без какого-либо участия человека, вы можете запускать эти тесты так часто, как вам нравится.
Создание чистой виртуальной машины для представления типичного клиентского ПК. Ваша коробка разработки, вероятно, не является хорошим примером этого. Как часть вашего автоматизированного процесса сборки, вы можете создать сценарий для виртуальной машины (по крайней мере, VMWare и VPC) для запуска с известного хорошего снимка, установить последнюю сборку программного обеспечения, запустить автоматизированные тесты и опубликовать результаты.
Это была сложная часть. Теперь просто создайте новую виртуальную машину с любой комбинацией операционных систем / пакетов обновления / памяти / и т. Д. И повторите автоматические тесты для каждой из них.
Звучит так, будто вы добавляете очень много процесса. Что вы на самом деле делаете, так это берете все вещи, которые можно (и, следовательно, должны) автоматизировать, оставляя вам больше времени для более интересного (как продать его себе) и прибыльного (как продать его своему босс) вещи.
В противном случае просто протестируйте ОС, которую использует большинство ваших клиентов, и включите заявление об отказе.