Должен ли я запускать программы регрессионного тестирования на чипах AMD и Intel? - PullRequest
4 голосов
/ 17 июля 2010

Сейчас я планирую провести тестирование на 32-разрядной, 64-разрядной версии, Windows XP Home, Windows XP Pro, Windows Vista Home Basic, Windows Vista Ultimate, Windows 7 Home Basic и Windows 7 Ultimate ... все с последний пакет обновления.

Однако теперь мне интересно, стоит ли тестировать на AMD и Intel все перечисленные выше сценарии или это пустая трата времени?

Примечание: это приложение безопасности для обычных пользователей.

Ответы [ 9 ]

9 голосов
/ 17 июля 2010

У меня такое чувство, что это было бы целесообразно, если бы у вас было много изящного языка ассемблера, написанного вручную, или какой-то невероятно сжатый тайминг (который вы не встретите в любом случае с этим выбором ОС).

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

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

4 голосов
/ 17 июля 2010

Только если вы программируете на ассемблере и используете расширенные, специфичные для вендера наборы инструкций.Но поскольку у AMD и Intel есть соглашения о кросс-лицензировании, это больше историческая проблема, чем текущая.

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

О, и, кроме FDIV Bug Поставщики процессоров обычно не делают ошибок.

1 голос
/ 17 июля 2010

Я думаю, что вы смотрите в неверном направлении для тестирования сценариев.

Да, возможно, ваш код будет работать на Intel, но не на AMD или в Windows Vista Home, но не в Windows Vista Professional. Но если вы не делаете что-то очень тесно связанное с низкоуровневым программированием в первом случае или с деталями реализации ОС во втором, шансы невелики. Вы могли бы сказать, что никогда не повредит проверить каждый возможный сценарий. Но в реальной жизни должно быть некоторое ограничение на ресурсы, доступные вам для тестирования. Тестирование на разных процессорах или разных ОС - это в большинстве случаев не тестирование ВАШЕЙ программы, а тестирование компилятора, ОС или процессора. Сколько времени у вас есть, чтобы проверить работу других людей? Я думаю, что ваше время было бы лучше потратить на тестирование большего количества сценариев в вашем собственном коде. Вы не будете подробно рассказывать о том, что делает ваше приложение, а просто приведете один из моих собственных примеров. Было бы гораздо продуктивнее потратить день на тестирование продажи продуктов нашей собственной компании по сравнению с продуктами, которые мы перепродаем от других производителей, или тестирование правил налога с продаж для разных штатов или что-то в этом роде.

На практике я редко даже тестирую развертывание в Windows по сравнению с развертыванием в Linux, не говоря уже о разных версиях Windows, и я редко переживаю за это.

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

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

Если вы полагаетесь на точные / согласованные результаты с плавающей запятой, то да, определенно.

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

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

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

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

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

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

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

Вопрос, вероятно, "что вы тестируете". Маловероятно, что какой-либо из тестов тестирует что-то, что потенциально может отличаться между аппаратными платформами AMD и Intel. Различия можно ожидать на уровне драйверов, но вы, похоже, не планируете тестировать свое программное обеспечение для каждого существующего кусочка ПК, имеющегося в наличии. Скорее всего, между различными уровнями пакета обновления для Windows будет гораздо больше различий, чем между процессорами AMD и Intel.

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

Я бы сказал нет. Если вы не пишете свое приложение на ассемблере, вы должны быть достаточно удалены от процессора, чтобы не беспокоиться о различиях. Процессоры будут поддерживать ОС Windows, с API которой вы взаимодействуете (в зависимости от языка). Если вы используете .NET, ЕДИНСТВЕННАЯ видимая проблема у вас возникнет, если вы используете версию платформы, которую эти платформы не поддерживают. Учитывая, что они все XP или позже, вы должны быть в порядке. Если вы хотите о чем-то беспокоиться, убедитесь, что ваше приложение будет хорошо работать с Vista и более поздней моделью безопасности.

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

Конечно, звучит так, будто для меня это пустая трата времени - на каком языке (ах) написаны ваши программы?

...