【软件测试】《软件测试理论与实践》杜小智 第1章 软件测试概述
博主:海底淤泥
1.1软件缺陷
1.1.2术语
错误(Error):人们在开发软件过程中发生的错误
缺陷(Defect):错误在程序中的表象
故障(Fault):软件运行过程中出现的一种不希望或不可接受的内部状态
失效(Failure):软件运行时产生的一种不希望或不可接受的外部行为结果
1.1.3软件缺陷产生的原因
1.需求规格说明书问题
2.团队协作问题
3.未考虑复杂应用场景
4.技术方面问题
1.1.4技术缺陷分类
1.规格说明书 2.设计 3.编码
程序缺陷分类:
1.输入缺陷
2.输出缺陷
3.计算缺陷
4.接口缺陷
5.数据缺陷
6.逻辑缺陷
1.2软件质量和质量保证
1.2.1软件质量
软件质量定义:软件产品中能满足规定的和隐含的与需求有关的全部特征和特性
质量五个维度:1.功能性 2.易用性 3.可靠性 4.性能 5.可支持性
1.2.2软件质量模型
1.McCall质量模型
2.ISO/IEC质量模型
1.2.3软件质量保证
软件质量保证定义:软件质量保证是设计用来评价开发或制造产品过程的一组活动,这组活动贯穿软件软件生成的全生命周期
软件质量保证目标:
1.保证软件及其维护符合功能与技术需求
2.保证软件及其维护符合管理需求,即时间和费用都在预算内
3.为实现前两个目标,组织一些活动来改进软件开发效率和维护效率,并进一步优化SQA活动
软件质量保证活动:
1.项目前的质量活动
2.软件生命周期中的质量活动
3.基础设施方面的质量活动
4.管理方面的质量活动
5.软件质量标准
6.SQA自身的考虑
1.3软件测试概念
软件测试:软件开发过程中的所有评审、确认、检验等活动
目的:1.发现软件中的缺陷 2.对软件质量进行量化评估
1.4软件测试模型
1.4.1 V模型
快速应用开发模型(RAD模型)又称 V模型 :
用户需求---------------------------------------------------------------->验收测试
需求分析与系统设计--------------------------------------->系统测试
概要设计------------------------------------>集成测试
详细设计--------------------->单元测试
编码
缺点:理论上还是一个瀑布模型,只是将测试活动过程进行细化。
1.4.2 W模型
W又称为双V模型,它将开发过程细化为一个普通V模型,将测试过程细化为和开发过程并行的V模型
用户需求------------>验收测试准备
需求设计与系统分析------------>系统测试准备
概要设计------------>集成设计准备
详细设计------------>单元测试准备
编码------------>单元测试
集成------------>集成测试
实施------------>系统测试
交付------------>验收测试
W模型在V模型的基础上更近一步,强调测试应伴随整个软件开发周期,测试的对象也不仅仅是程序,还包括需求文档,设计文档以及相关文档数据
1.5 软件测试分类
1.5.1 按阶段分
1.单元测试 2.集成测试 3.系统测试 4.验收测试
1.5.2 按是否运行软件分
1.静态测试 2.动态测试
1.5.3 按设计方法分类
1.黑盒测试 2.百盒测试 3.灰盒测试
1.5.4 按测试执行者分类
1. 人工测试 2.自动化测试
1.5.5 按需求分类
1.功能性测试 2.非功能性测试
1.5.6 按测试对象分类
1.桌面程序测试 2.嵌入式软件测试 3.Web程序测试 4.移动APP测试
1.6 软件测试用例
软件测试:针对被测对象,确定一组测试用例,测试用例在整个测试活动中处于核心位置
1.6.1 软件测试的经济性
1.穷尽性黑盒测试不现实
2. 穷尽性白盒测试不现实
1.6.2 软件测试用例组成
两部分组成:
1.输入:包括某种测试方法或技术所给出的实际输入和执行测试用例的前提(环境)
2.预期输出:期望的输出和后果
1.7软件测试原则
1.尽早且持续测试
2.全面测试
3.测试用例应该包括输入和预期输出两部分
4.程序员以及开发团队应该避免测试自己的程序
5.Pareto原则:集群现象,如果发现某个模块发现许多缺陷,应该对该模块进行严格测试
6.既要测试程序是否完成了该做的,还要确定程序是否做了不该做的
7. 穷尽性测试不现实
8. 全面检查每个测试结果
9.妥善保存测试资产
10.测试是一项富有挑战性的工作
习题
1.请区分错误、缺陷、故障和失效
错误:人在开发软件过程中发生的过错
缺陷:错误在程序的表现
故障:软件运行过程中出现的一种不希望或不可接受的内部状态
2.什么是软件质量?
软件质量:软件产品中能满足规定的和隐含的与需求有关的全部特征和特性
3.什么是软件质量保证?
软件质量保证:评价开发或制造产品过程的一组活动,贯穿软件生成的全生命周期
4.软件测试的定义和目的是什么?
定义:软件开发过程中的所有评审、确认、检验等活动都是软件测试
目的:发现软件的缺陷,对软件的质量进行量化评估
5.软件测试V模型的特点是什么?
特点:一定程度上保证了软件的质量,但是通过V测试发现的缺陷,修复成本往往很高
6.请对比分析V模型和W模型
v模型:仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段
w模型:测试的活动与软件开发同步进行,测试的对象不仅仅是程序,还包括需求和设计,尽早发现软件缺陷可降低软件开发的成本。
7.软件测试按阶段可分为哪些类型?
1.单元测试 2.集成测试 3.系统测试 4.验收测试
8.软件测试按对象可分为哪些类型?
1.桌面程序测试 2.嵌入式软件测试 3.Web程序测试 4.移动App测试
9软件测试按设计方法可分为哪些类型?
1.黑盒测试 2.白盒测试 3.灰盒测试
10.为什么不能进行穷尽性测试?
穷尽性黑盒测试无法对输入进行穷举
穷尽性白盒测试循环次数过多,在有限时间内无法将所有路径覆盖
11.测试用例应该包含哪些信息?
输入和预期输出
12.有哪些主要的测试原则?
1.尽早且持续测试
2.全面测试
3.测试用例应该包括输入和预期输出两部分
4.程序员以及开发团队应该避免测试自己的程序
5.Pareto原则:集群现象,如果发现某个模块发现许多缺陷,应该对该模块进行严格测试
6.既要测试程序是否完成了该做的,还要确定程序是否做了不该做的
7. 穷尽性测试不现实
8. 全面检查每个测试结果
9.妥善保存测试资产
10.测试是一项富有挑战性的工作
博主:海底淤泥