问题描述
解决方案
测试本质就是写一些代码来调用你编写的函数,给出测试用的参数,看返回值是否符合预期,从而判断代码是否有错误。
测试用例就是用来测试的输入数据,每组数据是一个测试用例。
编写测试用例的原则是尽量提高代码分支覆盖率和代码路径覆盖率,测试各种典型和边界数据。比如如下函数:
void foo(int i, int j)
{
if (i > 0)
//a
else
//b
if (j > 0)
// c
else
// d
}
从路径上看,这个程序有4条路径
a-c a-d b-c b-d
所以要覆盖所有的路径,需要起码4个测试用例,比如
i=1 j=1
i=-1, j=1
i=1, j=-1
i=-1, j=-1
但是覆盖所有的代码(也就是所有的代码分支都执行到),只要2个用例
i=1,j=1 执行a c
i=-1,j=-1执行b d
当然也可以是别的,比如
i=1,j=-1 执行a d
i=-1,j=1执行b c
一般来说,在编写测试用例的时候,要测试所有的路径需要非常多的测试用例,往往是很难的,但是起码我们要覆盖所有的分支
在java中,我们有junit等一些框架来实现自动化的测试,这些框架的目的无非就是将测试用例依次执行,分别判断结果这样的事情自动完成。
解决方案二:
如果说一个函数有32个独立的分支,那么代码覆盖只要写最少32个用例。如果要路径覆盖,起码要写2^32个用例(大约42亿)。
解决方案三:
测试的话,,java有junit单元测试,,宽泛点就是单独测试后台某一功能的实现,,找到bug是在哪里出现的,,
时间: 2024-11-01 14:58:46