软构学习-2-软件测试与测试优先的编程
2 软件测试与测试优先的编程
大纲
- 测试用例(Test Case)
- 测试优先编程(TDD)
- 单元测试
- 使用Junit进行自动化单元测试
- 黑盒测试
- 等价类划分
- 边界值分析
- 覆盖度
Testing levels
- 单元测试(Unit testing)
- 集成测试(Integration testing)
- 系统测试(System testing)
两种测试的分类:
- 静态测试(Static)
在程序非运行的情况下。
静态测试更多的是检查源代码的结构、语法以及数据流等等。 - 动态测试(Dynamic)
在程序运行时
测试用例
测试用例:输入+执行条件+期望结果
测试优先编程
- 单元测试:
对软件的最小单元模型开展测试,隔离各个模块,容易定位错误和调试
黑盒测试
黑盒测试:用于检查代码的功能,不关心内部实现细节
-
等价类划分:
将被测函数的输入域划分为等价类,从等价类中导出测试用例
基于的假设是:相似的输入会展示相似的行为。 -
边界值分析:
理由:大量错误发生在输入域的“边界”而非中央。
覆盖分析的两个极端
- 全覆盖(笛卡尔积)
- 覆盖每个取值(至少一次)
每个维度的每个取值至少被测试用例覆盖一次即可。
代码覆盖度
测试效果:路径覆盖>分支覆盖>语句覆盖
测试难度:路径覆盖>分支覆盖>语句覆盖
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~