• 软件测试的艺术-CH2


    by GlenFord J. Myers(U.S.A)

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

    软件测试心理学

    人类的行为总是倾向于具有高度目标性,建议一个正确的目标有重要的心理学影响,如果我们的目标在于证明程序中的错误,那我们设计的测试数据就会发现更多的问题,

    反之,则相反。

    如果在测试阶段发现了错误并且成功得到修复,那么测试是成功的

    如果本次测试可以确定再无其它可以查出的错误,那么本次测试仍然是成功的

    总结,软件测试更适宜被视为试图发现程序中错误的破坏性过程。一个成功的测试用例,通过诱发程序发生错误,从而在这个方向上可以促进软件质量的改进。

    最终我们通过软件测试来建立某种程度的信心:软件做了该做的,未做其不该做的,通过对错误的不断研究是实现这个目的的最佳途径。

    软件测试经济学

    软件测试是否能够发现“所有”的错误?一般来说这是不切实际的。这个基本的问题反过来暗示出软件测试的经济学问题,即测试人员对被测软件的期望,以及测试用例的

    设计方式。

    为了应对经济学上的挑战,应该在测试之前建立某些策略

    黑盒测试

    又成为数据驱动的测试或者输入/输出驱动的测试。程序视为一个黑盒子,重点集中在发现程序不按其规范正确运行的环境条件。

    这种方法如果想要发现所有的错误,就要穷举输入测试数据,这当然是不可能完成的任务。

    故这种方法目标在于如何通过有限的测试用例集,最大限度的提高发现问题的数量,以取得最好的测试效果,当然要实现这个目标,还需要能够窥见软件的内部,对程序

    做一些合理的假设,如 2,2,2是一个等边三角形,那么有理由相信 3,3,3也会被程序认定为等边三角形。

    白盒测试

    又称逻辑驱动的测试,允许我们检查程序的内部结构。

    软件测试的重要原则

    1. 测试用例中的一个必需部分是对预期输出或结果的定义

    一个测试用例必需包含两个部分

       1.对程序输入数据的描述

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

    2. 程序员应当避免测试自己编写的程序

      处于心理学层面,应当避免让程序员直接测试自己编写的程序,让其它人来测试程序会更加有效,也更容易测试成功

    3. 应当测查每个测试的执行结果

      常常被忽视检查执行结果,导致遗漏场景

    4. 不仅要输入有效的数据场景,也要输入无效和未预料的输入情况

    5. 程序某部分存在更多错误的可能性,与该部分已经发现的错误数量成正比

       错误总是倾向于聚集存在,最好对容易存在错误的部分进行额外的测试,以获取更大的成效。

    小结

    1. 软件测试是为发现错误而执行程序的过程

    2. 尽量避免编码人员测试自己编写的程序

    3. 好的测试用例对未发现的错误高度敏感

    4. 成功的测试用例能够发现未知的错误

    5. 成功的测试用例要仔细定义输入输出的期望值

    6. 成功的测试需要仔细分析测试结果

  • 相关阅读:
    Django模板
    创建我的第一个django项目
    python django环境配置与安装
    python第九期学习笔记(装饰器进阶)
    python第九期学习笔记(十二)(线程)
    python第九期学习笔记(装饰器)
    python第九期学习笔记(闭包)
    python第九期学习笔记(十二)(面向对象)
    python第九期学习笔记(十一)(面向对象)
    python第九期学习笔记(十)(模块)
  • 原文地址:https://www.cnblogs.com/muyiblog/p/6916682.html
Copyright © 2020-2023  润新知