Test code, Can they be re-used for next version?

 I have worked on same product about 5 years. and I have shipped three different product cycles and now I’m working on next version.

Over this period, whenever we moved over to the new version, one of problem was to convert or rewrite test code. you may think that it is not a big deal. but if you have more than 2000 P1 test cases(which have multiple scenarios) and most of scenarios should test multiple languages with different types of configurations. so it was head-ache.

However my team could learn that though the product is changed and new features are added for each product cycle. we could see that basic functionalities and conceptual unit actions are not changed. so we took an approach to bring up one middle layer which keeps the definition of all concept unit actions and make our automation scripts are using the middle layers for most of cases. then we could move around our automation between different automation harness and products.

Yeah, still we need to implement new internal logic for each different testing targets(like new product), but the cost to move over old scripts could dramatically reduced comparing to our previous experience. 

Comments (2)

  1. Tim Weaver says:

    I recently got frustrated with the same issue. In my case it was ACT against a web site. Rather than having to cut and paste all the VBScript for each new version of the site I wrote a plug in architecture with the URL/Parameter/Users data stored in versionable Xml files. The test just calls GetNextRequest(). The driver class figures out what version of the plug-in should be used via a flag in an XML file and then the plug-in class handles all the logic. If something changes I just inherit from the base plug-in, override the changed request, and reuse all my old code. It isn’t pretty but it works. Plus it gets me out of VBscript land.

  2. moo says:

    Generic engine, templated datasets genereate data on the fly that meets rules.

    Automation is the win. For definate cases then theres no other way than to have these done by hand but otherwise, generate the data, XML templates, variable placeholders, database of data?

    Think smart testing tools not a simple sequential VBS or something.

    Test cases are test cases no matter how theyre coded.

    Seperate the test data from the actual test code.