我正在尝试使用Visual Studio 2015内置的单元测试框架来测试一些C ++代码。我写了一些代码,每小时,每天和每小时测试一次。每周模型,通过计算确定系数(R ^ 2)来查看哪一个最可靠地拟合一组现实生活数据。
现实生活中的数据需要从图形中“读取”,我有一个经过测试和验证的例程。
我知道我期待每周模特完美契合,其他两个不会。要在纸上点缀,需要~300个方程计算来获得我正在使用的值,然后计算R ^ 2值。我宁愿不这样做......
如何测试此代码?我是Unit Testing的新手,我仍然理解测试函数时使用的范例。
我的代码:
历史和图表是向量的向量。
float calculateDeviation(int period) {
int x1 = history.front()[0];
int x2 = x1 + period;
int i = 0, minimum, maximum, SSres = 0, SStot = 0, j=0, R2 =0;
float average = 0;
int endTime = history.back()[0];
while (x2 <= history.back()[0]) {
average += averageGradient(x1, x2);
x1 = x2;
x2 += period;
}
x1 = history.front()[0];
x2 = x1 + period;
i++;
while (j < i) {
SSres += pow((graph[i][0]-((graph[i][2]*graph[i][0])+graph[i][3])), 2);
SStot += pow(graph[i][0] - average, 2);
x1 = x2;
x2 =+ period;
j++;
}
R2 = 1 - (SSres / SStot);
return history.back()[0];
}
答案 0 :(得分:1)
我是一名执业测试工程师,根据您提供的内容,您应该能够编写以下基本单元测试:
请记住准备几组输入数据,包括边界(最小值,最大值和应失败的值)。这通常是一个突破点,因此请务必运行需要错误处理的测试。如果您能想出一种破解代码的方法,那么您已成功确定了需要进行一些调整的区域。我的朋友,这就是重点。 :)