《软件测试的艺术》笔记二

软件测试的心理学和经济学

测试是为发现错误而执行程序的过程

软件测试更适宜被视为试图发现程序中错误(假设其存在)的破坏性的过程。一个成功的测试用例,通过诱发程序发生错误,可以在这个方向上促进软件质量的改进。当然,最终还是要通过软件测试来建立某种程度的信心:软件做了其应该做的,未做其不应该做的。但是通过对错误的不断硏究是实现这个目的的最佳途径。

策略

黑盒测试

又称为数据驱动的测试或输入/输出驱动的测试。使用这种测试方法时,将程序视为一个黑盒子。测试目标与程序的内部机制和结构完全无关,而是将重点集中放在发现程序不按其规范正确运行的环境条件。在这种方法中,测试数据完全来源于软件规范(换句话说,不需要去了解程序的内部结构)

由于穷举测试是不可能的,测试投入的目标在于通过有限的测试用例,最大限度地提高发现的问题的数量,以取得最好的测试效果。除了其他因素之外,要实现这个目标,还需要能够窥见软件的内部,对程序作些合理但非无懈可击的假设(例如,如果三角形程序将2,2,2视为等边三角形,那就有理由认为程序对3,3,3也作同样判断)。

 

白盒测试

又称逻辑驱动的测试,允许我们检査程序的内部结构。这种测试策略对程序的逻辑结构进行检査,从中获取测试数据(遗憾的是常常忽略了程序的规范)

穷举输入测试要强于穷举路径测试,但两者都不是有效的方法。

 

软件测试的原则

  1. 测试用例当中一个必需部分是对预期输出或结果进行定义
    1. 对程序的输入数据的描述
    2. 对程序在上述输入数据下的正确输出结果的精确描述
  2. 程序员应当避免测试自己编写的程序
  3. 编写软件的组织不应该测试自己编写的软件
  4. 应当彻底检查每个测试的执行结果
  5. 测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况
  6. 检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”
  7. 应避免测试用例用后即弃,除非软件本身就是一个一次性的软件
  8. 计划测试工作时不应默许假定不会发现错误
  9. 程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比
  10. 软件测试是一项极富创造性、极具智力挑战性的工作

小结

  • 软件测试是为发现错误而执行程序的过程
  • 尽量避免编码人员测试自己的程序
  • 好的测试用例能够对未发现的错误高度敏感
  • 成功的测试用例能够发现未知的错误
  • 成功的测试需要仔细定义输入输出的期望值
  • 成功的测试需要仔细研究分析测试结果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值