第4章 软件测试分类与分级
4.1软件测试分类
4.1.1 从不同角度进行分类:
(1)根据是否关心内部结构分为:
a.白盒测试:又称为结构测试或者逻辑驱动,只关心内部结构。
b.黑盒测试:功能性测试,不关心程序的内部结构,关系其功能性。
c.灰盒测试:介于白盒和黑盒测试之间的,既要关心内部结构又要关心功能。
(2)根据开发过程级别分为:
a.单元测试:对应于白盒测试,是软件开发过程中要进行的最低级别的测试,由程序员自己负责。
b.集成测试:对应于灰盒测试,好多单元测试集合而成。
c.系统测试:对应黑盒测试,不关心内部结构。
d.验收测试:分为组内测试和用户测试。
(3)根据是否执行程序分为:
a.静态测试:在不运行程序的情况下进行分析,检查程序的正确性。
b.动态测试:通过运行被测程序,检查运行结果。
(4)根据执行是否需要人工干预分为:
a.手工测试
b.自动化测试
(5)根据测试实施组织分为:
a.开发测试
b.用户测试
c.第三方测试
4.1.2 功能测试:
4.1.3 非功能测试:
4.2软件测试分级
4.2.1 软件生命周期的测试分级
(1)组件测试
(2)集成测试
a.自顶向下组装测试
b.自底向上组装测试
(3)配置项测试
(4)系统测试
(5)验收测试
(6)维护测试
4.2.2 软件测试中的错误分级
(1)目的:
科学地指导软件测试工作,提高软件测试的目的性,确保软件测试的质量。
(2)错误分类:
a.按软件生命周期分类有用户需求错误、产品需求错误、设计错误、编码错误、数据错误、发行错误;
b.按软件使用分类有功能错误、性能错误、界面错误、流程错误、数据错误、提示错误、常识错误以及其他错误;
c.按GB/T 15532-2008分类有程序问题、文档问题、设计问题及其它问题。
(3)错误级别划分(按GB/T 15532-2008划分):
第1级错误:
妨碍由基线要求所规定的运行或任务的主要功能的完成
妨碍操作员完成运行或任务的主要功能
危及人员安全
第2级错误:
给由基线要求所规定的运行或任务的主要功能的完成造成不利的影响,以致降低效能,且没有变通的解决办法
给操作员完成由基线要求所规定的运行或任务的主要功能造成不利的影响,以致降低效能,且没有变通的解决办法
第3级错误:
给由基线要求所规定的运行或任务的主要功能的完成造成不利的影响,以致降低效能,但已知有变通的解决办法
给操作员完成由基线要求所规定的运行或任务的主要功能造成不利的影响,以致降低效能,但已知有变通的解决办法
第4级错误
这种软件问题给操作员带来不方便或麻烦,但不影响所要求的运行或任务的主要功能
第5级错误:所有的其他错误
第5章 软件缺陷管理
5.1 软件缺陷
5.1.1 软件缺陷的定义
软件错误或软件缺陷是软件产品的固有成分,是软件“生来具有”的特征。软件缺陷包括检测缺陷和系统残留缺陷。
检测缺陷及是指软件在用户使用之前被检测出的缺陷;残留缺陷是指软件发布后存在的缺陷,包括用户安装前未被检测出的缺陷以及检测出但未被修复的缺陷。
一般符合下列5个规则之一,就是软件缺陷
Ø 软件未实现产品说明书要求的功能
Ø 软件出现了产品说明书指明不应该出现的错误
Ø 软件实现了产品说明书未提到的功能
Ø 软件未实现产品说明书虽未明确提及但应该实现的目标
Ø 软件难以理解、不易使用、运行缓慢或者——从测试员的角度看——最终用户会认为不好
5.1.2 软件缺陷描述
对软件缺陷进行有效描述涉及如下内容:
(1) 可追踪信息——缺陷ID
(唯一的缺陷ID,可以根据该ID追踪缺陷)
(2) 缺陷基本信息
编号 |
| 编号 |
|
1 | 缺陷标题 | 8 | 缺陷的类型 |
2 | 标识 | 9 | 严重性 |
3 | 报告人 | 10 | 优先级 |
4 | 报告日期 | 11 | 关键词 |
5 | 程序的名称 | 12 | 缺陷描述 |
6 | 版本号 | 13 | 重现步骤 |
7 | 配置 | 14 | 结果对比 |
(3)缺陷的详细描述
描述应尽可能详细
(4)测试环境说明
对测试环境的描述
(5)必要的附件
对于某些文字很难表达清楚的缺陷,使用图片等附件是必要的
(6)从统计的角度出发
还可以添加上“缺陷引入阶段”、“缺陷修正工作量”等项目
5.1.3 软件缺陷分类
(1)软件缺陷的分类--缺陷的类型
– 10 F-Function (功能)
– 20 A-Assignment (赋值)
– 30 I-Interface and Timing/Serialization(接口/时序)
– 40 C-Checking(检查)
– 50 B-Build/package/merge(联编打包)
– 60 D-Documentation(文档)
– 70 G-Algorithm(语法)
– 80 U-User Interface(用户接口)
– 90 P-Performance(性能)
– 10 100N-Norms(标准)
(2)缺陷的分类--严重程度
– 软件测试错误的严重程度
(3)缺陷的分类—解决优先级
(4)缺陷来源
(5)缺陷的分类--缺陷根源
– 测试策略
– 过程、工具和方法
– 团队/人
– 缺乏组织和通信
– 硬件、软件、工作环境等
(7)缺陷的分类--生命周期
5.1.4 软件缺陷管理
(1)缺陷的流程:
发现缺陷——测试人员提交——分配——开发人员修正——测试人员——closed或reject——评审委员会
(3) 缺陷管理流程中的各种角色
5.2 软件缺陷报告
5.2.1缺陷报告的主要内容
5.2.2 缺陷报告的5C准则
5.2.3缺陷报告的撰写标准
第6章 软件测试过程及测试过程管理
6.1 软件测试过程
6.1.1 软件测试过程模型
由此可见,测试活动与开发活动是息息相关的。
(1) V模型
它的特点:
• 定义:基本的开发过程和测试行为
• 标明:测试过程中存在不同类型、不同级别的测试
• 描述:不同测试阶段和开发过程期间各阶段的对应关系
(2) W模型
它的特点:
• 增加了软件各开发阶段中应同步进行的 验证 (verification)和 确认(validation) 活动。
• 基于“尽早地和不断地进行软件测试”的原则。
(3) H模型
它的特点:
• 软件测试是一个独立的流程
• 贯穿产品的整个生命周期,与其他流程并发的进行
• 软件测试要尽早准备、尽早执行
• 软件测试分层次进行的,不同层次的测试按照某个次序先后进行,也可以重复进行
6.1.2 软件测试过程中的活动及内容
6.2 软件测试过程管理
6.2.1 软件测试管理的流程
6.2.2 软件测试管理的主要内容
6.2.3 软件测试管理的理念
(1)尽早测试
含义:1、测试人员早期参与软件项目,及时开展测试的准备工作
2、尽早开始测试执行
意义:1、降低成本
2、规避风险
(2)全面测试
含义:1、测试内容包括需求、设计文档、代码、用户文档等
2、软件开发及测试人员(有时包括用户)全面地参与到测试工作中
意义:全方位把握软件质量,尽可能排除影响软件质量的因素,满足需求。
(3)全过程测试
含义:1、测试人员关注开发过程,对各种变化作出响应。
2、 测试人员要对测试的全过程进行全程的跟踪,及时调整测试策略
意义:及时应对项目变化,降低测试风险。
(4)独立的迭代测试
含义:1、着重强调测试的就绪点
2、测试过程是独立的
3、迭代的测试
意义:只要测试条件成熟,测试准备活动完成,测试的执行活动就可以开展。
6.2.4 软件测试计划
(1)阶段划分
(2)要点
第7章 软件静态测试
7.1 静态测试的概念及特点
(1)概念:
(3)特点:
7.2 各阶段评审
7.2.1 同行评审
(1)定义:
同行评审是由开发软件产品作者以外的其他人检查工作产品,以发现缺陷并寻找改进的机会。
(2)分类:
同行评审一般包括审查、小组评审、走查、桌面评审、临时评审五种类型。
(3)区别:
7.3 代码检查
7.4 软件复杂性分析
7.5 软件质量模型
(1) 软件质量:
定义:反映软件产品满足规定需求和潜在需求能力的特征和特性的总和;所有描述计算机优秀程度的特性的组合;与软件产品满足需求所规定的隐含的能力有关的特征和特性的全体。
特性:功能性,可靠性,可用性,效率,维护性,可移植性。
(2)软件质量的分层模型:
第8章 动态测试
8.1 “白盒”测试
8.1.1 白盒测试的介绍
(1)定义:“白盒”测试又称为结构测试或逻辑驱动测试是一种按照程序内部逻辑结构和编码结构设计测试数据并完成测试的一种测试方法。
1. 将软件看做是透明的盒子
2. 查看代码功能+实现方式
3. 确定测试内容和测试方法
(2)特点:可以构成测试数据使特定程序部分得到测试
有一定的充分性度量手段
可获得较多工具支持
通常只用于单元测试
8.2 调试与“白盒”测试的区别
调试:开发人员在开发软件过程中发现问题,并且解决问题。
白盒测试:测试人员根据一定计划,发现问题,从而提交给开发人员。
8.1.3逻辑覆盖
a.语句覆盖:语句覆盖是最起码的测试要求,使得每一条语句至少被执行一次
b.判定覆盖:要求设计足够的测试用例,使得程序中的每一个分支至少通过一次
c.条件覆盖:不仅每一个语句至少执行一次,使得判定中的每个条件获得各种可能的结果。
d.判定/条件覆盖:至少能够获取一次,同时每个判断的所有可能的判定结果至少执行一次。
e.条件组合:满足条件组合覆盖标准的测试用例,也一定满足判定覆盖、条件覆盖和判定/条件覆盖标准。
f.路径覆盖:要求设计足够多的测试用例,使得程序中所有的路径都至少执行一次 。
8.1.4 路径测试
8.3“黑盒”测试
8.3.1 “黑盒”测试的介绍
(1)定义:
黑盒测试又称功能测试或数据驱动测试。
—把测试对象当作看不见内部的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性。
—站在使用软件或程序的角度,从输入数据与输出数据的对应关系进行的测试。
—在软件的接口处进行测试。
—通过导出执行程序所有功能需求的输入条件集,实现功能覆盖,需求覆盖。
8.3.2 等价类划分
(1)定义:
等价类就是把所有可能的输入数据,即程序的输入域划分成若干部分,从每一部分中选取少数有代表性的数据做为测试用例,代表性数据等同于该类中的其他值。
8.3.3 边界值分析
(1)边界的含义:
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法,稍高于其边界值及稍低于其边界值的一些特定情况。
(2)分析方法:
选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据的方法。
8.3.4 因果图
(1) 定义:
因果图就是一种利用图解法分析输入的各种组合情况,从而设计测试用例的
方法,该方法充分考虑了输入情况的各种组合及输入条件之间的相互制约关系。
(2) 基本步骤:
(3) 因果图标识:
(4) 因果图约束:
8.5 “灰盒”测试
(1)定义:
灰盒测试是一种综合测试方法,他将黑盒测试、白盒测试、回归测试和变异测试结合在一起,构成一种无缝测试技术。
(3)基本思想:
8.6 测试用例
(1) 主要元素:
(2)编写要素:
(3)设计步骤:
(4)设计误区:
8.7 单元测试
(1)主要内容:
(2) 测试步骤:
8.8 集成测试
(1) 主要内容:
(2)测试步骤:
8.9 验收测试
(1)定义:
(2) 主要流程:
8.10 系统测试
(1)定义:
(2)一般流程: