笔记 | 1 软件测试的心理学

错误的思想
  • “软件测试就是证明软件不存在错误的过程。”
  • “软件测试的目的在于证明软件能够正确地完成其预定的功能。”
  • “软件测试就是建立一个‘软件做了其应该做的’信心的过程。”
    这些定义都是本末倒置的。
正确的思想

测试用例时,应当想到要为程序增加一些价值。不要只是为了证明程序能够正确运行而去测试程序;相反,应该一开始就假设程序中隐藏着错误(这种假设对于几乎所有的程序都成立),然后测试程序,发现尽可能多的错误。

合适的定义

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

心理原因:

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

什么是成功的测试
  1. 大多数的项目经理将没发现错误的测试用例称为一次“成功的”测试,而将发现了某个新错误的测试称为“不成功的测试”。这又是一次本末倒置。
  2. 我们认为,如果在测试某段程序时发现了错误,而且这些错误是可以修复的,就将这次合理设计并得到有效执行的测试称做是“成功的”。如果本次测试可以最终确定再无其他可查出的错误,同样也被称做是“成功的”。
  3. 所谓“不成功的”测试,仅指未能适当地对程序进行检查,在大多数情况下,未能找出错误的测试被认为是“不成功的”,这是因为认为软件中不包含错误的观点基本上是不切实际的。
  4. 能发现新错误的测试用例不太可能被认为是“不成功的”,也就是说,能发现错误就证明它是值得设计的。
软件测试的原则

软件测试的原则

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

附上整理的图
软件测试心理学
PS:整理自《软件测试的艺术》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值