Het inrichten van een test machine voor software testing doeleinden

Inleiding

Een softwareleverancier voor het Windows platform moet zijn software niet alleen testen op de correcte werking, maar ook of het wel werkt onder de verschillende Windows versies. Het is ondoenelijk om voor elke versie een test PC klaar te hebben staan, dat zouden er teveel worden en is onwenselijk zoals later in dit artikel zal blijken. In dit artikel worden mogelijke manieren van hoe het dan wel moet besproken.

Waarom een testmachine (PC)?

Microsoft heeft verschillende versies van Windows uitgebracht. Afhankelijk van het klantenbestand, zullen de verschillende versies allemaal gebruikt worden. Dit betekent dat er in principe voor elke Windows versie bijvoorbeeld de installatie op getest moet worden. Zijn alle benodigde bestanden wel aanwezig voor bijvoorbeeld Windows 95 of Windows NT? Gebruikt het produkt een Internet Explorer 6 dll en daarmee wordt Windows 95 al bijvoorbaat uitgesloten.

De twee bovenstaande vragen kunnen eenvoudig gecontroleerd worden, door de installatie op bijvoorbeeld een Windows 95 machine uit te voeren. Echter wie ontwikkelt tegenwoordig nog onder Windows 95? Of onder 98 of 2000? Er zal daarom aparte machines onderhouden moeten worden met oude versies van Windows. Een niet erg wenselijk vooruitzicht. Van Windows 95 zijn bijvoorbeeld drie versies uitgebracht. Alledrie met hun eigen problemen. Windows 98 kent twee versies. Millenium gelukkig eentje. Van 2000 zijn er drie versies, (pro, server en advanced server) en XP kent er ook alweer twee. Voeg daar ook nogeens alle service packs aan toe en het aantal combinaties is al meer dan dat we willen weten.

Er zijn klanten die hun software en hardware op peil houden, een ander groot deel zal dat niet doen. En juist deze groep zal ook graag als klant behouden moeten worden. Vandaar dat de installatie op alle of een sub groep van alle Windows versies gecontroleerd moet worden. Het is bijvoorbeeld voor te stellen om Windows 95 en Windows NT niet meer te ondersteunen, aangezien Microsoft dat zelf ook niet meer doet. Echter dit is afhankelijk van de doelgroep. Als zij nog steeds met Windows NT werken, dan zal men daar ook voor moeten testen.

Een testmachine is noodzakelijk om zeker te zijn dat de installatie goed verloopt. De vraag is vervolgens, hoe zo'n machine in te richten.

Mogelijke manieren om een testmachine in te richten

Een testmachine heeft de volgende voorwaarden:

  1. de te installeren software mag nog niet op de testmachine zijn geinstalleerd;
  2. op de testmachine zijn geen componenten geinstalleerd die ook door de setup geinstalleerd worden;
  3. de testmachine is het liefst zo kaal mogelijk ingericht (alleen Windows en de noodzakelijk drivers);
  4. de testmachine is geen produktie machine;
  5. de testmachine is een moderne machine, met kwaliteit hardware en zal in de nabije toekomst niet worden voorzien van nieuwe hardware.

Wenselijk is een testmachine die zoveel mogelijk overeenkomt met de klant waar de meeste problemen vandaan komen. En anders als een gemiddelde klant machine ingericht.

Dit betekent inventariseren van wat voor soort besturingssystemen de klanten gebruiken en dan met name waar de software op moet gaan werken. Ook kan er gekozen worden, om hard een minimale versie te eisen. Dit alles is erg afhankelijk van de markt en de concurrentie positie. Een verdere discussie is hier niet op zijn plaats, hier gaat het om de inrichting van een testmachine.

Er zijn grofweg zes verschillende manieren om een testmachine in te richten. De nadruk ligt op een testmachine (enkelvoud).

  1. een testmachine met meerdere Windows versies, die via een multiboot programma benaderd kunnen worden;
  2. een testmachine met een vernuftig backup systeem;
  3. een testmachine met meerdere Windows versies op verwisselbare hardeschijven;
  4. een testmachine met meerdere Windows versies op cd/dvd-roms;
  5. een testmachine die via een server een image krijgt;
  6. een testmachine die lokaal meerdere images heeft;
  7. een testmachine met een pc emulator en met meerdere images;

Elk type heeft zijn voordelen, maar zeker niet onbelangrijk ook nadelen. Een multiboot systeem heeft als voordeel dat het relatief snel is, en er kunnen bestanden tussen de verschilende systemen uitgewissed worden. De nadelen zijn zodanig dat deze manier van werken, niet te doen is. Allereerst ondersteunen niet alle Windows versies multibooting . Hierdoor wordt de generieke bruikbaarheid al behoorlijk beperkt. Een tweede probleem is het schoonmaken en houden van het systeem, zeker nadat er een installatie op is uitgevoerd. Dit is niet te doen en weegt niet op tegen de hoeveelheid tijd dat het kost en het eventuele risico dat het toch niet helemaal schoon is voor een tweede gebruik. Eventueel kan met behulp van een vernuftig backup systeem toch voor deze vorm gekozen worden, alleen zijn betere manieren.

Een testmachine met een vernuftig backup systeem, zou als testmachine gebruikt kunnen worden. Dit is in sterke mate afhankelijk van de backup software. Met name snelheid en gestructureerd werken, maakt deze opzet foutgevoelig. De backup mogelijkheid vanuit Windows zelf is pas vanaf Windows 2000 betrouwbaar te noemen. Daarnaast moeten er relatief veel handelingen handmatig worden uitgevoerd, wat weer de foutgevoeligheid verhoogd.

Een machine waar verwisselbare hardeschijven in kunnen, heeft als voordeel dat het plaatsen van de schijf verder geen nadenken meer kost. Verder is het precies hetzelfde als was men bezig achter een "normale" pc. De nadelen zijn verder precies hetzelfde als bij een multiboot systeem. Hoe worden de systemen weer schoon? Uninstall toolkits? Een goed backupprogramma?

Een testmachine waar de besturingssystemen "live" vanaf cd/dvd-rom uitgevoerd kunnen worden, hebben het schoonhouden probleem niet. De eigenlijke installatie moet op een hardeschijf gebeuren en die kan na afloop eenvoudig gewist worden. Het besturingssysteem blijft zelf verder intakt op een niet meer schijfbaar medium. De nadelen van deze opzet zijn:

  1. het maken van een "live" Windows cd/dvd-rom kost tijd en vergt kennis;
  2. het is een uitzonderlijke situatie, er zal geen klant zijn dit zo werkt;
  3. het is veel trager dan de andere mogelijkheden;
  4. eventuele problemen hoeven niets te maken te hebben met het besturingssysteem, maar is te wijten aan de opzet wijze;
  5. een extra cd/dvd-rom speler is nodig als de installatie vanaf een cd/dvd-rom plaatsvindt;

Afhankelijk van het soort software, kan er voor deze vorm gekozen worden. Zeker vallen systeem programma's en systeem plugins af. Een database applicatie zou bijvoorbeeld wel weer op deze manier getest kunnen worden. Mits de snelheid niet een probleem mag zijn. Overigens kan er gebruik worden gemaakt van herschrijfbare cd/dvd-roms, echter de snelheid gaat nog meer naar beneden bij gebruik van dit type medium. Voor het maken van een "live" cd/dvd-rom is dit overigens wel handig om te gebruiken.

De laatste drie manieren werken allemaal via images. En een van deze varianten zou naar mijn mening gekozen moeten worden, als het aankomt op het inrichten van een testmachine.

Images

Met images wordt verwezen naar een afdruk van bijvoorbeeld een hardeschijf. Zo'n afdruk is in feite de hele hardeschijf structuur naar een bestand weggeschreven en hier zit de relatieve onbeperkte mogelijkheden. Van een image bestand kan een duplicaat gemaakt worden, waar vervolgens weer mee verder gewerkt kan worden. De mogelijkheden zijn wat dat betreft onbeperkt. De vraag is, hoever wil en moet men gaan. Vandaar relatief onbeperkt.

Een belangrijk punt is het scheiden van de images en de hardeschijf waar ze op terug moeten worden gezet. Gebruik daarom altijd een hardeschijf waar alles mee mag gebeuren als "terug-zet-schijf". Deze hardeschijf kan hierdoor vervangen worden door een groter exemplaar, als daar de noodzaak voor zal zijn. Neem daarom een hardeschijf die groot genoeg is en dan valt te denken aan 40GB tot 80 GB. Groter hoeft op het moment van schrijven niet. De niet benutte ruimte, moet onbenut blijven. Weersta de verleiding om de onbenutte ruimte toch te gaan gebruiken. Dit zal uiteindelijk leiden tot meer werk en frustratie.

Verder is een programma nodig zoals bijvoorbeeld Norton Ghost om een image te maken. Er zijn meer programma's, maar Ghost is de bekendste en de term ghosten wil niks meer zeggen dan een image van een systeem maken.

De drie eerder genoemde manieren, hebben allemaal hun sterke punten. De versie waar een image van de server gehaald wordt, heeft als voordeel dat de image erg weinig kans loopt om overschreven te worden, mits de rechten goed zijn ingesteld. Een ander voordeel is, dat een tweede of derde identieke testmachine snel geinstalleerd kan worden. Met name voor stresstesting over een netwerk is dit erg handig, of bij automatisch testen kunnen werkstations na kantoortijd ingezet worden voor het testen. Let wel dat de hardware gelijk moet zijn en vergeet niet om eerst een image te maken van de werkstations voordat deze overschreven worden. Nadelen zijn de inrichting van de server en de netwerkbelasting te noemen. Een eigen testnetwerk en server is erg aan te raden.

Een testmachine met lokaal meerdere images heeft als voordeel dat er sneller van besturingssysteem gewisseld worden, dan over een netwerk. Verder is deze constructie relatief goedkoop. Met behulp van opensource/freeware image programma's zouden er aan de software kant geen extra kosten gemaakt hoeven worden.

Als nadeel is de uitbreidbaarheid te noemen. Een tweede identieke testmachine heeft meer tijd nodig om op te zetten. Onthouden moet worden dat de images nooit op dezelfde harddisk mogen staan, als waar een image op teruggezet wordt. Deze constructie leidt uiteindelijk tot problemen. Te weinig ruimte, of er worden fouten gemaakt bij het maken van een images, kortom een hardeschijf is te foutgevoelig. Maak gebruik van minimaal twee hardeschijven. Als eenmaal het besturingssysteem op de hardeschijf staat, is dit in feite de snelste constructie. Dit geldt ook voor een image terugzetten via het netwerk.

De laatste variant is duurder en trager dan de eerder beschreven twee. Door gebruik te maken van pc emulator (ook wel virtuele machine genoemd) software kan binnen een bestaande omgeving, een afzonderlijke testomgeving gemaakt worden. Dit gaat ten koste van snelheid, want het emuleren van een computeromgeving kost extra computertijd en interne geheugenruimte. Als voordeel is de flexibiliteit van deze constructie te noemen. Eventuele gemaakte images kunnen naar andere machines worden overgezet. Dit hoeven geen identieke machines te zijn. Er zijn wel voorwaarden die aan de machines gesteld worden. Ze moeten snel zijn en voorzien zijn van veel intern geheugen. Daarnaast een stabiel besturingssysteem. Voor Windows zijn dat de versies 2000/2003/XP Pro. Sommige emulators werken ook onder (L)Unix en MAC OS 8 en hoger, Een ander voordeel is dat de pc emulators meestal met extra functionaliteit komen, zoals bijvoorbeeld een "instant image" maken.

Conclusies

De varianten waarbij images worden gebruikt hebben de voorkeur. Deze varianten zijn relatief makkelijk te implementeren en te automatiseren waardoor kans op fouten afneemt. Wel is er enige kennis noodzakelijk wat betreft het maken van images en van hardware.

Tips

Voor de images varianten, is het belangrijk dat gebruikers weten wat ze moeten doen. Door gebruik te maken van duidelijke menu gestuurde image terugzet- en maak acties, worden eventuele fouten tot een minimum teruggebracht. Te denken valt aan menu gestuurde batch opdrachten.

Voor alle varianten geldt; maak backups en onderhoud de systemen. Hier valt of staat het hele testmachine concept mee. Dit kost tijd, maar zal verdient zich relatief snel terug.

Gebruik geen afdankertje als testmachine. Binnen niet al teveel tijd, ontstaat toch de wens voor een snellere machine. En laten we wel wezen, uiteindelijk wordt er met deze machine bepaalt of iets aan klanten geleverd kan worden of niet. En meestal gebeurt dit op het laatste moment en dan wordt de frustratie alleen maar groter als het en trage PC is. Dus investeer in iets goeds.

Hou de partitie waarop de testomgeving moet werken klein. Windows 98 heeft bijvoorbeeld geen 20 GB schijfruimte nodig. 5 GB is waarschijlijk ruim voldoende. Neem natuurlijk de partitie ook niet te klein, zorg voor een goed werkbaar testsysteem en hou daarbij rekening met de benodigde ruimte van misschien standaard pakketten, zoals MS Office.

Multiboot managers

Windows NT/2000/XP/2003 komen met een eigen bootmanager. Alleen is die beperkt tot maximaal vier besturingssystemen.

XOSL (Gratis)

Image makers

Ghost4Unix (Opensource/free/Gratis)

Norton Ghost (Commercieel)

Arconis True Image (Commercieel)

HD Clone 2 (Free/Gratis beperkte versie beschikbaar)/ (Commercieel)

Casper XP 3.0 (Commercieel)

Virtuele machines of pc emulatoren

Bochs (Gratis)

VMWare (Commercieel)

Virtual PC 2004 (Commercieel)

Virtual PC 2007 (Commercieel)

Bestand compressie programma's

Bestand compressie programma's kunnen ervoor zorgen dat bestanden minder ruimte hardeschijfruimte innemen. Ideaal voor het maken van backups. Echter met bepaalde programma's kan het bestand nog veel beter gecomprimeerd worden. Met name winrar presteert erg goed net als 7-zip.

Winrar (Commercieel)

7-zip (Gratis)

Partitie managers

Partities kunnen met fdisk of tijdens de Windows 2000/XP/2003 installatie gemaakt worden. Erg flexibel zijn de Windows mogelijkheden niet. Vandaar dat er markt is voor partitie managers.

Ranish Partition Manager (Gratis)

Ultimate bootcd (Linux Gebasseerd (Knoppix))(Gratis)

Ultimate bootcd 4 Windows (Op BartPe gebasseerd)(Gratis)