Create Test Data For HR
A human resources management system (HRMS) or Human Resources Information System (HRIS) or Human Capital Management (HCM) is a form of Human Resources (HR) software that combines a number of systems and processes to ensure the easy management of human resources, business processes and data. Human resources software is used by businesses to combine a number of necessary HR functions, such as storing employee data, managing payroll, recruitment, benefits administration, time and attendance, employee performance management, and tracking competency and training records. (Source: Wikipedia)
What is Test Data and why do we need it?
Test Data is the input that is given to a software program during test execution. It represents data that affects or is affected by software execution while testing. Test data is used for both positive testing to verify that functions produce expected results for given inputs and for negative testing to test software ability to handle unusual, exceptional, or unexpected inputs.
- Developers need to test their applications against the data
- To give demo(s) to the potential customers about how the system works when handling data
Let's take an example
Suppose you are building an application that needs a user to register with an email. So, what happens if a user entered an invalid email or an email that is already registered or the password does not meet the requirements. To see how your application handles all the edge cases, positive as well as negative, you need some type of data to run against your application. And this is where Test Data comes into play.
Why use Test Data?
Test data helps organizations create better quality software that will perform reliably on deployment. It prevents bug fixes and rollbacks and overall creates a more cost-efficient software deployment process. It also lowers the organization's compliance and security risks.
Key challenges for Test Data Management
Regulatory Compliance
- Over 55% of companies are not fully compliant with Data Privacy Policies due to access to all or subset of production data by development & test teams.
- Impact : GDPR penalties range from 2% of annual revenue or €10 million, whichever is the greater, to 4% or €20 million, depending on the severity of the breach.
Test Data Readiness
- Up to 85% of data is still profiled manually.
- Impact : Delivery Delays, Incomplete/inconsistent data discovery & profiling.
Data profiling
- Up to 85% of data is still profiled manually.
- Impact : Delivery Delays, Incomplete/inconsistent data discovery & profiling.
Automation
- Over 70% of test data is still created manually.
- Impact : Delivery delays & Incomplete testing of key use cases, inefficient DevOps processes.
How to Create Test Data?
Manually
- This is the most common way and mostly created in an excel sheet, where testers need to consider test scenarios, test conditions, and use the combinations correctly. Word files, Text Files, XML files can also be used to create test data.
Copy From Production
- Typically, in case of Load, Stress and Performance testing where a large amount of data is required.
Using Automated Data Generation
- Tools like CloudTDMS, a utility that generates data, tables. This data is used for database testing, performance testing, functional testing, load testing or usability testing.
Why not use Production Data?
Missing Data
- When the development team creates new functionality, this might introduce new data that is being captured. This means that you have new tables in your database for which you do not have any sample data.
Production Data follows the Happy Path
- For testing engineers, the “happy path” is a common term that refers to testing only the success scenarios. This happy path is also easy to find in production data, as every action that a user completes should be successful.
Testing Edge Cases
- Because the production data represents the happy path, you will not find many edge cases or advanced flows in your data. This might be an issue if you want to test all scenarios to reach 100% test coverage.
Why use a Data Generation tool?
Most database specialists know how to write test data, but it takes up too much time to do this manually on a regular basis. That is why the demand for synthetic test data (and test data generation tools) is growing.
The fact remains that for developers, software testers, and really anyone who has ever given a demo, fake data is essential and is surprisingly difficult to make up off the top of your head.
CloudTDMS
CloudTDMS automates the process of test data generation for non-production purposes such as development, testing, training, upgrading, or profiling. While at the same time ensuring compliance to regulatory and organizational policies & standards. CloudTDMS involves manufacturing and provisioning test data for multiple testing environments by Synthetic Test Data Generation as well as Data Discovery & Profiling.
Using CloudTDMS
The platform is free to use for all, and they provide — 30 days of their Professional plan for free — once you verify your account.
The process of using CloudTDMS is simple as follows:
Go to CloudTDMS and create a free account (Starter Plan)
Optional — Verify your email, to get a month of free professional plan
Create an Application (HR in our case)
Create Streams & Attributes:
Filename or table name = Stream
Field = Attribute
Create Workflows
Get Test data. You have two options:
- Free plan (Starter): Download your Test Data from CloudTDMS.
- Paid plan (Pro or Team): Create your Storage connection and CloudTDMS will automatically load your test data into linked Storage
From the next section onward, we will, step by step, generate the mentioned schema using CloudTDMS
Use case: Test data for some HR software
We will be using the following schema for our HR software. It consists of four entities — Employees, Client, Project, and Tasks. A client can have one or many projects and each project is managed by and employee. In turn, a project can have one or multiple tasks, and each of them is owned by an employee as well.
Applications in CloudTDMS
An application is a standard unit in CloudTDMS that packages up all the configurations within the portal. An application acts as a container that includes everything needed for a particular department or process.
Creating the application
Let us create an application first, by going to the Application tab from the dashboard. Click on Create New. You will have to provide the Application name. (HR in our case)
Click on Save to save this application
Streams in CloudTDMS
A stream is the skeleton structure that represents the logical view of a table/file. It defines what a table/file should contain. How many records to populate. CloudTDMS streams are contained within containers that we defined earlier — Applications.
Creating the streams
Let us go to the applications and click on the application that we just created I.e., HR. Now click on Add Stream button on the top left and create the streams as follows and save them.
After saving all the streams, the app should look like this
At this point, all the streams have 0 attributes that means that if we generate data now, it will be empty because CloudTDMS does not know what we need in each of those streams. And that’s where attributes come into play
Attributes in CloudTDMS
Attributes are columns in a table or keys in a file with specific information about the data. Attribute is the smallest piece of data in CloudTDMS. The data in CloudTDMS is generated by attributes, which tell the system what kind of data we want in each stream
Creating attributes
Click on each stream inside the HR application and click on Add attributes. You can now click on Add row to add more attributes in one go. After successfully, adding all attributes — click on Save button to save these attributes to the corresponding stream.
After saving all the attributes, the app should look like this.
At this point, all the streams have some attributes that means that we can generate data now. But how does CloudTDMS know that we want to generate data and for which application do we want it? Introducing CloudTDMS Workflows.
Workflows in CloudTDMS
A workflow tells CloudTDMS that we are ready to generate data, for an application and specifies all the necessary details that CloudTDMS platform needs to save our data successfully.
Creating Workflow
Go to Workflows from the link in the navbar of CloudTDMS portal and click on Create new and select the HR app that we created at the start of this session. There are many options for us to explore, but for simplicity reason, we will be going with the default ones.
After we save this workflow, CloudTDMS will generate all the data that we specified in the HR application.
Generated Data
The data gets stored in the storage that we provide when creating the workflow. By default, it is set to Local Storage i.e., the cloud storage provided to us by CloudTDMS. If you have verified your email or bought a plan, you can use storage(s) to store directly to a cloud platform.
Checking the Generated Data
After the workflow has been executed, we can its status changed to executed. That means that the workflow has successfully created data for us. To see this data:
- We can click on the Data in the navbar, and then click on Data Generated. Here we will see the data that was generated for all the streams in all the workflows.
- or we can click on the Workflow that was executed and inside, we will find all the data that was generated for this specific workflow