At my company, we are working on ways to improve our testing of database changes, in our testing environment first.
Since there are no resources to have a production like volume of data in servers with the same RAM, disk and other resources, I just thought we could scale it down and still have a good way to test those changes.
When I mention scaling, this would mean:
using 100 times less data
in a computer with 100 times less RAM and disk
set the database instance with all the thresholds 100 times smaller
Does this actually catch, before production, many of the "surprise" problems we might anticipate? Or is there a more fundamental flaw in the approach that will cause deleterious changes to pass testing and affect production?
Note 1: I am not presenting this as a way to avoid specific tests for the specific change. This is just a way to catch problems you have not anticipated.
Note 2: I am not concerned with getting a few failures in testing that would pass production. But I want to avoid the reverse as much as possible.