Domanda

In questo momento ho intenzione di testare su 32 bit, 64-bit, Windows XP Home, Windows XP Pro, Windows Vista Home Basic, Windows Vista Ultimate, Windows 7 Home Basic e Windows 7 Ultimate ... tutto con il massimoUltimo pacchetto di servizi.

Tuttavia, ora mi chiedo se vale la pena testare sia su AMD che per Intel per tutti gli scenari elencati sopra o sarebbe una perdita di tempo?

Nota: questa è un'applicazione di sicurezza per gli utenti medie quotidiani.

È stato utile?

Soluzione

La mia sensazione è che questo valesse la pena solo se avessi un sacco di un linguaggio di assemblaggio a mano in mano o una specie di tempi incredibilmente stretti (che non hai intenzione di incontrare quella selezione di OS comunque).

Se stai usando compilatori commerciali off-the-shelf, puoi essere ragionevolmente sicuro che genereranno il codice che funziona su tutti i normali processori.

Certo, nessuno potrebbe mai dimostrare che non avevano bisogno di testare una piattaforma particolare, ma penserei che ci siano cause più grandi di differenza di piattaforma per preoccuparsi del marchio della CPU (tutte le varie permutazioni multi-core / hyperthreading,Ad esempio, che potrebbe esporre tutti i tuoi bug di codice multithread in modi diversi)

Altri suggerimenti

Solo se si sta programmando in Assembly e utilizzano set di istruzioni specifici del vender esteso.Ma poiché AMD e Intel hanno accordi di licenza incrociata in atto, questo è più di una questione storica di quella corrente.

In ogni altro caso (ad esempio utilizzando un linguaggio di alto livello) È il lavoro degli scrittori del compilatore per garantire che il codice sia conforme a X86 e funziona su ogni CPU.

Oh, e tranne il Bug FDIV I venditori del processore di solito non fanno errori. .

Penso che tu stia guardando nella direzione sbagliata per testare gli scenari.

Sì, è possibile che il tuo codice funzioni su Intel ma non su AMD, o in Windows Vista Home ma non in Windows Vista Professional. Ma a meno che tu non stia facendo qualcosa di strettamente legato alla programmazione di basso livello nel primo caso, o ai dettagli dell'implementazione del sistema operativo nel secondo, le probabilità sono piccole. Potresti dire che non fa mai male a testare ogni scenario concepibile. Ma nella vita reale deve esserci un limite alle risorse disponibili per testare. I test su diversi processori o diversi sistemi operativi sono, nella maggior parte dei casi, non testando il tuo programma, sta testando il compilatore, il sistema operativo o il processore. Quanto tempo hai da risparmiare per testare il lavoro di altre persone? Penso che il tuo tempo sarebbe meglio speso a testare più scenari all'interno del tuo codice. Non dai molto dettagli su ciò che fa la tua app, ma solo per prendere uno dei miei esempi, sarebbe molto più produttivo trascorrere un test di giorno che vende prodotti che la nostra azienda rende i prodotti rispetto ai prodotti che rivendiamo da altri produttori, o Test regole delle imposte sulle vendite per diversi stati, o qualsiasi altra cosa.

In pratica, raramente mette a testare la distribuzione di Windows contro la distribuzione su Linux, non importa mai versioni diverse di Windows, e raramente mi bruciano su questo.

Se scrivessi driver di dispositivi di basso livello o alcuni, questa sarebbe una storia diversa. Ma app normali? Non perdere tempo.

Sicuramente sembra che sarebbe una perdita di tempo per me - quale lingua (i) sono scritti i tuoi programmi?

Direi di no.A meno che tu non stia scrivendo la tua applicazione in Assembler, dovresti essere abbastanza lontano rimosso dal processore non è necessario preoccuparti delle differenze.I processori supporteranno il sistema operativo Windows i cui API sono ciò con cui si sta interrompendo (a seconda della lingua).Se stai usando .NET L'unico problema forseabile che avrai è se stai utilizzando una versione del framework che quelle piattaforme non supportano.Dato che sono tutti XP o più tardi dovresti stare bene.Se vuoi preoccuparti di qualcosa assicura che la tua applicazione giocherà bene con il modello di sicurezza Vista e successivo.

La domanda è probabilmente "cosa stai testando".È improbabile che qualsiasi test testisca qualcosa che sarebbe potenzialmente diverso tra piattaforme hardware AMD e Intel.Le differenze potrebbero essere prevedibili a livello del conducente, ma non sembra che non sia a testare il tuo software per ogni bit esistente di hardware PC disponibile in giro.Molto probabilmente ci sarebbero molte più differenze tra diversi livelli di service pack di Windows rispetto ai processori AMD e Intel.

Suppongo che sia possibile c'è qualche funzionalità nel tuo codice che (se lo sai o meno) sfrutta qualche elaborazione / ottimizzazione in uno o l'altro che potrebbe avere un grave effetto sul risultato.Parola chiave possibile

Direi in generale che è improbabile che tu debba preoccuparsi.Se lo fai su più macchine comunque, mi mescola su di loro.Ma non mi stresserei a riguardo.

Non gestirei mai tutti i miei test di regressione su AMD e Intel a meno che non avessi risolto specificamente un problema unico a uno.Questo è ciò che il test di regressione è.

Test dell'unità d'altra parte ... Non avrei anticipato alcuna differenza.Quindi, di nuovo, non mi preoccuperei di eseguire test unità su entrambi finché non avevo effettivamente visto un problema specifico per AMD o Intel.

Se si affida a risultati di punti mobile accurati / coerenti, allora sì, sicuramente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top