软件测试方法和技术实践笔记(三)——单元测试方法
代码测试方法,包括自动代码扫描、插桩、单元测试框架等
自动代码扫描
自动化代码扫描重点关注编码的规范性,也关注代码错误
代码的要求:
- 可运行
- 易于维护
- 灵活性
- 可靠性
代码检查工具:
- Checkstyle:静态语法检查
- 代码格式检查工具,关注代码格式带来的缺陷、风险
- 根据设置好的编码规则来检查代码(定制化)
- 规则可以触发通知、警告和错误
- 只做检查,不修改代码
- Findbugs:静态逻辑bug检查
- 检查类或JAR文件,将字节码与一组缺陷模式进行对比以发现问题
- 发现的问题大部分是在Runtime过程中,会造成程序异常、错误的
- 可以练习class所在的package的上下文,对代码进行穿透检查,对隐藏的比较深层次的逻辑错误、资源操作问题等进行报警
- SourceMonitor:代码质量自动检查
- 可以为多种编程语言的源代码文件测试代码数量和性能,最终结果可描绘成图、输出打印
- 度量、记录和现实代码质量指标:代码行数、注释行数、分支比例、注释比例、类定义个数、方法/个数/类、平均语句数/方法、最大复杂度、最大调用深度、平均复杂度、函数格式
- 提取代码复杂度信息,为代码重构提供指导
- 提示代码安全隐患
- 结果查看,支持结果输出到XML格式、HTML格式、IDE插件等
插桩Stub
-
通过伪造一个桩模块Stub,模拟被测代码依赖的模块。桩模块的函数名、入参、返回值和实际模块保持一致。入参和返回值根据测试需要自行设置
-
被测模块如果不能独立运行,写一个驱动模块,调用被测模块,让被测模块运行起来
常用工具有easy-mock、mockito、wiremock等
单元测试框架
Junit,流行的Java单元测试框架,提供测试用例、测试套件、测试断言、测试用例管理控制等功能