《软件测试的艺术》第二章 软件测试的心理学和经济学

2.1 软件测试的心理学

测试是为了发现错误而执行程序的过程。 不要只是为了证明程序能够正确运行而去测试程序;相反,应该一开始就假设程序中隐藏着错误,然后测试程序,发现尽可能多的错误。

人类行为总是倾向于具有高度目标性,确立一个正确的目标有着重要的心理学影响。如果我们的目的是证明程序中不存在错误,那就会在潜意识中倾向于实现这个目标;也就是说,我们会倾向于选择可能较少导致程序失效的测试数据。另一方面,如果我们的目标在于证明程序中存在错误,我们设计的测试数据就有可能更多地发现问题。与前一种方法相比,后一种方法会更多地增加程序的价值。

2.2 软件测试的经济学

2.2.1 黑盒测试

黑盒测试又被称为数据驱动的测试或输入/输出驱动的测试。在这种方法中,测试数据完全来源于软件规范。如果想用这种方法来发现程序的所有错误,判定的标准就是“穷举输入测试”,将所有可能的输入条件都作为测试用例。

穷举输入测试是无法实现的。这有两方面含义,一是我们无法测试一个程序以确保它是无错的,二是软件测试中需要考虑的一个基本问题是软件测试中的经济学。也就是说,由于穷举测试是不可能的,测试投入的目标在于通过有限的测试用例,最大限度地提高发现的问题的数量,以取得最好的测试效果。

2.2.2 白盒测试

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

2.3 软件测试的原则

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

2.4 小结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值