《软件测试的艺术》读书笔记

最近阅读了《软件测试的艺术》一书,随便就记录下了读书笔记。《软件测试的艺术》一书是阳光看的第二本关于软件测试方面的书籍了。

该书虽然很薄但是书中所将的内容却很全面。第一章以一个小测试作为引子,第二章阐述全书的核心思想,后面各章就讨论了详细的方式方法。所谓详细也是相对而言,能打下进一步学习的基础就足够了。实例很少,偏向于原则、理论、概念

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

  • 由于时间和成本的约束,软件测试的最关键问题是:在所有可能的测试用例中,哪个子集最有可能发现最多的错误?
  • 黑盒测试:等价类划分、边界值分析、因果图分析、错误猜测
  • 白盒测试:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖

单元测试

模块测试(或单元测试)是对程序中的单个子程序、子程序或过程进行测试的过程,也就是说,一开始并不是对整个程序进行测试,而是首先将注意力集中在对构成程序的较小模块的测试上面。这样做的动机有三个。

  • 首先,由于模块测试的注意力一开始集中在程序的较小单元上,因此它是一种管理组合的测试元素的手段。
  • 其次,模块测试减轻了调试(准确定位并纠正某个已知错误的过程)的难度,这是因为一旦某个错误被发现出来,我们就知道它在哪个具体的模块中。
  • 模块测试通过为我们提供同时测试多个模块的可能,将并行工程引入软件测试中。
  • 模块测试的目的是将模块的功能与定义模块的功能规格说明或接口规格说明进行比较。这里的测试目标不是为了说明模块符合其规格说明,而是为了揭示出模块与其规格说明存在着矛盾。

《《软件测试的艺术》读书笔记》有0个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注