In our previous posts I explained about Data Subset and Data Masking in TDM. In this post we will focus on Test Data Ageing.
This is useful for Time based testing. Let's assume you create a customer and it requires 48 hours for activation of that particular customer. What if you have to test the scenario that will occur after 48 hours? Will you wait till 48 hours for that scenario to happen for your testing? The answer is No. Then how will you handle this scenario?
There are basically 2 approaches by which we can do this
- Tamper the system dates
- Although it is possible in some cases to tamper the system dates and continue with the testing, this method will fail if the date is generated by a database server or an application server instead of the client.
- Tamper the dates in the backend
- This should be most viable and practical solution for such scenario. In this approach, we modify the date at the backend so that it reflects the new date. But care should be taken to ensure that data integrity doesn't get lost or the data semantics doesn't get lost.
This method of modifying the date according to the scenario needs is known as Test Data Ageing. Depending on the scenario that needs to be tested, we can either Back date or Front date the given date.
- Relationship among other date fields
- It might happen that more than one date fields are related. So lets assume there are two date fields D1 and D2, if D1 is aged forward by 30 days, then D2 also needs to be aged by 30 days to make the data as a whole correct.
- Relationship among non date fields
- Relationships might exists from a date field to a Non-date field also. For ex. a customer that is created might have 2 fields Creation date and a Flag depicting if the status is Pending or Activated. If the customer creation date is aged, then the status field should also be modified.
The following picture depicts the challenges in both the scenarios.
These challenges can be overcome by setting rules that specify the relation between the different data fields and the values that need to be set.
There are more techniques to age the data. They are
- General Calendar
- This is based on the normal calendar days. This is pretty straightforward and this is the most widely used Ageing technique.
- Business Calendar
- This is based on certain special rules. For ex. If you want to test a Payroll processing system, you might need test data that will fall on the exact pay day. The pay day in India is the last working day of every month and in the US, it is biweekly. So based on these differences, rules can be formed and appropriate data ageing can be applied.
Hope this post was informative. Thanks for the read. Do you think there are any other means by which Data Ageing can be performed. I would like to hear your comments.
About the Author
Rajaraman Raghuraman has nearly 8 years of experience in the Information Technology industry focusing on Product Development, R&D, Test Data Management and Automation Testing. He has architected a TDM product from scratch and currently leads the TDM Product Development team in Cognizant. He is passionate about Agile Methodologies and is a huge fan of Agile Development and Agile Testing. He blogs at Test Data Management Blog & Agile Blog. Connect with him on Google+