Я работаю в команде разработчиков программного обеспечения в качестве разработчика программного обеспечения. Я работаю над тем же проектом уже три года. Это 32-битное приложение на C # для настольных компьютеров в .NET 4. Наша целевая платформа в Windows 7 (до прошлого года мы должны были поддерживать Windows XP). Программное обеспечение взаимодействует с различным пользовательским оборудованием, для которого написаны пользовательские драйверы. Программное обеспечение для производства оборудования и драйверов написано нашим клиентом. Конечно, есть разные драйверы для 32-битной и 64-битной Windows.
На этапе тестирования системы мы выполняем все / большинство тестовых случаев как в 32-битной, так и в 64-битной Windows 7. Я не могу вспомнить, были ли у нас какие-либо ошибки в нашем программном обеспечении, которые существуют только в одном варианте Windows. Имея этот опыт, я начал задаваться вопросом, нужно ли нам тестировать 32-битное программное обеспечение на 64-битной Windows?
Какой отраслевой стандарт?
источник
Ответы:
Большинство ошибок, с которыми мы сталкивались при запуске 32-битного программного обеспечения в 64-битных окнах, были связаны с расположением программного обеспечения (
Program Files (x86)
а не сProgram Files
), расположением ключей реестра (некоторые были найдены в Wow6432Node). У нас были эти проблемы в основном потому, что нам нужно было общаться с другим программным обеспечением (также 32-разрядным), и поэтому нам нужно было протестировать программное обеспечение как на 32-разрядном, так и на 64-разрядном ...Когда у вас не было этих проблем, я полагаю, что безопасно не тестировать на обеих платформах, когда вы явно компилируете в 32-битном режиме. При компиляции в 32-битной среде .NET все будет работать в 32-битном режиме, и она должна работать так же, как 32-битный режим на 32-битных платформах.
Согласно 64-разрядным приложениям ( MSDN ), 32-разрядные приложения выполняются в режиме Wow64, а « Запуск 32-разрядных приложений» (MSDN) объясняет этот режим более подробно.
источник
Итак, в 32-битной Windows ваше программное обеспечение взаимодействует с одним драйвером, а в 64-битной Windows - с другим? Допустим, время от времени появляются новые версии этих драйверов. Поэтому, когда вы тестируете свое программное обеспечение только в 32-битной Windows, вы не можете быть уверены, что в 64-битном драйвере не будет каких-либо различий, которые приведут к ошибке комбинации вашего программного обеспечения и 64-битного драйвера. И с точки зрения ваших пользователей, не имеет значения, кто виноват (вы или автор драйвера), все, что они видят, - это нерабочая система. Таким образом, даже если ваш код не содержит ошибок, тест может выявить ошибку в 64-разрядном драйвере, и обнаружение такой ошибки может помочь вам принять правильные меры (например, отправить отчет об ошибке автору драйвера).
Конечно, если вы использовали эти два драйвера в течение многих лет и уверены, что их поведение одинаково, вы можете пропустить тесты для одной платформы, следуя аргументам в ответе @ DavidPerfors. В качестве компромисса вы можете запускать тесты на 64-битной Windows только тогда, когда доступна новая версия драйвера. На самом деле, это зависит от сложности драйверов, вашего опыта и уверенности в них.
Некоторые дополнительные вещи для рассмотрения:
источник
Предположение по умолчанию в просвещенных кругах контроля качества: «Если вы его не тестировали, значит, оно не работает».
С практической точки зрения это обычно недостижимая цель, к которой стремиться во многом так же, как разработчики прикладных программ хотели бы провести модульные тесты для всего; но они не верят, что когда-либо достигнут этого и выпустят по расписанию.
Однако на ваш вопрос могут ответить только продажи или маркетинг. Вы предоставляете им стоимость для тестирования, и они предоставляют анализ рыночной выгоды. Если бы оценки с обеих сторон были достаточно точными, ответ был бы простым
По моему опыту, все оценки затрат являются неточными. Что касается другой стороны уравнения, Дилберт однажды пародировал принятие решения там: «Я только что спросил мою кошку, Миттенс». Чтобы добиться большего успеха, им понадобится обучение методам антропологического поля.
источник
Учитывая, что 99% всех установок Windows с Windows 7 и более поздних версий, а также значительная часть Vista также являются 64-разрядными, почему, черт возьми, вы даже подумаете не тестировать эту платформу?
Это просто и понятно, если только вы не делаете это специально для очень ограниченной группы пользователей, вы ЗНАЕТЕ, что используете 32-битную Windows и будете продолжать это делать в течение всего срока службы вашего продукта.
Так что да, тест на 64-битные проблемы. Фактически разрабатывается на 64-битных платформах и, вероятно, поставляет 64-битную версию в стандартной комплектации с 32-битной скомпилированной версией в качестве опции для тех немногих клиентов, которые не переходили на новый компьютер и ОС в течение последних 6-8 лет или около того ,
источник
Я бы протестировал любой установщик на как можно большем количестве различных настроек Windows, так как по моему опыту установщики, скорее всего, выйдут из строя на разных системах.
В противном случае, как вы знаете по своему опыту работы с данным программным обеспечением, ошибки вряд ли будут просто обнаруживаться на 32-разрядных или 64-разрядных системах, и вы можете пойти на определенный расчетный риск.
Во-первых, у вас должно быть много циклов тестирования с небольшим изменением кода между последующими циклами, когда вы приближаетесь к отправке. В любое время, когда вы можете сэкономить, вы можете использовать для создания большего количества тестовых случаев и / или разрешать больше (и, следовательно, меньше) циклов, что обеспечивает более быструю обратную связь. (Риск тратить время на тестирование X может быть больше, чем риск не тестировать Y, потому что вы слишком много тестируете X.)
Следовательно
источник
Нет. Аналогично, когда FDA завершает тестирование новых лекарств на мышах и крысах, они пропускают тестирование на обезьянах и просто продают его для потребления человеком.
</ сарказм>
Да да да да да Нет ничего, кроме печали в вашем программном обеспечении, если вы не тестируете каждую платформу, какую только можете. Вещи всегда разные, и предположения в голове дизайнера / кодировщика во время проекта обычно очень близко подходят к моделированию реальной жизни. Поэтому, пожалуйста, протестируйте свое программное обеспечение. Пожалуйста.
источник