Estou trabalhando em uma equipe de desenvolvimento de software como desenvolvedor de software. Estou trabalhando no mesmo projeto há três anos. O software é um aplicativo C # baseado em desktop de 32 bits no .NET 4. Nossa plataforma de destino no Windows 7 (precisávamos oferecer suporte ao Windows XP até o ano passado). O software se comunica com vários hardwares personalizados para os quais os drivers personalizados são gravados. O software de fabricação e driver de hardware é escrito por nosso cliente. Há um driver diferente para o Windows de 32 e 64 bits, é claro.
Durante a fase de teste do sistema, executamos todos / a maioria dos casos de teste no Windows 7. de 32 e 64 bits. Não me lembro se houve algum bug em nosso software que exista apenas em uma versão do Windows. Tendo essa experiência que comecei a me perguntar, precisamos realmente testar o software de 32 bits no Windows de 64 bits?
Qual é o padrão da indústria?
fonte
Respostas:
A maioria dos erros encontrados na execução de software de 32 bits em janelas de 64 bits tinha a ver com a localização do software (em
Program Files (x86)
vez deProgram Files
), os locais das chaves do registro (alguns foram encontrados no Wow6432Node). Tivemos esses problemas principalmente porque precisávamos nos comunicar com outro software (também de 32 bits) e, portanto, precisávamos testar o software em 32 e 64 bits ...Quando você não teve esses problemas, acredito que é bastante seguro não testar em ambas as plataformas quando você compila explicitamente no modo de 32 bits. Quando compilado em 32 bits, o tempo de execução do .NET executará tudo no modo de 32 bits e deve funcionar da mesma forma que o modo de 32 bits nas plataformas de 32 bits.
De acordo com os aplicativos de 64 bits ( MSDN ), os aplicativos de 32 bits são executados no modo Wow64 e a execução de aplicativos de 32 bits (MSDN) explica esse modo com mais detalhes.
fonte
Então, no Windows de 32 bits, seu software fala com um driver e no Windows de 64 bits, com um driver diferente? Vamos supor que há novas versões desses drivers periodicamente. Portanto, quando você testar seu software apenas no Windows de 32 bits, não poderá ter certeza de que não haverá diferenças no driver de 64 bits, o que fará com que a combinação do software + do driver de 64 bits falhe. E do ponto de vista de seus usuários, não importa quem é o culpado (você ou o autor do driver), tudo o que eles veem é um sistema que não funciona. Portanto, mesmo que seu código esteja livre de erros, um teste pode revelar um erro no driver de 64 bits, e encontrar esse erro pode ajudá-lo a tomar as medidas corretas (como enviar um relatório de erro ao autor do driver).
Obviamente, quando você usa esses dois drivers há anos e está muito confiante de que o comportamento é exatamente o mesmo, você pode pular os testes para uma plataforma, seguindo os argumentos da resposta do @ DavidPerfors. Como compromisso, você só pode executar testes no Windows de 64 bits sempre que uma nova versão do driver estiver disponível. Na verdade, isso depende da complexidade dos drivers, da sua experiência e da confiança neles.
Algumas coisas adicionais a serem consideradas:
fonte
A suposição padrão nos círculos de controle de qualidade iluminado é "Se você não testou, não funcionará".
Por uma questão prática, geralmente é um objetivo inacessível o que se esforçar da mesma maneira que os engenheiros de aplicação podem gostar de fazer testes de unidade para tudo; mas eles não acreditam que jamais o alcançarão e serão liberados dentro do prazo.
No entanto, sua pergunta só pode ser respondida por, ou em conjunto com, vendas e marketing. Você fornece a eles um custo para testar e eles fornecem uma análise dos benefícios do mercado. Se as estimativas de ambos os lados fossem suficientemente precisas, a resposta seria simples
Na minha experiência, as estimativas de custo de todos são imprecisas. Quanto ao outro lado da equação, Dilbert uma vez parodiou a tomada de decisões lá com "Eu apenas perguntei ao meu gato, Mittens". Para fazer muito melhor, eles precisariam de treinamento em métodos de campo antropológico.
fonte
Como 99% de todas as instalações do Windows 7 e posteriores, além de boa parte do Vista, são de 64 bits, por que diabos você consideraria não testar essa plataforma?
É apenas um acéfalo, a menos que você esteja fazendo isso especificamente para um grupo muito limitado de usuários que você sabe que está usando o Windows de 32 bits e continuará a fazê-lo pela vida útil do seu produto.
Então, sim, teste para problemas de 64 bits. De fato, desenvolva plataformas de 64 bits e provavelmente fornece uma versão de 64 bits como padrão com uma versão compilada de 32 bits como uma opção para os poucos clientes que não fizeram o upgrade para um novo computador e sistema operacional nos últimos 6 a 8 anos. .
fonte
Eu testaria qualquer instalador no maior número possível de configurações do Windows, pois, pela minha experiência, é mais provável que os instaladores falhem em sistemas diferentes.
Caso contrário, como você sabe da sua experiência com o software fornecido , é pouco provável que os erros apareçam apenas em 32 ou 64 bits, e você pode correr algum risco calculado.
Em primeiro lugar, você deve ter muitos ciclos de teste com muito pouca alteração de código entre os ciclos posteriores à medida que se aproxima do envio. A qualquer momento que você pode salvar, você pode usar para criar mais casos de teste e / ou permitir mais ciclos (e, portanto, menores), fornecendo um feedback mais rápido. (O risco de gastar tempo testando X pode ser maior do que o risco de não testar Y, porque você está testando demais o X.)
Assim sendo
fonte
Não. Da mesma forma, quando o FDA termina de testar novos medicamentos em camundongos e ratos, eles pulam os testes em macacos e apenas os vendem para consumo humano.
</ sarcasmo>
Sim Sim SIM SIM SIM. Não há nada além da tristeza reservada para o seu software se você não testar todas as plataformas que puder. As coisas são sempre diferentes, e as suposições na cabeça do designer / codificador durante o projeto geralmente só se aproximam da modelagem da vida real. Então, por favor, teste seu software. Por favor.
fonte