软构学习-2-软件测试与测试优先的编程

发布时间 2023-05-20 11:45:53作者: No3eTB

2 软件测试与测试优先的编程

大纲

  • 测试用例(Test Case)
  • 测试优先编程(TDD)
  • 单元测试
  • 使用Junit进行自动化单元测试
  • 黑盒测试
    • 等价类划分
    • 边界值分析
  • 覆盖度

Testing levels

  • 单元测试(Unit testing)
  • 集成测试(Integration testing)
  • 系统测试(System testing)

两种测试的分类:

  • 静态测试(Static)
    在程序非运行的情况下。
    静态测试更多的是检查源代码的结构语法以及数据流等等。
  • 动态测试(Dynamic)
    在程序运行时

测试用例

测试用例:输入+执行条件+期望结果

测试优先编程

  • 单元测试:
    对软件的最小单元模型开展测试,隔离各个模块,容易定位错误和调试

黑盒测试

黑盒测试:用于检查代码的功能,不关心内部实现细节

  • 等价类划分:
    将被测函数的输入域划分为等价类从等价类中导出测试用例
    基于的假设是:相似的输入会展示相似的行为。

  • 边界值分析:
    理由:大量错误发生在输入域的“边界”而非中央。

覆盖分析的两个极端

  • 全覆盖(笛卡尔积)
  • 覆盖每个取值(至少一次)
    每个维度的每个取值至少被测试用例覆盖一次即可。

代码覆盖度

测试效果:路径覆盖>分支覆盖>语句覆盖
测试难度:路径覆盖>分支覆盖>语句覆盖