51Testing软件测试论坛
标题:
牛顿迭代法计算正实数的平方根,写出该程序测试用例
[打印本页]
作者:
gigi-1128
时间:
2007-1-10 11:50
标题:
牛顿迭代法计算正实数的平方根,写出该程序测试用例
double sq_root(double a)
{
double x;
if(a<0)
printf("请输入正实数!");
x=a;
while( fabs (x*x-a) >= E0 ) // (x+a/x)*0.5是牛顿迭代系数,E0是定义的一个常数误差
x = ( x+a/x)*0.5;
return x;
}
牛顿迭代算法可以不用管怎么来的,只用针对这个程序,设计下测试用例,大家来讨论下吧sdlkfj2
作者:
gigi-1128
时间:
2007-1-11 10:56
程序中的返回值x的值就是输入正实数a的平方根.
作者:
gigi-1128
时间:
2007-1-11 11:10
输入必须为正实数,那么可以确定一个有效等价类(正实数或0)和一个无效等价类(负实数),不会只有这个用例吧?还可以找出哪些测试用例来呢?
作者:
chenxi01032005
时间:
2007-1-11 15:33
while循环的判定条件是不是也应该覆盖?
作者:
getfly
时间:
2007-1-11 22:35
有没有答案那。
作者:
boliping
时间:
2007-1-15 15:04
fabs()是个什么函数呀
作者:
boliping
时间:
2007-1-15 15:09
是不是还要看看EO这个常数得多少呀
作者:
hayerk
时间:
2007-1-18 10:10
1. a是否是double型的数字?分成两个等价类(数字+非数字);
2. a=0?分成三个等价类(大于0,等于0,小于0)。当等于0时,a/x成了0/0,不知道会有一个什么结果,程序在此处没有容错。
3.E0足够大?两个等价类,一个是使得fabs(x*x-a)<E0,即不进入循环,解就是x=a;另一个是进入循环。
4.应该还有考察计算是不是收敛的用例
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2