数独sudoku(六)合并模块和系统测试
大家好,今天完成合并模块和系统测试。
Github完整项目地址:https://github.com/surpasss/software-engineering
合并模块
通过判断命令行参数的格式选择调用对应的子功能函数。对命令行输入进行处理是通过定义在main函数的两个形式参数——argc和*argv,argv是字符串数组,argc是字符串数组中字符串的个数,而命令行读取字符串和scanf函数读取字符串是一样的,以空格或换行符结束一个字符串。因此合并子功能很容易实现,更关键的是异常处理。
有各种各样的异常输入,在上一期博客的单元测试中已考虑求解数独的路径不存在和打开文件不是正确残局格式,现在全面考虑各种输入情况。从上往下,逐层分解、只表示组成关系的层次图为:

根据黑盒测试的等价类划分把测试用例分成有效等价类和无效等价类,边界值分析把[a, b]区域的数值取a-1,a,a+1,b-1,b,b+1,以及上述层次图的可能错误点,所编写的测试用例如下:
| 输入 | 是否合法 |
|---|---|
| sudoku.exe -c | 否 |
| sudoku.exe -s | 否 |
| sudoku.exe -c 100 5 | 否 |
| sudoku.exe -s 1000.txt 5 | 否 |
| sudoku.exe -s solve.cpp | 否 |
| sudoku.exe -s 1000.txt | 是 |
| sudoku.exe -s 1000_0.txt | 是 |
| sudoku.exe -s aaa | 否 |
| sudoku.exe -c 0 | 否 |
| sudoku.exe -c 1 | 是 |
| sudoku.exe -c 2 | 是 |
| sudoku.exe -c 999999 | 是 |
| sudoku.exe -c 1000000 | 是 |
| sudoku.exe -c 1000001 | 否 |
| sudoku.exe -c 1000000000000 | 否 |
| sudoku.exe -c 0001 | 否 |
| sudoku.exe -c 123.45 | 否 |
| sudoku.exe -c -100 | 否 |
| sudoku.exe -c abc | 否 |
| sudoku.exe -c100 | 否 |
| sudoku.exe -c 100000 | 是 |
系统测试
emmm,通常集成测试需要概要设计规格说明,系统测试需要需求规格说明,系统测试是指软件系统作为整个计算机系统的一部分,在用户实际运行环境中进行的确认测试。由于本项目规模小,加上在命令行环境下测试上述的测试用例是最后一道测试,所以我认为这更贴近系统测试,测试是否满足题目的要求。
在反复测试、修改代码的一次次迭代后,终于能通过上述所有测试用例。运行全部截图如下:



可见已通过全部测试用例,并已检查正确的命令行输入完成对应的功能。

浙公网安备 33010602011771号