I’m using Google Docs to share test data. That way test data (accounts, purchases etc.) can be set up in advance and test execution can be done using the pre-created data. It saves a lot of time and streamlines the testing effort.
When executing a test, a tester can just go to the google doc and get a test account already configured with the proper data for the scenario they are testing. This can also extend to automation with one extra step.
The test automation I’ve written in C# originally was written for a single scenario. After some refactoring, I had data driven test cases in NUnit. This is simple to accomplish with an annotation. The original test might look something like this:
using System; using NUnit.Framework; [TestFixture] namespace oneshore.qa.testfixtures { public class MyTest { [TestCase] public void testSanity() { Assert.IsTrue(Sky.color == Colors.BLUE); } } }
By adding parameters to the [TestCase] attribute we can come up with a (slightly) data driven test:
[TestCase(Color.BLUE, Result=true)] [TestCase(Color.GREEN, Result=false)] [TestCase(Color.RED, Result = false)] public bool testSanity(Color expectedColor) { return Sky.color == expectedColor; }
You can also specify a data source method with the TestCaseSource attribute:
[TestCaseSource("MyDataMethod")] public void testInsanity(Color unexpectedColor) { if (unexpectedColor != Color.BLUE) Assert.IsFalse(Sky.color == unexpectedColor); } private IEnumerable<Color> MyDataMethod() { List<Color> colors = new List<Color>{Color.BLUE, Color.GREEN, Color.RED}; foreach (Color color in colors) yield return color; }
It’s now a fairly simple exercise to get your test data from a file. And just one more step to use the Google Data API to get it from a spreadsheet. I’ll detail that next.