软件构造实验笔记-Lab2

关于测试优先的编程

实际编码前,先编写一个测试策略,然后根据测试样例实现spec定义的函数和功能。

在lab2中,则需要针对graph类编写测试用例。graph的spec在接口中已经定义,根据它们的功能编写测试策略。

此处的测试是针对正确性的测试,输入参数,返回正确的结果,因此根据该测试用例实现具体程序。输入非法值的测试是针对程序健壮性的测试。
测试方法:划分等价类、完全笛卡尔乘积或者完全覆盖

黑盒测试与白盒测试
黑盒测试:对代码行为的测试。只关注函数规约的说明来实现测试用例,不考虑内部实现。
白盒测试:对代码逻辑的测试。考虑函数的内部实现设计不同的测试用例,因为对不同的输入可能会有不同的算法或者处理方法。

原则:尽可能地以测试样例使程序产生bug,而不是规避它们。测试样例也要尽可能少,简单而有效。

等价类划分和边界值分析

Equivalence Partitioning 等价类划分:

  • 针对每个输入数据需要满足的约束条件,划分等价类,导出测试用例
  • 每个等价类代表着对输入约束加以“满足/违反”的“有效/无效”数据集合
  • 基于假设:相似的输入会展示相似的行为
    • 因此,每个等价类选一个做代表即可,可以降低测试用例数量

Boundary Value Analysis 边界值分析

  • 大量错误出现在输入域的边界而不是中央
  • 对等价类划分的补充

覆盖划分的方法

  • Full Cartesian product:笛卡尔积、全覆盖
    • 测试完备、用例数量多、测试代价高
  • Cover each Part:覆盖每个取值,最少1次即可
    • 测试用例少、代价低、测试覆盖度不够高

注意区分黑盒框架与白盒框架,它们
覆盖率
声明覆盖率:是否每一个声明均被测试
分支覆盖率:对每一种if或while等等控制操作,他们的分支是否都被测试过
路径覆盖率:每一种组合分支的路径都被测试过了吗

工具:eclemma

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值