数独-测试

测试

​ 使用Junit5对三个类分别进行单元测试,单元测试的编写思路是黑盒测试,运用了路径覆盖和边界覆盖。对接口功能、边界条件等进行测试,并使测试覆盖率尽可能,测试用例尽可能全面。

MainTest用于测试输入是否合法,以及是否可以顺利写入文件,

GenerateTest测试其中的函数是否正常,并进行了重复性检测,检测器生成的1000个终局中是否有相同的情况。

SolveTestSolve中部分主要函数进行了检测,并对求解结果进行了有效性检测,判断是否是否求出了正确的数独解。

​ 单元测试覆盖率

Main部分测试设计(期待状态=实际状态,即为成功)

编号 内容 状态
1 args[0]=11,args[1]=null 成功
2 args[0]="-c", args[1]="0" 成功
3 args[0]="-c", args[1]="1_000_001" 成功
4 args[0]="-c", args[1]="1_000_000" 成功
5 args[0]="-c", args[1]="D:/1.txt" 成功
6 args[0]="-s", args[1]="D:/1.txt" 成功
7 args[0]="-s", args[1]="D:/app/" 成功

Generate部分测试用例

函数 内容 状态
createSeed seed={1,2,...9},goalNum=1 成功
createSeed seed={1,2,...9},goalNum=100 成功
createMap int[][] temp={{5,1,2,7,8....},goal=1 成功
createMap int[][] temp={{5,1,2,7,8....},goal=1 成功
swap 交换两个数 成功
generateSudoku count=1000(检测生成的1000个终局是否重复) 成功
generateSudoku count=1,000,000(检测生成的1,000,000个终局是否重复) 成功

Solve部分测试用例

函数 内容 状态
findSolution PATH=txt路径,里面有1000个数独,检查找到的解是否正确 成功
findSolution PATH=txt路径,里面有100个高难数独,检查找到的解是否正确 成功
fill Criterion[0]=510,Criterion[9]=510,Criterion[18]=510,row=0,col=0,value=5; 成功
releaseNum PATH=txt路径,row=0,col=0,value=4; 成功
getBlock row=0,col=0 成功
getBlock row=3,col=4 成功

通过命令行执行程序,对得到结果进程测试

编号 命令行参数 结果
1 -c 0 能生成的终局在1-1,000,000之间
2 -c -1 能生成的终局在1-1,000,000之间
3 -c 1000 运行成功
4 -c 1000000 运行成功
5 -c 1000001 能生成的终局在1-1,000,000之间
6 -c 生成终局命令为:java sudoku -c 阿拉伯数字
7 -a 您的输入不正确

生成终局命令为:java sudoku -c 阿拉伯数字
求解数独命令为:java sudoku -s puzzle.txt的绝对路径
8 -s D:\app\ 路径需指向一个txt文件
9 -s D:\app\unexisted.txt 系统找不到指定的文件
10 -s puzzle.txt 运行成功
posted @ 2020-01-06 16:08  Natelie_kkx  阅读(502)  评论(0编辑  收藏  举报
levels of contents