《开发者测试》第一章

1.1 开发者与软件测试


1.1.1 测试和调试

  软件开发调试困难的原因:

    ·失效症状和缺陷原因可能相隔很远,高度耦合的程序结构加重了这种情况;

    ·失效症状可能在另一缺陷修复后消失或暂时性消失

    ·失效症状由不太容易跟踪的人为错误引发;

    ·失效症状可能是由不同原因耦合引发的。

  回溯法:

    ·从程序出现不正确结果的地方开始,沿着程序的运行路径向上游寻找错误的源头,直到找出程序错误的实际位置;

    ·例,程序有5000行,测试发现最后结果是错误的,采用回溯法,可以现在第4500行插桩,检查中间结果是否正确。

      ①若正确,则错误很可能发生在第 4500~5000 行之间;

      ②若不正确,则在第4000行插桩,以此类推,直至找到程序错误的具体位置。

1.1.2 开发者测试

1.1.3 PIE模型

  缺陷在不同阶段的不同名称及其含义:

    ·Fault(故障):故障是指静态存在于程序中的缺陷代码,有时也称之为程序缺陷(Defect);(医生想找出疾病的根源,如病毒)(例:遍历数组下标却从1开始)

    ·Error(错误):错误是指程序运行缺陷代码后导致的错误状态;(病人身体因为病毒状态异常,比如血压较高,心跳不规律等)

    ·Failure(失效):失效是指程序错误状态传播到外部被感知的现象。(病人告诉医生自己的各种症状,身体没有健康地工作)

  一个缺陷被检测出来的三个必要条件(PIE模型):

    ·Propagation(传播):错误的中间状态必须传播到外部并被观察到;

    ·Infection(感染):程序必须被感染出一个错误的中间状态;

    ·Execution(运行):测试必须运行到包含缺陷的程序代码。

1.2 开发者测试方法与技术


静态测试和动态测试:依据是否需要运行程序;

黑盒测试和白盒测试:依据是否需要了解软件内部结构。

1.2.1 静态测试与动态测试

  静态测试:

    ·不运行被测程序,而是手工或者借助专用的软件测试工具来检查软件文档或程序是否符合标准、度量程序静态信息、审查软件中的问题和不足,以降低软件缺陷的出现概率。

  动态测试:

    ·运行被测程序,输入测试数据,检查运行结果与预期结果是否相符来检验被测程序的功能是否正确。

    ·测试用例至少包含两个方面:测试输入数据测试预期输出

  要结合动静态技术的结合来测试。

1.2.2 黑盒测试和白盒测试

  黑盒测试:

   ·不需要了解软件内部结构的测试方法;

    ·多为动态测试;

  白盒测试:

    ·需要了解软件内部结构的测试方法;

    ·最常用的白盒测试方法:程序代码的覆盖测试;

    ·既有静态测试(代码评审等)也有动态测试(逻辑覆盖测试);

  灰盒测试:

    ·只有部分程序代码信息的测试方法。

1.2.3 失效重现

  当测试发现软件bug,即发现了软件失效后,开发者需要重现失效以进行失效理解和缺陷修改。(大多有很大的难度)

1.3 开发者测试工具


介绍工具

猜你喜欢

转载自www.cnblogs.com/wasi-991017/p/11609508.html