Question

En ce moment je prévois de tester sur 32 bits, 64 bits, Windows XP Home, Windows XP Pro, Windows Vista Home Basic, Windows Vista Ultimate, Windows 7 Home Basic et Windows 7 Ultimate ... Tout avec leDernier service de services.

Cependant, maintenant, je me demande s'il vaut la peine de tester à la fois à AMD et à Intel pour tous les scénarios énumérés ci-dessus ou serait-il une perte de temps?

Remarque: il s'agit d'une application de sécurité pour les utilisateurs moyens quotidiens.

Était-ce utile?

La solution

Mon sentiment est que cela ne serait utile que si vous aviez beaucoup de langage de montage codé à la main sur la main ou à une sorte de timing incroyablement serré (que vous n'allez pas rencontrer cette sélection de systèmes d'exploitation de toute façon).

Si vous utilisez des compilateurs commerciaux hors tension, vous pouvez être raisonnablement sûr qu'ils vont générer du code qui fonctionne sur tous les processeurs normaux.

Bien sûr, personne ne pourrait jamais prouver qu'ils n'avaient pas besoin de tester sur une plate-forme particulière, mais je penserais qu'il y a de plus grandes causes de différence de plate-forme à craindre que la marque CPU (toutes les diverses permutations multi-noyau / hyperthreading,Par exemple, qui pourrait exposer tous vos bugs de code multithreads de différentes manières)

Autres conseils

Ce n'est que si vous programmez en montage et utilisez des ensembles d'instructions spécifiques à Vender étendu.Mais puisque AMD et Intel ont des accords de licence croisée en place, il s'agit davantage d'un problème historique qu'un chiffre d'origine.

Dans tous les autres cas (par exemple, à l'aide d'une langue de haut niveau) C'est le travail des écrivains du compilateur pour vous assurer que le code est compatible X86 et s'exécute sur chaque CPU.

Oh, et à l'exception du Bogue FDIV Les vendeurs de processeur ne font généralement pas d'erreur.

Je pense que vous cherchez dans la mauvaise direction pour tester des scénarios.

Oui, il est possible que votre code fonctionne sur Intel mais pas sur AMD ou dans Windows Vista Home mais non dans Windows Vista Professional. Mais à moins que vous fassiez quelque chose de très étroitement liée à la programmation de bas niveau dans le premier cas ou aux détails de la mise en œuvre du système d'exploitation dans la seconde, les chances sont petites. Vous pourriez dire que cela ne fait jamais mal de tester tous les scénarios imaginables. Mais dans la vie réelle, il doit y avoir des limites sur les ressources disponibles pour les tests. Test sur différents processeurs ou systèmes d'exploitation différents est, dans la plupart des cas, ne pas tester votre programme, il teste le compilateur, le système d'exploitation ou le processeur. Combien de temps devez-vous épargner pour tester le travail d'autres personnes? Je pense que votre temps serait mieux passé à tester plus de scénarios au sein de votre propre code. Vous ne donnez pas beaucoup de détails sur ce que votre application fait, mais juste pour prendre l'un de mes propres exemples, il serait beaucoup plus productif de passer une journée à tester des produits de vente Notre propre entreprise fait par rapport aux produits que nous revendons d'autres fabricants ou tester les règles de la taxe de vente pour différents états, ou autre.

En pratique, je testerai rarement le déploiement sur Windows par rapport au déploiement de Linux, sans parler de différentes versions de Windows, et je suis rarement brûlé à ce sujet.

Si j'écris des pilotes de périphérique de bas niveau ou une autre, ce serait une histoire différente. Mais des applications normales? Ne perdez pas votre temps.

On dirait certainement que ce serait une perte de temps pour moi - quelle langue (s) sont vos programmes écrites?

Je dirais non.À moins que vous n'écrivez à votre application dans l'assembleur, vous devriez être assez éloigné du processeur pour ne pas avoir besoin de vous inquiéter des différences.Les processeurs prendront en charge le système d'exploitation Windows dont l'API est ce que vous êtes en train d'intégrer (en fonction de la langue).Si vous utilisez .NET Le seul problème de facilité que vous aurez, c'est si vous utilisez une version du cadre que ces plates-formes ne prennent pas en charge.Étant donné qu'ils sont tous XP ou plus tard, vous devriez aller bien.Si vous voulez vous soucier de quelque chose, assurez-vous que votre application jouera bien avec le modèle de sécurité Vista et ultérieur.

La question est probablement "Que testez-vous".Il est peu probable que l'un des tests soit testant quelque chose qui serait potentiellement différent entre les plates-formes matérielles AMD et Intel.Des différences pourraient être attendues au niveau du conducteur, mais vous ne semble pas planer votre logiciel pour chaque bit de matériel de PC existant disponible.Très probablement, il y aurait beaucoup plus de différences entre différents niveaux de service de service Windows qu'entre les processeurs AMD et Intel.

Je suppose qu'il est possible qu'il y ait une fonctionnalité dans votre code qui (si vous le savez ou non) tire parti du traitement / de l'optimisation dans l'un ou l'autre qui pourrait avoir un effet sérieux sur le résultat.Mot-clé Possible.

Je dirais en général, il est peu probable que cela doive vous inquiéter.Si vous allez le faire sur plusieurs machines de toute façon, mélangez-le sur eux.Mais je ne ferais pas de savoir à ce sujet.

Je ne dirais jamais tous mes tests de régression sur AMD et Intel à moins d'avoir spécifiquement résolu une question unique à une seule.C'est ce que les tests de régression sont.

Tests unitaires d'autre part ... Je n'antimerais aucune différence.Encore une fois, je ne me soucierais pas à courir des tests unitaires sur les deux avant d'avoir vu un problème spécifique à l'AMD ou à Intel.

Si vous comptez sur des résultats de points flottants précis / cohérents, alors oui, définitivement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top