Creating and managing test assets for test automation process is always challenging. Automation shows result in long run. So it is very important to start paying attention for management of test automation assets from the starting of the project.

Issues related to following can be resolved with a proper test asset management:

1) Reuse of existing scripts : This is possible if information of location and usage of the existing scripts are available to relevant users.

2) Maintenance: Well structured scripts are easy to maintain in long run.

3) Scale ability: Easy to add new scripts as an when needed.

4) Multiple versions: Easy to keep track of multiple versions of test scripts and create test suite out of it. Helpful in bug verification and  regression testing.

5) Configurations: Different configurations depending upon the os, h/w etc can be handled effectively.

I am listing down a common working pattern for automation test asset management. Following directory structure can be used for this purpose.

Test suite - >Test set 1
                ->Test set 2
               -> Common (contains common scripts)
               -> Test data (contains common test data)
               -> Config (contains common configurations)
               -> Docs(contains common documentations)
               -> Utils (contains external utilities used for testing)

Test set 1 - > Scripts
                - > Docs
                -> Common
                -> Config
                -> Test data
                -> Expected results

Scripts folder will contain all the test scripts for a particular test case. You are free to add single or multiple test scripts against a particular test case.

Docs folder will contain the documentation for a particular test case. You can use some standard readable template for this. Do add author name and contact details, description, how to use instructions, change history etc.

Common folder will contain common scripts for a particular test set. For example to test a particular feature you may need to log in to the system. So you can add the log in script in Common folder. Make sure that scripts common to a particular test set only to be kept here. Scripts common to multiple test sets should be kept in Test suite level Common folder.

Test data folder will contain input data files common to a test set.

Config folder will contain specific configuration files related to a test set.

Expected results folder contains any expected result data file used by the scripts for validation in a test set.

Utils folder in test suite level will contain all external utilities used for testing under a test suite.

This whole structure should be maintained under version control so that same is readily available and accessible.