软件测试学习——TDD流程实验报告
软件测试课程作业四
实验内容
- 依据 TDD 编程流程,编制函数,实现两数相加求和。
实验过程
TDD 需求阶段
考虑到浮点数可表达的范围太大不好体现 TDD 设计流程的思想,本实验目标为实现用户控制两整数相加并返回结果。
输入阶段:
用户可手动输入数值或选择退出程序。
检测阶段:对用户输入的内容进行检测
合法输入应为
int
类型范围内整数,对于不合法的输入提示错误并重新输入,输入为合法范围内但输出数值溢出的情况,会由计算阶段程序在内部进行适当格式转化,对用户透明。计算阶段:计算两数之和
对合法的输入内容,执行 ADD 求和,并返回结果。
输出阶段:
将得到的结果反馈给用户。
TDD 设计阶段
基于需求分析的思路,设计方案求精,构建测试用例,用文字描述程序过程。(单元测试 Unit Test 客观上被节省掉)。
构建测试用例
由于开发过程是,需求-测例-代码,看不到程序结构,这里主要采用黑盒测试的测例构造思路。
测例编号 输入 预计输出 实际输出 备注 1 a=2147483646 b=1 2147483647 4Bytes int 类型边界测试值。 2 a=2147483647 b=1 2147483647 输出值不再能用 4Bytes 表示,转化测试 3 a=2147483647 b=2147483647 4294967294 双边界值测试 4 a=-2147483647 b=-1 -2147483648 负值 4Bytes int 类型边界测试界 5 a=-2147483648 b=-1 -2147483649 负值转化测试 6 a=-2147483648 b=-2147483648 -4294967296 负值双边界值测试 7 a=0.005 b = asdfab 2 Error 不合法的非整数输入测试 8 a=2147483648 b=-2147483649 2 Error 正负双越界测试
TDD 构造阶段
在我的构造阶段,我写了一个带格式转化的程序(验证程序)和一个不带格式转化的程序(对照程序)。
- 带格式转化程序(验证程序)
1 |
|
- 不带格式转换的程序(对照程序)
1 |
|
TDD 测试阶段
下面三幅图片分别展示了我完成的情况,开始的 1.0 版本,包含了异常输入的检验,但是并不能进行越界检查。随后通过 try-catch,加入了越界检验,并完成对照程序。
功能不达标,越界报错,(红灯状态)
运行截图:
测例执行情况:
测例编号 输入 预计输出 实际输出 备注 1 a=2147483646 b=1 2147483647 2147483647 符合预期 2 a=2147483647 b=1 2147483647 2147483648 符合预期 3 a=2147483647 b=2147483647 4294967294 4294967294 符合预期 4 a=-2147483647 b=-1 -2147483648 -2147483648 符合预期 5 a=-2147483648 b=-1 -2147483649 -2147483649 符合预期 6 a=-2147483648 b=-2147483648 -4294967296 -4294967296 符合预期 7 a=0.005 b = asdfab 2 Error 2 Error 符合预期 8 a=2147483648 b=-2147483649 2 Error 程序故障 不符合预期 功能达标(绿灯状态)
运行截图:
测例执行情况:
测例执行情况:
测例编号 输入 预计输出 实际输出 备注 1 a=2147483646 b=1 2147483647 2147483647 符合预期 2 a=2147483647 b=1 2147483647 2147483648 符合预期 3 a=2147483647 b=2147483647 4294967294 4294967294 符合预期 4 a=-2147483647 b=-1 -2147483648 -2147483648 符合预期 5 a=-2147483648 b=-1 -2147483649 -2147483649 符合预期 6 a=-2147483648 b=-2147483648 -4294967296 -4294967296 符合预期 7 a=0.005 b = asdfab 2 Error 2 Error 符合预期 8 a=2147483648 b=-2147483649 2 Error 2 Error 符合预期 对照程序
运行截图:
测例编号 输入 预计输出 实际输出 备注 1 a=2147483646 b=1 2147483647 2147483647 符合预期 2 a=2147483647 b=1 2147483647 -2147483648 符合预期,对照程序运算不进行转化 3 a=2147483647 b=2147483647 4294967294 -2 符合预期,对照程序运算不进行转化 4 a=-2147483647 b=-1 -2147483648 -2147483648 符合预期 5 a=-2147483648 b=-1 -2147483649 2147483647 符合预期 6 a=-2147483648 b=-2147483648 -4294967296 0 符合预期,对照程序运算不进行转化 7 a=0.005 b = asdfab 2 Error 2 Error 符合预期 8 a=2147483648 b=-2147483649 2 Error 2 Error 符合预期
重构代码已经进行过,上一节代码中可以体现,另外我觉得重构必然导致回归测试,否则对于软件产品上线运行是极不负责任的。
实验总结
本次实验完全按照 TDD 的过程进行程序(项目)设计,先构建样例,再构建程序,非常深刻的感受到 TDD 作为敏捷开发的一个分支的特点和优劣势。
在本次实验中还同时借边界测试温习了一下源码补码相关的内容。测试样例的编写由于构建测例在先,使用偏向黑盒的测例构造方法(注重功能,强调试错),同步做了一个对照程序来确认验证程序的突出性质。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!