Hi there, finally got round to writing another blog and with this one, I am really excited. Recently, I have been spending alot of time getting to know Visual Studio 2010 and what this new release means to us testers. Well, here's the thing, VS2010 is great for testers, finally Microsoft produce a tool that I want to use as a tester. There are many things that are great about VS2010 like Test Planning, Manual Testing, Action Recordings, CodedUI automated tests, IntelliTrace, Test Impact collector and Rich "actionable" bugs to name but a few. We also have a dedicated UI - Microsoft Test and Lab Manager(MSTLM)! I can see that I am going to be getting busy writing articles on all of these subjects but for today, I just want to talk about the feature called "Shared steps".
All too often the lowly manual test is neglected but this is not the case in VS2010, the Test work item now has the ability to record execution information against test steps, which is made all the more powerful with the implementation of shared steps. By way of an example, if your SUT is an online fashion and beauty retail system and many of your tests actually transact all the way through including a purchase using a visa credit card, then you may well have a candidate for a shared step - PayByCreditCard. In the MSTLM (Testing Center) you would go to the "Organize" Tab then the "Share Steps Manager"
Here we can see our shared step called "PayByCreditCard", so digging into the detail we can have a look at how the shared step is constructed:
We can see that the shared step is made up of a sequence of actions with their expected results, of interest here is the ability to include attachments with steps, by way of an example, we can see the step that tells the user executing the share step to "click on the radio button underneath the visa image". It could be that we have a Visa image and a Visa Debit image and a good way to distinguish would be to have a snapshot of what the image should look like. Also here we can see the use of parameters and default parameter values. As you can see we have a @enddate parameter and the calling test would be asked to use the value 09/12 for this step (unless of course it is overridden in the calling test).
So now, all we need to do is reference this shared step in an actual test:
In this step whilst editing the test case we can use the "Insert shared steps" button to reference our shared step "PayByCreditCard" that we created earlier, see also how it brings with it all of the parameters from the shared steps. This allows the user to override the default parameter values in the shared steps or create multiple iterations as you can see, here we have used a different credit card number 8888888888888888 for this test. Now as we use the TestRunner to execute the test, we are prompted for the values that we specified at the test level:
But here is the great news, the test runner supports "Action Recording" which is an elementary interface on the automation engine. If we use this to record the shared step, then for all subsequent tests that use the same shared step, we can play them back in a Fast Forward style. My experience of this feature is, so long as you pay good attention to what the engine is recording, then this will save you hours of manual testing. Pure genius!