Strategier för att testa IE på olika plattformar

Du kanske tror att webbutvecklare som använder Windows som deras primära operativsystem, har det enkelt när de testar Internet Explorer. klicka helt enkelt på den blå "E" och gå till stan. Det kan vara sant om de bara var tvungna att oroa sig för versionen av IE på sin dator, men vi vet alla att det inte är fallet. Beroende på projektets behov kan du behöva se kompatibilitet från IE6 till IE10, vilket verkligen medför vissa utmaningar. Hur hanterar vi det här?

Nu om du är på Windows har du definitivt ett ben på grund av att du minst kan prova en specifik version av IE, men det är en helt annan ballspel om du är på Mac eller Linux.

Vad jag vill göra är att utforska de olika sätten att testa Internet Explorer på populära plattformar och ge förslag på hur man sänker friktionen för testning för flera versioner av webbläsaren.


Versioner, versioner, versioner ...

Vi vet alla att testningen är svår.

Internet Explorer har flera versioner i bruk, var och en med sin egen nivå och funktioner. Även om det skulle vara bra om vi bara skulle rikta IE10, har i själva verket många användare och företag helt enkelt inte uppgraderat sina webbläsare eller operativsystem. Det betyder att beroende på vad du bygger kan din testmatris innehålla upp till fem olika versioner av IE. Jag kan höra groans nu.

Tack och lov, IE9 och IE10 har starkt stöd för standarder, och IE6 börjar gå för Dodo-fågeln (om än långsamt). Faktum är att många toppsidor har helt tappat stöd för IE6 och IE7 - ett bra steg framåt, speciellt jämfört med var vi var för bara två år sedan. Och med Microsoft offentliggörande att IE10 kommer att komma till Windows 7, är mitt hopp att IE10 + kommer att hjälpa till att minimera antalet stödda versioner inom en snar framtid.

Med detta sagt utgör dessa versioner fortfarande ett testproblem eftersom du inte kan köra flera versioner av Internet Explorer på samma dator. Det betyder att vi måste titta på alternativa lösningar som:

  • Virtuella maskiner
  • Virtualiserade webbläsarsessioner

Jag kommer att beröra var och en av dessa och diskutera möjliga lösningar.


Mitt första verktyg för provning

När jag behöver testa en webbplats i Internet Explorer är mitt allra första verktyg F12 Developer Tools i IE10. Inbyggd i verktygssatsen är möjligheten att byta både webbläsare och dokumentlägen för att emulera IE7 via IE10.

Det ger i grunden mig omfattande testtäckning för de vanligaste versionerna av Internet Explorer i en enda webbläsare. Det blir enkelt att välja mitt webbläsarläge så att jag kan arbeta med specifikt funktionsstöd och sedan välja renderingsläge för min sida.

Anledningen till att jag säger att detta är min första testlinje är att det hjälper mig att hitta många vanliga problem. Det är ett utmärkt verktyg för att identifiera och interagera testa problem som saknas leverantörs prefix eller om en sida gör quirks istället för standarder. Och jag kommer att säga att det har hjälpt mig att lösa ett antal webbplatsproblem utan att behöva ladda en virtuell maskin eller använda en annan dator.

För att vara tydlig är det dock definitivt ingen ersättning för testning i en verklig version av Internet Explorer.

IE-teknikteamet gör sitt bästa för att backa upp funktionalitet, men det är en ganska stor ansträngning och inte alltid idiotsäker. För att få den mest pålitliga testupplevelsen måste du antingen ha flera datorer (fysiska eller virtuella) som kör olika versioner av Windows / IE. Om du inte har pengar som brinner ett hål i fickan, tänker jag att VM-rutten är förmodligen det bästa valet.


Virtuella maskiner

Jag gillar verkligen att använda virtuella maskiner eftersom det ger mig möjlighet att testa inte bara webbläsare utan olika operativsystem från min egen dator. Så mycket som jag skulle vilja ha massor av enheter att testa och leka med, tror jag att min fru kanske inte är glad när elräkningen kommer in. Jag har haft VMs någon gång för alla större versioner av Windows och Ubuntu . Det skulle vara bra att kunna köra OSX, men min förståelse är att det finns tekniska och licensierande problem med att göra det.

Det finns två sätt att få Windows till en VM för testning. Den första är att köpa en licens för varje version av Windows du ska testa. Jag har faktiskt licensierade kopior av Windows XP, Windows 7 och Windows 8 som jag köpte för min egen personliga testning. Den långsiktiga kostnaden var liten och jag ansåg det som en investering som en professionell webbutvecklare. Det här låter mig installera operativsystemet och aktivera det utan att behöva oroa sig för Microsofts berömda tidsbom. Jag kan få alla uppdateringar, och det ger mig i princip en riktig fungerande version av Windows.

Jag vet inte alla tycker på samma sätt, och inte alla vill vilja göra investeringen.

För dig som är mer sparsam, erbjuder Microsoft Internet Explorer Application Compatibility VPC Images som innehåller en förinstallerad version av Windows med en specifik webbläsareversion. Med dessa bilder kan du arbeta med Internet Explorer 6 till 9 nästan obestämt men med stor begränsning. Följande sammanfattar det:

Mitt allra första verktyg är F12 Developer Tools i IE10.

Du kan aktivera upp till två "omarbetningar" (skriv slmgr-rearm på kommandotolken) som förlänger provet ytterligare 30 dagar varje gång eller helt enkelt stänga av VPC-bilden och förkasta de ändringar du har gjort från ångra diskar för att återställa bilden tillbaka till sitt ursprungliga tillstånd. Genom att använda någon av dessa metoder kan du tekniskt ha en basbild som aldrig löper ut, men du kommer aldrig att kunna permanent spara några ändringar längre än 90 dagar.

Så du borde kunna använda någon av VPC-bilderna i obestämd tid, men efter 90 dagar raderas alla konfigurationsinställningar du har sparat i bilden. Jag tittar på detta som ett litet pris för att betala för att ha en fri bild att använda för testning. Jag vet att när jag har använt dem gjorde jag det uttryckligen för att testa IE så jag hade minimal, om någon konfigurationsförändring försvann. Den enda bilden som uppför sig annorlunda är WinXP / IE6-bilden; det stängs av helt på ett visst datum. Som det här skrivet skulle det vara 14 februari 2013 så var noga med att inte ge det som en gåva till din speciella person för Alla hjärtans dag.

Om du använder Windows 7 måste du ta en kopia av Virtual PC, som låter dig skapa VM och köra befintliga VHD. Windows 8 Pro innehåller Hyper-V virtuell maskinhanterare. Det är inte aktiverat som standard, så du måste gå in i "Kontrollpanelen-> Programmer-> Slå på Windows-funktioner på eller av" för att aktivera det:

När du är installerad borde du kunna köra VPC-bilderna som du hämtade från Microsoft-webbplatsen. Jag laddade ner WinXP / IE6-bilden. Den kommer i form av en självutdragande .exe-fil som dumper ut .vhd-filen för dig att använda. .Vhd-filen är din virtuella hårddisk.

Du loggar in på Virtual PC och väljer "Create virtual machine", som dyker upp en dialogruta för att sparka upp saker:

Ange sedan hur mycket minne du vill allokera till VM, och sen viktigst, välj att du vill använda en befintlig virtuell hårddisk så att du kan använda VPC du hämtade:

VM kommer nu att skapas och visas i Virtual PC. Dubbelklicka på den startar VM och ger dig tillgång till Windows XP. Du blir uppmanad att aktivera den, men bara avbryta den förfrågan:


OSX och Linux

Om du inte är på Windows kan du fortfarande använda VPC-bilderna, men stegen kommer att bli lite mer involverade. På OSX använder jag VMWare Fusion. Jag tycker att det är den bästa VM-mjukvaran för den plattformen, och den har bra användarstöd. Ett exempel är att de har ett verktyg som heter VMWare vCenter Converter, som låter dig ändra VM-formattyper till en kompatibel version med VMWares produkter. Eftersom IE VPC-bilderna inte är kompatibla, behövde jag konvertera dem, och vCenter Converter gjorde det oerhört smärtfritt (även om det bara är Windows-bara). Stegen var enkla. Jag installerade appen:

En gång installerat körde jag det och startade konverteringsprocessen. Det första jag behövde göra var att ange källfilen för att konvertera. Konverteraren hittade "Windows XP.vmc":

Därefter specificerade jag destinationen där den skulle skapa VMWare-kompatibla filer:

Processen för att konvertera Microsoft VPC-bilden tog alla tre minuter. Jag kopierade dessa filer till en tummin enhet och tog dem över till min Mac. Jag lanserade VMWare Fusion och skapade en ny VM baserat på en befintlig bild, pekar den på bilden jag just skapade och valde att göra en lokal kopia av bilden på min hårddisk:

Jag blev sedan uppmanad att uppgradera till det senaste formatet. Gör det inte. Om du gör det fungerar din VM inte. Jag vet inte varför, men jag berättar det här för erfarenhet.

VMWare Fusion kommer att köras genom importprocessen och låter dig konfigurera dina VM-inställningar. Du måste justera inställningar som minne och videoalternativ baserat på maskinens kapacitet. Jag körde sedan VM och presenterades med Windows XP-inloggningen.

När jag loggade in, blev jag hälsad av den vanliga spärren om nya hårdvarulösa meddelanden. Tänk bara på dem, tillsammans med aktiveringsprompten, och du borde kunna använda operativsystemet:


Vad om paralleller och VirtualBox?

Både Parallels och VirtualBox är utmärkta VM-lösningar. VirtualBox är specifikt öppen källkod och tillgänglig under en GPL-licens. Jag har inte använt Paralleller, så jag har inga steg för att du ska följa det som jag skulle må bra rekommendera. Om du råkar hända att använda VirtualBox, har Jon Thorton gjort ett bra jobb för att ge en steg för steg förklaring av hur man använder VPC-bilderna med VirtualBox. Det är lite inblandat, men det fungerar. Jag har också hört många utvecklare rave om ievms-skripten; De låter dig ladda ner VPC-bilderna och konvertera dem till ett format som VirtualBox accepterar. Processen är ganska automatiserad och verkar vara ett bättre alternativ.


BrowserStack.com

Den senaste metoden som jag har rekommenderat, med mycket spänning som jag kan lägga till, är en webbläsarbaserad tjänst, kallad BrowserStack. Det låter dig testa din webbplats med virtuella webbläsarsessioner - allt inom din favoritbläddrare. Det använder Flash för att tillhandahålla den virtualiserade sessionen och du kan välja från vilket antal operativsystem och webbläsarversioner som helst. Om jag till exempel vill testa olika webbläsare i Windows XP är det lika enkelt att välja det operativsystemet och välja målbläddrare:

Det viktigaste är att det inte är en skärmdump av din webbplats. Det är en fullt fungerande webbläsare som du kan interagera med.

Om du märker på bilden har jag klickat på rullgardinsmenyn för fliken "Säkerhet" och i följande bild använder jag utvecklarverktygen för Internet Explorer F12 för att felsöka.

Detta är ett mycket kraftfullt system eftersom:

  • Tjänsten är billig ($ 20 / månad)
  • Låt oss testa alla större versioner av varje webbläsare på alla större operativsystem
  • Låt oss ange olika skärmstorlekar
  • Tillhandahåller tunnelstöd för lokal testning

Den sista punkten är viktig eftersom din utvecklingskod normalt inte kommer att gå på en offentligt tillgänglig webbserver (såvida inte du självklart är en kodande cowboy och dev === produktion). Den lokala tunneln använder Java för att upprätta anslutningen, och installationen är väldigt lätt. Teamet på BrowserStack har gjort ett bra jobb för att förklara hur man får saker att installera.

Medan denna artikel handlar om att testa IE, vad jag älskar om BrowserStack är bredden av webbläsare och OS-stöd de erbjuder, helt ner till utvecklarverktygen. Trots att webbläsarna virtualiseras betyder det inte att de inte innehåller deras respektive utvecklingsverktyg.


Testning är svårt

Den senaste metoden som jag har rekommenderat är en webbläsarebaserad tjänst, kallad BrowserStack.

Vi vet alla att testningen är svår, och att behöva oroa sig för flera versioner av IE gör det svårare. Det skulle vara bra om vi kommer till den punkt där vi kan fokusera enbart på den senaste versionen av IE, men för närvarande har kund- och projektkrav tenderar att diktera vilka IE-versioner vi behöver stödja. Tack och lov har vi lösningar som kan tillåta oss att testa till minimal kostnad och i vissa fall, som BrowserStack, utan alls alls hårdvara.

Testning av IE är viktigt. Det är en av de mest använda webbläsarna i världen, och de senaste versionerna har utmärkt stöd för stabila standarder. Men OldIE är fortfarande ute och det är viktigt att användarna har en bra upplevelse.

Jag hoppas att de alternativ jag presenterade hjälper dig ut. För mig ska jag använda BrowserStack för de fall där jag behöver gå tillbaka i tiden.