Testen met Visual Studio 2010 Ultimate Edition, een absolute prestatie!
Inleiding
Microsoft heeft Visual Studio Application Lifecycle Management 2010 (VS ALM 2010) gebouwd op basis van een aantal objectives; waaronder “No More No Repro”, “No More No Butterfly” en “No More No Regression”.
Deze objectives houden in:
- dat een ontwikkelaar altijd het scenario moet kunnen naspelen (No More No Repro)
- dat wijzigingen geen ongewenste gevolgen hebben ergens anders (No More No Butterfly)
- dat je in staat bent om snel je wijzigingen te valideren (No More No Regression).
Dit artikel beschrijft hoe Microsoft dit met de nieuwe versie van Visual Studio ALM heeft gerealiseerd. Voor dit artikel is gebruik gemaakt van Beta 2, in de uiteindelijke RTM versie kan op een aantal punten afwijken.
Work Items
In Visual Studio 2008 is het mogelijk om work items aan elkaar te koppelen. Daarmee heb je enig inzicht in de afhankelijkheden tussen work items, maar het is lastig om hier op te queryen of te rapporteren. In VS ALM 2010 heeft Microsoft de hiërarchische work items geïntroduceerd. Ook hiermee kun je work items aan elkaar koppelen, maar nu heeft deze koppeling ook een betekenis. Het voordeel wordt duidelijk in het volgende voorbeeld.
Visual Studio ALM 2010 heeft hiërarchische work items
In de Agile Process Template is er een work item van het type User Story beschikbaar, die je gebruikt om een Use Case te definiëren. In dit voorbeeld wil de klant de Use Case “Inloggen” hebben. Om de Use Case vast te leggen maak je een nieuw work item aan van het type User Story. Deze Use Case registeren we nu via het work item type User Story in TFS. De implementatie van deze Use Case bestaat vooor het ontwikkelteam uit een aantal taken, zoals het maken van een ontwerp, de code aanpassen en de Use Case testen. Deze taken zouden we in VSTS 2008 als losse work items opvoeren. In VS ALM 2010 heeft de User Story een tabblad, waarop je de taken kan opvoeren waaruit de User Story bestaat. In Figuur 1 is te zien dat de User Story “Inloggen” is aangemaakt en dat deze geïmplementeerd wordt door de taken “Maak design”, “Code aanpassen” en “Testen uitvoeren”. Deze taken zijn ook work items, maar maken in tegenstelling tot TFS 2008 echt onderdeel van de User Story uit.
Figuur 1: De User Story voor “Inloggen” met zijn taken
Aan een User Story kun je ook een test scenario koppelen. Daarvoor is er binnen VS 2010 een ander nieuw work item type geïntroduceerd, namelijk Test Case. In een Test Case work item, kun je de stappen voor het uitvoeren van de test opvoeren. Figuur 2 laat zien hoe een Test Case er uit ziet.
Figuur 2: Voorbeeld van een Test Case
Bij de Test Case kun je nu ook zien bij de Tested User Stories op welke Use Case(s) het test scenario van toepassing is. Hierdoor is traceerbaarheid welke Use Cases getest zijn van je applicatie.
Plan Test
Het vastleggen van de Test Case work items heeft zorgt voor traceerbaarheid in TFS, maar VS 2010 ALM biedt meer. Er is een nieuwe applicatie toegevoegd, die zowel in de Ultimate als in de Test Essentials versie zit, genaamd “Test and Lab Manager” (MTLM). In Figuur 3 zie je een voorbeeld van deze applicatie. Met de MTLM kun je de user interface van de applicatie onder test brengen. Indien de tester fouten vindt in de applicatie, kan hij een schat aan informatie in TFS bij de bug opslaan; waaronder de intellitrace log, screen prints en zelfs een video-opname van de acties die de tester heeft gedaan.

Figuur 3: Testing Center in Plan modus
Dit scherm ondersteunt de verschillende stappen van een tester. Als tester begin je met het maken van een plan voor een bepaald tijdvak, bijvoorbeeld een iteratie. In dit plan geef je aan welke testen je gaat uitvoeren en wie dat gaat doen. Vanuit dit scherm heb je een aantal keuzes om testen toe te voegen aan je plan. Je kunt allereerst vanuit dit scherm bestaande Test Cases toevoegen met de Add knop op de toolbar, maar ook een nieuwe Test Case (New knop) aanmaakt. Je kunt ook op basis van een query Test Cases aan je plan toevoegen. Denk daarbij aan alle Test Cases voor een iteratie (in figuur 3 “Alle testen van Iteratie 1”). Als laatste kun je een user story aan je plan toevoegen (in het figuur 3 “27: Inloggen”). Het Test Center zal dan alle Test Cases voor de user story tonen. Welke methode je ook kiest, het resultaat is een set van Test Cases voor je testplan.
Test and Lab Manager voor het beheren van Test Plannen
Test
Je hebt nu een aantal Test Cases gedefinieerd die je gaat uitvoeren. Om deze uit te voeren, schakel je naar de Test modus door bovenin op Test te klikken. Je ziet in Figuur 4 nu dezelfde Test Cases, maar nu met andere mogelijkheden. In deze modus kun je de ingeplande Test Cases uitvoeren.
Figuur 4: Testing Center in Test modus
Als je de Test Case uitvoert, dan wordt de Manual Test Runner (MTR) opgestart (Figuur 5). Dit scherm toont de gedefinieerde stappen van de Test Case. Je doorloopt de stappen van de test en bij elke stap geef je aan of het resultaat van de stap voldoet aan de verwachting.
Figuur5: Manual Test Runner
Indien een van de stappen niet voldoet aan de verwachtingen, dan wil je dat als tester kenbaar maken aan het ontwikkelteam. In VS 2008 zou je een bug aanmaken en daar een screendump als attachment aan koppelen. Extra informatie kun je in de description opgeven. Met VS 2010 ALM gaat dit veel eenvoudiger. Vanuit de MTR kun je een work item van het type Bug aanmaken. Aan deze bug wordt alle informatie toegevoegd, die de MTR heeft verzameld: zoals een screenshot die je kunt maken vanuit de MTR, de systeem informatie en een beschrijving van de stappen die je hebt doorlopen.
Manual Test Runner kan extra info aan de bug toevoegen
Indien je een Test Case start, dan krijg je (zoals in Figuur 6 te zien) de vraag of je de Action Recording wilt starten. Als je voor deze optie kiest, dan registreert de MTR alle acties die je doet. Een volgende keer dat je Test Case uitvoert, kun je deze recording gebruiken om de stappen automatisch uit te voeren. Een mooie toepassing hiervan is bijvoorbeeld, dat de ontwikkelaar bij bugfixing de test kan laten uitvoeren, zoals de tester dat heeft gedaan. Dit zorgt ervoor dat het uitvoeren van de Test Case zeer snel is en dat de handelingen identiek verlopen als bij de tester.
Figuur 6: Starten van een Test Case
Collectors
Als je naar de properties van het plan gaat, dan kun je de details wijzigen. Dit artikel beperkt zich tot de “Test settings”. Met de test settings kun je onder andere de collectors aangeven. In Tabel 1 kun je zien welke collectors er zijn en welk doel ze hebben.
| Collector |
Omschrijving |
| Action Recording and Action Log |
Verzamelt de stappen die de tester uitvoert, zodat je de stappen die zijn doorlopen in tekst kunt zien (Action Log) en de test later terug kunt spelen (Action Recording) |
| ASP.NET Client Proxy for IntelliTrace and Test Impact |
Proxy om de http calls van de client naar de server te onderscheppen ten behoeve van de IntelliTrace en/of de Test Impact. |
| ASP.NET Profiler |
Verzamelt profiling data voor een ASP.NET applicatie tbv optimalisatie performance |
| Event Log |
Verzamelt alle data die de applicatie naar de event log schrijft |
| IntelliTrace |
Verzamelt data tbv IntelliTrace. Zie later in artikel. |
| Network Emulation |
Maakt het mogelijk een netwerk na te bootsen, zoals een Dial-Up verbinding. |
| System Information |
Verzamelt de system informatie tijdens de test |
| Test Impact |
Verzamelt data tbv Test Impact. Zie later in artikel. |
| Video Recorder |
Neemt de test op als een video |
Tabel 1: Een lijst van de mogelijke collectors
Conclusie
Gezien de nieuwe test features die in dit artikel besproken zijn, kan er geconcludeerd worden dat de nieuwe versie van Visual Studio 2010, veel toegevoegde waarde zal hebben voor het uitvoeren van functioneel testen van de applicaties.
Met behulp van o.a. Test Automation en Test Impact Analyses, is test discipline niet meer een bijzaak binnen een project, maar wordt het ingezet om kwalitatief beter applicaties op te leveren.
De Visual Studio Ultimate objectives, waaronder “No More No Repro”, “No More No Butterfly” en “No More No Regression”, hebben allemaal een plekje gekregen in het product.
De traceerbaarheid van de requirements en de testen die ermee gemoeid zijn maken hetgeen opgeleverd gaat worden voorspelbaarder. Uiteraard zal dit krachtiger zijn als het vroegtijding in het project meegenomen wordt.