第2章 软件测试的心理学和经济学

软件测试的心理学

  1. 对软件测试一些错误的认识

    • "软件测试就是证明软件不存在错误的过程。"
    • "软件测试的目的在于证明软件能够正确完成其预定的功能。"
    • "软件测试就是建立一个‘软件做了其应该做的'信心的过程。"
  2. 对待测试的正确心理

    通过测试来增加程序的价值,是指测试提高了程序的可靠性或质量。提高了程序的可靠性,是指找出并最终修改了程序的错误。因此,不要只是为了证明程序能够正确运行而去测试程序;相反,应该一开始就假设程序中隐藏着错误,然后测试程序,发现尽可能多的错误。

  3. 测试的合理定义

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

软件测试的经济学

应当明确一点,软件测试无法发现程序中的所有错误

两种基本的测试策略

1.黑盒测试

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

  • 测试数据完全来源于软件规范,如需求文档、开发文档等。

  • 黑盒测试又可以认为是穷举输入测试。从经济学的角度来看,测试投入的目标在于通过有限的测试用例,最大限度地提高发现的问题的数量,以取得最好的测试效果

2.白盒测试

  • 白盒测试又称逻辑驱动的测试,允许我们检查程序的内部结构。这种测试策略对程序的逻辑结构进行检查,从中获取测试数据,往往忽略了软件规范。

  • 白盒测试又可以认为是穷举路径测试。同黑盒测试穷举输入一样,都无法做法做到真正的完全测试

软件测试的原则

  • 测试用例中一个必需部分是对预期输出或结果的定义。即一个测试用例必须包括两个部分:

    • 对程序的输入数据的描述。

    • 对程序在上述输入数据下的正确输出结果的精确描述。

  • 程序员应当避免测试自己编写的程序。

  • 编写软件的组织不应当测试自己编写的软件。

  • 应当彻底检查每个测试的执行结果。

  • 测试用例的编写不仅应当根据有效和预期的输入情况,而且也应当根据无效和未预料到的输入情况。

  • 检查程序是否"未做其应该做的"仅是测试的一半,测试的另一半是检查程序是否"做了其不应该做的"。

  • 应避免测试用例用后即弃,除非软件本身就是一个一次性的软件。应当留存测试用例,用于回归测试。

  • 计划测试工作时不应默许假定不会发现错误。

  • 程序某部分存在更多错误的可能性,与该部分己发现错误的数量成正比。

posted @ 2020-12-29 09:48  大脸猫要开心鸭  阅读(221)  评论(0编辑  收藏  举报