《开发者测试》第一章

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 开发者测试工具



介绍工具

原文地址:https://www.cnblogs.com/wasi-991017/p/11609508.html

时间: 2024-08-30 01:16:44

《开发者测试》第一章的相关文章

NET_.NET深入体验与实战精要”第一章

1.MICROSFT.NER是微软Web Service为核心.维信息.人.系统.各种设备提供无缝链接的一组软件产品.技术或服务. 2..NET可分为几个主要组成部分 1.首先是整个开发框架的基础和核心,即公共语言运行库及它所提供的一组基础类库. 2.再开发技术方面,.NET提供了全新的数据库访问技术ADD.NET,以及网络应用开发技术ASP.NET和windows编程技术Winform. 3.在开发语言方面.NET提供了VB+\VC++\C#\JScript等多种语言支持:而Visual St

NET_.NET深入体验与实战精要 第一章知识要点

C#:专门为.NET应用开发的语言. 分号作为结尾.单行注释:"//",多行注释:"/*xxxxxx*/". 常量:值在使用过程中不会变化的变量.(const int a) bool表达式中等号用"==". 每条分支语句必须有"break","case"后面的值必须为常数.

KVM虚拟化实战精讲[第一章 基础环境]

NET_.NET深入体验与实战精要

《NET .NET深入体验和实战精要》第一章

.NET的几个特性 1.一次编译.到处运行. 2.编译语言不再是面试的瓶颈. 3.自动内存管理,让我们放心编程. 4.基类库--.NET开发的宝藏. 命名空间 命名空间是一种特殊的分类机制,他将与一个特定功能集有关的所有类型都分到一起,是.避免类名冲突的一种方式 流线控程 1.条件语句 2.循环语句 有for循环,while循环,do...while循环,foreach循环. 3.跳转语句 有goto语句,break语句,continue语句,return语句. 字符串的常见操作 面向对象 1.

NET .NET深入体验和实战精要

在学习.NET之前要充分理解基础,在这里将基础的知识点一一列举. 万丈高楼平地起 1.命名空间 命名空间是一种特殊的分类机制,他将与一个特定功能集有关的所有类型都分到一起,是.避免类名冲突的一种方式 2.变量及其作用域 3.语句 语句可以分为条件语句,循环语句,跳转语句. (1)条件语句有if语句,switch语句. (2)循环语句有for循环,while循环,do...while循环,foreach循环. (3)跳转语句有goto语句,break语句,continue语句,return语句.

KVM虚拟化实战精讲[第二章 安装KVM]

Redis实战阅读笔记——第一章

Redis 实战 中文版 的20-21页看的人郁闷死了,最后看英文版才明白意思,哎,我理解能力差成这样了 其中,图 1-12 有错误,草,这个是英文版的错--应该是group:programming

Windows Forms编程实战学习:第一章 初识Windows Forms

初识Windows Forms 1,用C#编程 using System.Windows.Forms; ? [assembly: System.Reflection.AssemblyVersion("1.0")] ? namespace MyNamespace { public class MyForm : Form { public MyForm() { this.Text = "Hello Form"; } [System.STAThread] public s

机器学习实战-学习笔记-第一章

Added C:\Anaconda and C:\Anaconda\Scripts to PATH. C:\Anaconda>pythonPython 2.7.10 |Anaconda 2.3.0 (64-bit)| (default, May 28 2015, 16:44:52) [MSC v.1500 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "