Potresti credere che gli sviluppatori web che usano Windows come sistema operativo principale abbiano a loro agio, durante il test di Internet Explorer; basta cliccare sul blu "E" e andare in città. Questo potrebbe essere vero se dovessero preoccuparsi solo della versione di IE sul loro PC, ma sappiamo tutti che non è il caso. A seconda delle esigenze del progetto, potrebbe essere necessario garantire la compatibilità da IE6 a IE10, il che pone sicuramente alcune sfide. Come affrontiamo questo?
Ora, se sei su Windows, hai sicuramente un vantaggio perché, per lo meno, puoi testare nativamente una versione specifica di IE, ma è un gioco completamente diverso se sei su una macchina Mac o Linux.
Quello che voglio fare è esplorare i vari modi di testare Internet Explorer su piattaforme popolari e offrire suggerimenti su come ridurre l'attrito dei test per più versioni del browser.
Sappiamo tutti che i test sono difficili.
Internet Explorer ha più versioni in uso, ciascuna con il proprio livello di stranezza e supporto delle funzionalità. Mentre sarebbe bello se dovessimo mirare solo a IE10, in realtà, molti utenti e aziende semplicemente non hanno aggiornato i loro browser o sistemi operativi. Ciò significa che, a seconda di ciò che stai creando, la tua matrice di test potrebbe dover includere fino a cinque diverse versioni di IE. Posso sentire i gemiti ora.
Fortunatamente, IE9 e IE10 hanno un forte supporto per gli standard e IE6 sta iniziando a fare la fine dell'uccello Dodo (anche se lentamente). In effetti, molti dei migliori siti hanno completamente abbandonato il supporto per IE6 e IE7 - un grande passo avanti, soprattutto rispetto a dove eravamo solo due anni fa. E con Microsoft che afferma pubblicamente che IE10 arriverà su Windows 7, la mia speranza è che IE10 + aiuti a ridurre al minimo il numero di versioni supportate nel prossimo futuro.
Detto questo, queste versioni pongono ancora un dilemma di test perché non è possibile eseguire più versioni di Internet Explorer sullo stesso PC. Ciò significa che dobbiamo cercare soluzioni alternative come:
Ho intenzione di toccare ciascuno di questi e discutere possibili soluzioni.
Quando ho bisogno di testare un sito in Internet Explorer, il mio primo strumento è F12 Developer Tools in IE10. Costruito nel set di strumenti è la possibilità di cambiare le modalità del browser e del documento per emulare IE7 tramite IE10.
Fondamentalmente mi fornisce una copertura di test completa per le versioni più comunemente utilizzate di Internet Explorer all'interno di un singolo browser. Diventa semplice scegliere la modalità browser in modo da poter lavorare con il supporto di funzioni specifiche e quindi scegliere la modalità di rendering per la mia pagina.
La ragione per cui dico che questa è la mia prima linea di test è perché mi aiuta a trovare molti problemi comuni. È un ottimo strumento per identificare e testare in modo interattivo problemi come mancati prefissi dei fornitori o se una pagina è resa in stranezze anziché standard. E dirò che, avendo ampiamente utilizzato questo, mi ha aiutato a risolvere una serie di problemi del sito senza dover caricare una macchina virtuale o usare un altro PC.
Per essere chiari, tuttavia, non è assolutamente una sostituzione ai test in una versione attuale di Internet Explorer.
Il team di ingegneri di IE fa del suo meglio per eseguire il backport delle funzionalità, ma farlo è uno sforzo enorme e non sempre infallibile. Per avere l'esperienza di test più affidabile, è necessario disporre di più PC (fisici o virtuali) con diverse versioni di Windows / IE. A meno che tu non abbia soldi in tasca, penso che il percorso VM sia probabilmente la scelta migliore.
Mi piace molto usare le macchine virtuali perché mi dà l'opportunità di testare non solo i browser, ma diversi SO all'interno del mio PC. Per quanto mi piacerebbe avere un sacco di dispositivi per testare e giocare, penso che mia moglie potrebbe non essere felice una volta che la bolletta elettrica entrerà. Ho avuto VM ad un certo punto per ogni versione principale di Windows e Ubuntu . Sarebbe bello essere in grado di eseguire OSX, ma la mia comprensione è che ci sono problemi tecnici e di licenza per farlo.
Esistono due modi per portare Windows in una VM per il test. Il primo è acquistare una licenza per ogni versione di Windows che testerai. In realtà ho copie su licenza di Windows XP, Windows 7 e Windows 8 che ho acquistato per i miei test personali. Il costo a lungo termine era basso e l'ho considerato un investimento come sviluppatore web professionale. Questo mi consente di installare il sistema operativo e di attivarlo senza dovermi preoccupare della famigerata bomba a orologeria di Microsoft. Posso ottenere tutti gli aggiornamenti, e in pratica mi dà una vera versione funzionante di Windows.
So che non tutti la pensano allo stesso modo, e non tutti vorranno fare l'investimento.
Per quelli di voi dal lato più frugale, Microsoft offre le immagini VPC per la compatibilità delle applicazioni di Internet Explorer che fornisce una versione preinstallata di Windows con una versione specifica del browser. Queste immagini ti consentono di lavorare con Internet Explorer dalla 6 alla 9 quasi all'infinito ma con un grosso limite. Quanto segue lo riassume:
Il mio primo strumento è F12 Developer Tools in IE10.
Puoi attivare fino a due "riarmi" (digita slmgr -rearm al prompt dei comandi) che estende la prova per altri 30 giorni ogni volta, o semplicemente spegni l'immagine VPC e scarta le modifiche apportate dai dischi di annullamento per reimpostare l'immagine torna al suo stato iniziale. Utilizzando uno di questi metodi, puoi tecnicamente avere un'immagine di base che non scade mai, anche se non sarai mai in grado di salvare in modo permanente le modifiche per più di 90 giorni.
Quindi dovresti essere in grado di utilizzare una qualsiasi delle immagini VPC a tempo indeterminato, ma dopo 90 giorni, tutte le impostazioni di configurazione che hai salvato nell'immagine verranno cancellate. Considero questo come un piccolo prezzo da pagare per avere un'immagine gratuita da usare per i test. So che quando li ho usati, l'ho fatto esplicitamente per testare IE, quindi ho perso le eventuali modifiche di configurazione minime. L'unica immagine che si comporta diversamente è l'immagine WinXP / IE6; si spegne completamente in una data specifica. Al momento della stesura di questo, sarebbe il 14 febbraio 2013, quindi assicurati di non regalarlo come regalo alla tua persona speciale per San Valentino.
Se utilizzi Windows 7, devi prendere una copia di Virtual PC, che ti consente di creare macchine virtuali ed eseguire VHD esistenti. Windows 8 Pro include il gestore della macchina virtuale Hyper-V. Per impostazione predefinita, non è attivato, quindi devi attivare "Pannello di controllo-> Programmi-> Attiva o disattiva le funzionalità di Windows" per attivarlo:
Una volta installato, dovresti essere in grado di eseguire le immagini VPC scaricate dal sito di Microsoft. Ho scaricato l'immagine WinXP / IE6. Si presenta sotto forma di un file .exe autoestraente che scarica il file .vhd da usare. Il file .vhd è il tuo disco rigido virtuale.
Accedi a Virtual PC e scegli "Crea macchina virtuale", che apre una finestra di dialogo per dare il via a qualcosa:
Quindi, specificare la quantità di memoria che si desidera allocare per la VM e quindi, soprattutto, selezionare che si desidera utilizzare un disco rigido virtuale esistente in modo da poter utilizzare il VPC scaricato:
La VM verrà ora creata e visualizzata in Virtual PC. Facendo doppio clic su di esso si avvia la VM e si ha accesso a Windows XP. Ti verrà richiesto di attivarlo, ma basta annullare la richiesta:
Se non si è su Windows, è ancora possibile utilizzare le immagini VPC, ma i passaggi saranno un po 'più coinvolti. Su OSX, utilizzo VMWare Fusion. Penso che sia il miglior software di VM per quella piattaforma e ha un ottimo supporto per gli utenti. Un esempio è il fatto che hanno uno strumento chiamato VMware vCenter Converter, che consente di modificare i tipi di formato VM in una versione compatibile con i prodotti VMWare. Poiché le immagini IE VPC non sono compatibili, avevo bisogno di convertirle, e vCenter Converter lo ha reso incredibilmente indolore (anche se è solo per Windows). I passaggi erano facili. Ho installato l'app:
Una volta installato, l'ho eseguito e ho avviato il processo di conversione. La prima cosa che dovevo fare era specificare il file sorgente da convertire. Il convertitore ha rilevato "Windows XP.vmc":
Successivamente ho specificato la destinazione in cui creare i file compatibili con VMWare:
Il processo per convertire l'immagine Microsoft VPC ha richiesto tutti e tre i minuti. Ho copiato questi file su una pen drive e li ho portati sul mio Mac. Ho lanciato VMWare Fusion e creato una nuova VM basata su un'immagine esistente, puntandola sull'immagine appena creata e scegliendo di creare una copia locale dell'immagine sul mio disco rigido:
Mi è stato quindi richiesto di eseguire l'aggiornamento al formato più recente. NON FARLO. Se lo fai, la tua VM non funzionerà. Non so perché, ma te lo sto dicendo per esperienza.
VMware Fusion verrà eseguito attraverso il processo di importazione e quindi ti consentirà di configurare le impostazioni della tua VM. Dovrai modificare le impostazioni come la memoria e le opzioni video in base alle capacità della tua macchina. Ho quindi eseguito la VM e mi è stato presentato il login di Windows XP.
All'accesso, sono stato accolto dallo sbarramento standard di nuovi messaggi trovati nell'hardware. Ignora semplicemente quelli, insieme al prompt di attivazione, e dovresti essere in grado di utilizzare il sistema operativo:
Sia Parallels che VirtualBox sono eccellenti soluzioni VM. VirtualBox, in particolare, è un software open source e disponibile con licenza GPL. Non ho usato Parallels, quindi non ho passaggi da seguire per farmi raccomandare. Se ti capita di utilizzare VirtualBox, però, Jon Thorton ha fatto un ottimo lavoro fornendo una spiegazione passo passo su come utilizzare le immagini VPC con VirtualBox. È un po 'coinvolto, ma funziona. Ho anche sentito molti sviluppatori entusiasmare degli script di ievms; ti permettono di scaricare le immagini VPC e convertirle in un formato accettato da VirtualBox. Il processo è abbastanza automatizzato e sembra essere un'alternativa migliore.
Il metodo più recente che stavo raccomandando, con molta eccitazione che potrei aggiungere, è un servizio basato su browser, chiamato BrowserStack. Ti permette di testare il tuo sito usando sessioni di browser virtuali - tutto all'interno del tuo browser preferito. Utilizza Flash per fornire la sessione virtualizzata ed è possibile selezionare da qualsiasi numero di versioni del sistema operativo e del browser. Ad esempio, se volessi provare diversi browser in Windows XP, è facile come scegliere quel SO e selezionare il browser di destinazione:
La cosa fondamentale è che non è uno screenshot del tuo sito; è un browser pienamente funzionante con cui è possibile interagire.
Se noti nell'immagine, ho fatto clic sul menu a discesa per la scheda "Sicurezza" e nell'immagine seguente, sto utilizzando gli Strumenti di sviluppo F12 di Internet Explorer per eseguire il debug.
Questo è un sistema molto potente perché:
L'ultimo punto è importante perché il codice di sviluppo in genere non verrà pubblicato su un server Web pubblicamente disponibile (a meno che, ovviamente, non si tratti di un coding cowboy e di una produzione dev ===). Il tunneling locale utilizza Java per stabilire la connessione e l'installazione è davvero semplice. Il team di BrowserStack ha fatto un buon lavoro nello spiegare come impostare le cose.
Mentre questo articolo riguarda la sperimentazione di IE, ciò che adoro di BrowserStack è l'ampiezza del browser e del supporto OS che offrono, fino agli strumenti di sviluppo. Anche se i browser sono virtualizzati, ciò non significa che non includano i rispettivi strumenti di sviluppo.
Il metodo più recente che stavo raccomandando è un servizio basato su browser, chiamato BrowserStack.
Sappiamo tutti che i test sono difficili e che doversi preoccupare di più versioni di IE rende più difficile. Sarebbe bello se arrivassimo al punto in cui possiamo concentrarci esclusivamente sulla versione più recente di IE, ma per ora le richieste dei clienti e dei progetti tendono a dettare quali versioni IE dobbiamo supportare. Per fortuna, abbiamo soluzioni che possono permetterci di testare a costi minimi e in alcuni casi, come BrowserStack, senza alcun impatto sull'hardware.
Testare IE è importante. È uno dei browser più diffusi al mondo e le versioni più recenti hanno un eccellente supporto per standard stabili. Ma Oldie è ancora là fuori e assicurarsi che gli utenti abbiano una grande esperienza è vitale.
Spero che le opzioni che ho presentato ti aiutino. Per me, userò BrowserStack per quei casi in cui ho bisogno di tornare indietro nel tempo.