代码测试方法,包括自动代码扫描、插桩、单元测试框架等

自动代码扫描

自动化代码扫描重点关注编码的规范性,也关注代码错误

代码的要求:

  • 可运行
  • 易于维护
  • 灵活性
  • 可靠性

代码检查工具:

  • Checkstyle:静态语法检查
    • 代码格式检查工具,关注代码格式带来的缺陷、风险
    • 根据设置好的编码规则来检查代码(定制化)
    • 规则可以触发通知、警告和错误
    • 只做检查,不修改代码
  • Findbugs:静态逻辑bug检查
    • 检查类或JAR文件,将字节码与一组缺陷模式进行对比以发现问题
    • 发现的问题大部分是在Runtime过程中,会造成程序异常、错误的
    • 可以练习class所在的package的上下文,对代码进行穿透检查,对隐藏的比较深层次的逻辑错误、资源操作问题等进行报警
  • SourceMonitor:代码质量自动检查
    • 可以为多种编程语言的源代码文件测试代码数量和性能,最终结果可描绘成图、输出打印
    • 度量、记录和现实代码质量指标:代码行数、注释行数、分支比例、注释比例、类定义个数、方法/个数/类、平均语句数/方法、最大复杂度、最大调用深度、平均复杂度、函数格式
    • 提取代码复杂度信息,为代码重构提供指导
    • 提示代码安全隐患
    • 结果查看,支持结果输出到XML格式、HTML格式、IDE插件等

插桩Stub

  1. 通过伪造一个桩模块Stub,模拟被测代码依赖的模块。桩模块的函数名、入参、返回值和实际模块保持一致。入参和返回值根据测试需要自行设置

  2. 被测模块如果不能独立运行,写一个驱动模块,调用被测模块,让被测模块运行起来

常用工具有easy-mock、mockito、wiremock等

单元测试框架

Junit,流行的Java单元测试框架,提供测试用例、测试套件、测试断言、测试用例管理控制等功能