软件测试

臧艳辉

目录

  • 1 走近软件测试
    • 1.1 走近软件测试
    • 1.2 一个软件测试工程师必备的专业技能和素质
    • 1.3 章节测验
  • 2 软件测试技术
    • 2.1 正确认识软件测试
    • 2.2 软件测试遵循的基本原则
    • 2.3 软件测试的分类
    • 2.4 软件测试的过程模型
    • 2.5 章节测验
  • 3 测试中缺陷的识别与描述
    • 3.1 初识软件缺陷
    • 3.2 全面解析软件缺陷
    • 3.3 有效的记录缺陷
    • 3.4 缺陷报告实例
    • 3.5 缺陷报告模板
  • 4 项目测试计划的制定
    • 4.1 一个项目完整的测试流程
    • 4.2 初识测试计划
    • 4.3 测试计划的基本机构和内容
    • 4.4 测试计划模板和案例
  • 5 初识软件测试用例
    • 5.1 什么是测试用例
    • 5.2 项目测试中设计测试用例的作用
    • 5.3 如何设计一个项目的测试用例
    • 5.4 在测试过程中测试用例怎样进行更新和维护
  • 6 使用等价类划分方法设计测试用例
    • 6.1 等价类划分法的基本思想
    • 6.2 进行等价类划分法的原则
    • 6.3 使用等价类划分法设计测试用例实例
  • 7 使用边界值分析法设计测试用例
    • 7.1 边界值分析法的基本思想
    • 7.2 如何确定边界
    • 7.3 测试知识储备
    • 7.4 使用边界值分析法设计测试用例实例
    • 7.5 项目中如何进行健壮性边界值测试
    • 7.6 等价类+边界值
    • 7.7 章节测试
  • 8 使用大纲法设计测试用例
    • 8.1 什么是大纲法
    • 8.2 项目中如何使用大纲法设计测试用例
  • 9 使用场景法设计测试用例
    • 9.1 什么是场景法
    • 9.2 项目中如何使用场景法设计测试用例
  • 10 因果图和决策表结合设计测试用例
    • 10.1 因果图法的介绍
    • 10.2 决策表的介绍
    • 10.3 项目中选用因果图法和决策表设计测试用例需考虑的问题
    • 10.4 使用因果图法和决策表设计测试用例
  • 11 功能测试
    • 11.1 什么是功能测试
    • 11.2 功能测试的主要内容及测试策略
    • 11.3 功能测试的方法汇总
    • 11.4 功能测试的经验及注意事项
  • 12 界面测试
    • 12.1 界面检查的通用原则
    • 12.2 具体的界面检查的举例
    • 12.3 设计界面测试用例
    • 12.4 界面测试标准总结
  • 13 软件的安装卸载测试
    • 13.1 软件的安装卸载测试
    • 13.2 软件的安装测试
    • 13.3 软件的运行测试
    • 13.4 软件的卸载的测试
  • 14 项目中如何使用进行有效的缺陷管理
    • 14.1 进行缺陷管理的目标是什么
    • 14.2 项目中缺陷管理的流程是怎样的
    • 14.3 缺陷的跟踪方法有哪些
  • 15 测试报告该如何撰写
    • 15.1 软件质量评估
    • 15.2 如何撰写测试报告
    • 15.3 如何写项目总结
    • 15.4 如何写个人测试总结
  • 16 集成测试
    • 16.1 初识集成测试
    • 16.2 集成测试方法
  • 17 白盒测试
    • 17.1 初识白盒测试
    • 17.2 白盒测试技术——逻辑驱动测试
    • 17.3 白盒测试技术——循环覆盖测试
    • 17.4 白盒测试技术——基本路径测
  • 18 软件测试技术及岗位需求介绍
    • 18.1 软件测试岗位需求
    • 18.2 软件测试技术介绍
    • 18.3 软件测试比赛内容
    • 18.4 软件测试岗位应聘简历撰写
全面解析软件缺陷
  • 1 电子教材
  • 2 PPT

3.2  全面解析软件缺陷

3.2.1  软件缺陷的属性有哪些

开发人员需要去修复排除软件缺陷,但不是每个软件缺陷都需要开发人员紧急修复呢?这需要定义软件缺陷属性,以提供给开发人员作为参考,按照优先等级、严重程度去修复软件缺陷,不至于遗漏严重的软件缺陷。对于测试人员,利用软件缺陷属性可以跟踪软件缺陷,保证产品的质量。下面列出软件缺陷属性。

软件缺陷属性包括缺陷标识、缺陷类型、缺陷严重程度、缺陷产生可能性、缺陷优先级、缺陷状态、缺陷来源、产生缺陷的原因等内容。

3.2.2  测试中缺陷如何进行编号

缺陷标识是标记一个缺陷的唯一标识,可以用数字序号或数字与字母组合来表示。

3.2.3  项目中常见的缺陷类型

软件缺陷表现的形式有多种,不仅仅体现在功能的失效方面,还体现在其他方面。缺陷类型是根据缺陷的自然属性划分缺陷种类的,如表3-1所示。

3-1 软件缺陷类型列表

                           

 

缺陷类型

 
 

描述

 
 

功能

 
 

影响了各种系统功能、逻辑的缺陷

 
 

用户界面

 
 

影响了用户界面、人机交互特性,包括屏幕格式、用户输入灵活性、结果输出格式等

 
 

文档

 
 

影响发布和维护、包括注释、用户文档、设计文档

 
 

软件包

 
 

由于软件配置库、变更管理或版本控制引起的错误

 
 

性能

 
 

不满足系统可测量的属性值,如执行时间、事务处理速率等

 
 

系统/模块接口

 
 

与其他组件、模块或设备驱动程序、调用参数、控制块或参数类表等不匹配、冲突

 

软件缺陷一旦被发现,无论哪种类型的都要设法找出引起这个缺陷的原因,分析对产品质量的影响,然后确定软件缺陷的严重性和处理这个缺陷的优先级。

3.2.4  项目中如何划分缺陷的严重程度

缺陷严重程度是指因缺陷引起的故障对软件产品的影响程度,所谓“严重性”指的是在测试条件下,一个错误在系统中的绝对影响,如表3-2所示。

3-2软件缺陷严重等级列表

                       

 

缺陷严重等级

 
 

描述

 
 

致命(L1

 
 

整个系统不可用

 

系统性能下降非常明显,如果不及时处理有可能导致整个系统不可用

 

系统有功能不可用,或使用出错,且无临时处理方案;

 
 

严重(L2

 
 

系统中有功能不可用,或使用出错,虽然有临时处理方案,但发生次数频繁

 

系统性能发现变慢,用户操作时能觉察,但业务还能继续操作

 

整个系统或某个应用,中断的服务已经恢复,但若不从根本上消除故障,预计还会再次发生

 

出现字面或画面的错误,会给操作者造成误导,或是对公司形象有负面影响;

 
 

一般(L3

 
 

系统中有功能不可使用,或使用出错,担忧低风险的方法可以规避

 

出现字面或画面的错误,但明显不会给操作者造成误导,也不会对公司形象有负面影响;

 
 

较小(L4

 
 

使操作者不方便或遇到麻烦,但它不影响功能的操作和执行,如个别不影响理解的错别字、文字排列不整齐等一些小问题。

 
 

建议(L5

 
 

例如:界面颜色配比,提示文字说明等建议修改的,不修改也不影响使用的问题。

 

3.2.5  测试中缺陷产生的可能性如何记录

缺陷在产品中发生的可能性,通常可以使用频率来表示,如表3-3所示。

3-3 软件缺陷产生可能性列表

                   

 

缺陷产生可能性

 
 

描述

 
 

总是(Always)

 
 

总是产生这个软件缺陷,其产生的频率是100%

 
 

通常(Often)

 
 

按照测试用例,通常情况下会产生这个软件缺陷,其产生的频率大概是80%-90%

 
 

有时(Occasionally)

 
 

按照测试用例,有时候产生这个软件缺陷,其产生的频率大概是30-50%

 
 

很少(Rarely)

 
 

按照测试用例,很少产生这个软件缺陷,其产生的频率大概是1%-5%

 

3.2.6  测试中如何确定缺陷修复的优先级

缺陷优先级指缺陷必须被修复的紧急程序。“优先级”的衡量抓住了严重性中没有考虑的重要程度因素,如表3-4所示。

3-4 软件缺陷优先级列表

                   

 

缺陷优先级

 
 

描述

 
 

立即解决(P1级)

 
 

缺陷导致系统几乎不能使用或测试不能继续,须立即修复

 
 

高优先级(P2级)

 
 

缺陷严重,影响测试,需要优先考虑

 
 

正常排队(P3级)

 
 

缺陷需要正常排队等待修复

 
 

低优先级(P4级)

 
 

缺陷可以在开发人员有时间的时候进行修复

 

一般来讲,缺陷严重等级和缺陷优先级相关性很强,但是,具有低优先级和高严重性的错误是可能的,反之亦然。例如,产品徽标是重要的,一旦它丢失了,这种缺陷是用户界面的产品缺陷,但是它阻碍产品的形象。那么它是优先级很高的软件缺陷。

3.2.7  软件生命周期中缺陷状态有哪些

缺陷状态指缺陷通过一个跟踪修复过程的进展情况,也就是在软件生命周期中的状态基本定义,如表3-5所示。

3-5 缺陷修复状态列表

                                                           

 

缺陷状态

 
 

处理人

 
 

说明

 
 

新建

 
 

测试

 
 

测试人员已提交,但还未做任何处理

 
 

打开

 
 

测试

 
 

测试人员已提交,经过组长确认问题存在

 
 

待验证

 
 

开发

 
 

开发人员已经在测试环境中修改,但是测试人员还没有进行验证

 
 

待确认

 
 

开发\客户

 
 

需要客户人员参与确认此问题是否需要修改等客户确认问题,并在备注里面说明原因

 
 

重新打开

 
 

测试

 
 

问题验证未通过

 
 

关闭

 
 

测试

 
 

问题验证通过

 
 

紧急版本

 
 

测试\开发\客户

 
 

根据问题级别或者相关人员共同商议决定问题不能遗留,必须马上处理并发布版本

 
 

遗留

 
 

测试\开发\客户

 
 

根据问题级别或者相关人员共同商议决定问题可以遗留

 
 

其他

 
 

测试\开发\客户

 
 

详细原因在备注里面说明

 

3.2.8  测试中缺陷的来源有哪些方面

缺陷来源指缺陷所在的地方,如文档、代码等,如表3-6所示。

3-6 软件缺陷来源列表

                       

 

缺陷来源

 
 

描述

 
 

需求说明书

 
 

需求说明书的错误或不清楚引起的问题

 
 

设计文档

 
 

设计文档描述不准确,和需求说明书不一致的问题

 
 

系统集成接口

 
 

系统各模块参数不匹配、开发组之间缺乏协调引起的缺陷

 
 

数据流(库)

 
 

由于数据字典、数据库中的错误引起的缺陷

 
 

程序代码

 
 

纯粹在编码中的问题所引起的缺陷

 

3.2.9  引起缺陷的根源有哪些

缺陷的根源是指造成上述错误的根本因素,以寻求软件开发流程的改进、管理水平的提高,如表3-7所示。

3-7 软件缺陷根源列表

                               

 

缺陷根源

 
 

描述

 
 

测试策略

 
 

测试的测试范围,误解测试目标、超越测试能力等

 
 

过程、工具和方法

 
 

无效的需求收集过程,过时的风险管理过程,不适用的项目管理方法,没有估算过程,无效的变更控制过程等

 
 

团队/

 
 

项目团队职责交叉,缺乏培训。没有经验的项目团队,缺乏士气等

 
 

缺乏组织和沟通

 
 

缺乏用户参与、职责不明确,管理失败等

 
 

硬件

 
 

硬件配置不正确、缺乏或处理器导致缺陷算术精度丢失,内存溢出等

 
 

软件

 
 

软件设置不正确、缺乏或操作系统错误导致无法释放资源,工具软件的错误,编译器的错误等

 
 

工作环境

 
 

组织机构调整,预算改变,工作环境恶劣,如噪声过大