I work on a large programming team, and I run a suite of performance tests on every change that is made in our program, which basically measure time it takes to run the test. For every code change, we run these tests, and we calculate whether the change caused the test to run slower by doing a two-sample t test (against the results from the previous code change). This works decently, but the problem is that we only have a small number of sample data points, generally 5 per test, per code change. There are about 400 individual measurements that we track performance on, so we see some noise in our results (i.e. the t-test will yield a small p value for tests which are not actually any faster/slower due to the code change).
Even though we have a small number of sample points on each code change, we have a very large history of results. I want to use this historical data to help us, but I'm not sure how I can. A problem I'm worried about is that any code change may cause the tests to run faster or slower, so just blindly aggregating historical data will yield a poor result. Are there any statistical tests that will help me with this?
For a little more info: Most of the time code changes do not have any impact on performance, and those of them that do cause performance tests to run faster or slower only do so on a handful of the 400 tests. Which means that for any given test, it could be hundreds of code changes before a change actually makes the test run faster or slower.
To clarify, I want to figure out when a code change actually causes a test to run faster or slower. What options do I have?