È necessario testare il software a 32 bit in Windows a 64 bit?

31

Sto lavorando in un team di sviluppo software come sviluppatore di software. Ho lavorato allo stesso progetto per tre anni. Il software è un'applicazione desktop in C # a 32 bit in .NET 4. La nostra piattaforma di destinazione in Windows 7 (abbiamo dovuto supportare Windows XP fino all'anno scorso). Il software comunica con vari hardware personalizzati per i quali vengono scritti driver personalizzati. Il software di produzione hardware e driver è scritto dal nostro cliente. Ovviamente esiste un driver diverso per Windows a 32 e 64 bit.

Durante la nostra fase di test del sistema, eseguiamo tutti / molti casi di test sia in Windows 7 a 32 bit che a 64 bit. Non riesco a ricordare se nel nostro software ci siano errori che esistono in un solo ambiente di Windows. Avendo questa esperienza ho iniziato a chiedermi, abbiamo davvero bisogno di testare il software a 32 bit su Windows a 64 bit?

Qual è lo standard del settore?

    
posta Donotalo 03.10.2014 - 06:32
fonte

6 risposte

31

La maggior parte dei bug riscontrati con l'esecuzione di software a 32 bit su finestre a 64 bit aveva a che fare con la posizione del software ( Program Files (x86) anziché Program Files ), posizioni delle chiavi di registro (alcuni sono stati trovati in Wow6432Node ). Abbiamo avuto questi problemi principalmente perché avevamo bisogno di comunicare con altri software (anche a 32 bit), quindi dovevamo testare il software sia a 32 che a 64 bit ...

Quando non avevi questi problemi, credo che sia abbastanza sicuro non provare su entrambe le piattaforme quando compili esplicitamente in modalità a 32-bit. Quando è compilato a 32 bit, il runtime .NET eseguirà tutto in modalità a 32 bit e dovrebbe funzionare allo stesso modo della modalità a 32 bit su piattaforme a 32 bit.

Secondo Applicazioni a 64 bit ( MSDN ), le applicazioni a 32 bit vengono eseguite in modalità Wow64 e Esecuzione di applicazioni a 32 bit (MSDN ) spiega questa modalità in modo più dettagliato.

    
risposta data 03.10.2014 - 09:32
fonte
23

The hardware manufacturing and driver software is written by our client. There is different driver for 32 bit and 64 bit Windows of course.

Quindi su Windows a 32 bit, il software parla con un solo driver e su Windows a 64 bit ne parla uno diverso? Supponiamo che ci siano nuove versioni di questi driver di volta in volta. Quindi, quando testi il tuo software solo su Windows a 32 bit, non puoi essere sicuro che non ci saranno alcune differenze nel driver a 64 bit che farà fallire la combinazione del tuo software + driver a 64 bit. E dal punto di vista dei tuoi utenti, non importa chi è la colpa (tu o l'autore del driver), tutto ciò che vedono è un sistema non funzionante. Quindi, anche se il tuo codice è privo di bug, un test potrebbe rivelare un bug nel driver a 64 bit, e trovare un bug potrebbe aiutarti a prendere le misure giuste (come mandare un bug report all'autore del driver).

Ovviamente, quando usi questi due driver da anni e sei sicuro che il comportamento sia esattamente lo stesso, puoi saltare i test per una piattaforma, seguendo gli argomenti nella risposta di @ DavidPerfors. Come compromesso, è possibile eseguire test su Windows a 64 bit solo quando è disponibile una nuova versione del driver. In realtà, ciò dipende dalla complessità dei driver, dalla tua esperienza e dalla fiducia in essi.

Altre cose da considerare:

  • quale tipo di sistema operativo è la tua base di utenti che usa di più? Windows a 32 bit o 64 bit? Se decidi di eseguire il test solo su una piattaforma, scegli quella che gli utenti utilizzano più spesso.
  • quanto è grave quando una nuova versione del software non funziona su una piattaforma meno utilizzata? Ad esempio, i clienti possono immediatamente fare un passo indietro e installare la versione di lavoro precedente? Hanno solo qualche inconveniente o una reale perdita finanziaria da questo? Se è il primo, il test su una sola piattaforma può andare bene, se è quest'ultimo, ovviamente no.
risposta data 03.10.2014 - 10:05
fonte
16

L'assunto predefinito nei cerchi QA illuminati è "Se non lo hai testato, allora non funziona".

In termini pratici, di solito è un obiettivo irraggiungibile quello di perseguire allo stesso modo in cui i tecnici applicativi potrebbero voler avere test unitari per tutto; ma non credono che potranno mai raggiungerlo e rilasciare nei tempi previsti.

Tuttavia la tua domanda può essere risolta solo da, o in congiunzione con, vendite e marketing. Fornisci loro un costo per testare e forniscono un'analisi del vantaggio del mercato. Se le stime su entrambi lati erano sufficientemente accurate, la risposta sarebbe semplice

if B > C:
    test_32bit_version()

Nella mia esperienza, le stime dei costi di tutti sono imprecise. Per quanto riguarda l'altro lato dell'equazione, Dilbert una volta ha preso la decisione parodiando lì con "Ho appena chiesto al mio gatto, Mittens". Per fare molto meglio, avrebbero bisogno di una formazione in metodi antropologici.

    
risposta data 03.10.2014 - 07:35
fonte
6

Visto che il 99% di tutte le installazioni Windows di Windows 7 e successive, e buona parte di Vista, sono a 64 bit, perché diavolo dovresti anche considerare di non provare per quella piattaforma?
È semplicemente un gioco da ragazzi, a meno che non lo stiate facendo apposta per un gruppo molto limitato di utenti che KNOW sta usando Windows a 32 bit e continuerà a farlo per tutta la vita del vostro prodotto.

Quindi sì, prova per i problemi a 64 bit. In effetti si sviluppa su piattaforme a 64 bit e probabilmente fornisce una versione a 64 bit di serie con una versione compilata a 32 bit come opzione per quei pochi clienti che non sono passati ad un nuovo computer e sistema operativo negli ultimi 6-8 anni circa .

    
risposta data 03.10.2014 - 10:07
fonte
2

Vorrei testare qualsiasi programma di installazione su tutte le diverse configurazioni di Windows possibili, poiché dalla mia esperienza gli installatori hanno maggiori probabilità di fallire su sistemi diversi.

In caso contrario, poiché conosci dalla tua esperienza con il software , è improbabile che i bug solo visualizzare su 32-bit o 64-bit, e si può prendere qualche rischio calcolato.

In primo luogo, dovresti avere molti cicli di test con un cambio di codice molto piccolo tra i cicli successivi man mano che ti avvicini alla spedizione. Ogni volta che è possibile salvare, è possibile utilizzare per creare più casi di test e / o consentire più cicli (e quindi più piccoli), in modo da fornire un feedback più rapido. (Il rischio di passare il tempo a testare X potrebbe essere più che il rischio di non provare Y, perché stai testando troppo X.)

Quindi

  • Prova a testare "l'altro testimone" su ciò che hai usato per il ciclo di test procedurale.
  • Se conosci il "testimone" utilizzato dal tuo sviluppatore, inizia con il test su un altro.
  • Dividi i test case tra il "testimone" per dare copertura a ciascuno
  • Ma scambiali tra le "binnes" di ogni ciclo di test.
risposta data 03.10.2014 - 16:14
fonte
2

No. Allo stesso modo, quando la FDA ha terminato di testare nuovi medicinali su topi e ratti, salta i test sulle scimmie e li vendono solo per il consumo umano.

< / Sarcasmo >

Sì, sì sì sì sì. Non c'è altro che tristezza in serbo per il tuo software se non testerai tutte le piattaforme possibili. Le cose sono sempre diverse, e le supposizioni nella testa del designer / coder durante il progetto di solito si avvicinano passabilmente alla modellazione della vita reale. Quindi, per favore, prova il tuo software. Per favore.

    
risposta data 04.10.2014 - 02:39
fonte

Leggi altre domande sui tag