Notes on Test Data
To test a software application you need to enter some data or have some existing data as inputs to test the features of the system. Any such specifically identified data which is used in tests is known as test data. Managing test data is important because it serves as known state that is used to confirm expected results or outputs and to verify the behavior of the software.
As a consequence, missing or incomplete data can negatively affect the result of calculations behavior of the system in general. Poor quality test data can also impact productivity. We can spend a lot of time working around “bad data" and poor quality data can even prevent us from writing certain type of tests, such as integration tests.
The impact of shared databases. Test data provides facts to create conditions to prove or disprove our assumptions (hypothesis) of the behavior of our code. The results we observe to validate the behavior of the system, should be reproducible thus, test data should be stable and predictable in order to formulate the basis of our tests. Using shared databases you cannot control changes made to the data, thus making the data unpredictable. This would make the results for integration and automation tests unreliable.