作者:乔父系_377 | 来源:互联网 | 2023-08-11 19:51
【前言】
本系列文章仅供学习,请勿转载。如有侵权请联系删除。
介绍几个典型的软件缺陷案例,缺陷有关的术语:错误、缺陷、故障和失效;软件缺陷产生的原因;软件工程实践来减少软中的缺陷;软件缺陷分类
1 基本概念
术语 | 说明 |
---|
缺陷(bug) | 软件未达到产品说明书表明的功能、出现了说明书不会出现的错误、功能超出说明书范围、未达到说明书未指出但应达到的功能、用户认为不好(不易使用,运行缓慢,难以理解)。注意:缺陷导致软件故障 |
故障 | 软件运行过程中出现的不希望/不可接受的内部状态,丧失了在规定限度内执行所需功能的能力,故障是动态 的且可能导致失效,故障是软件缺陷的内在表现 。 |
失效 | 在运行过程 中出现的不希望的外部行为结果。失效是是软件缺陷的外在表现 。 |
错误 | 发生错误的原因:客户未完全描述意图,没有充分理解需求,编码错误。错误是人为过程,对软件来说是外部行为 |
测试&测试用例&测试过程 | 测试用例是一组输入,测试过程包括测试计划、测试用例开发、运行测试用例和评估测试结果,测试以处理以上的各种软件缺陷。重点是怎么设计测试用例 |
软件缺陷产生的原因
最大原因:产品说明书,即需求
。其次:设计
测试目的是使1区域尽可能的大
软件缺陷的分类:
- 输入/输出缺陷:接受错误的输入、不接受正确的输入、参数有错或遗漏;输出格式有错,结果有错
- 数据缺陷:错误的初始化、存储/访问、标志/索引、数据引用、类型、数据范围、变量
- 计算缺陷:错误的算法、遗漏计算、不正确的操作数、精度错误
- 接口缺陷:不正确的中断处理、不兼容的类型、参数不匹配,调用错误的过程
- 逻辑缺陷:重复、遗漏、循环迭代
2 测试的分类
测试时不适用穷尽性测试,不现实而且依然会存在错误。
类别 | 说明 | 方法 | 优缺点 |
---|
功能性测试 | 黑盒,依据规格说明书 ,程序看作函数:f程序P(输入)=功能结果。 | 边界值、健壮性、最坏情况、特殊值、输入等价类、输出等价类、基于决策表的测试 | 优点:1.与实现无关,实现变化测试用例依然可用。2.确定功能后,测试用例开发与实现并行,减少时间。缺点:1.测试用例之间冗余。2.存在未测试的漏洞。 |
结构性测试 | 白盒,根据程序实现 来设计测试用例,对逻辑路径进行测试,检查程序的状态与预期是否一致。 | 路径测试(DD-路径、基路径测试)、数据流测试(定义-使用、基于程序片) | 优点:1.对特定程序部分测试,检查每条分支路径。2.揭示隐藏在代码中的错误,较彻底和充分。 缺点:1.工作量大,成本高,通常只用于单元测试。2.无法检测遗漏路径和数据敏感性错误。3.不能验证规格说明书的正确性。4.无法对规格说明中未实现的部分测试 |
功能性测试和结构性测试的比较:
- 功能性测试使用
规格说明
来设计测试用例,结构性测试使用程序源代码(程序实现)
来设计测试用例。如果只有结构性测试,那么无法认识到规格说明书描述的功能是否被实现;如果只有功能性测试,那么无法认识到程序中实现的在规格说明书中没有被描述的功能行为。因此,明智的组合
会带来功能性测试的置信,以及结构性测试的度量。
【注】更大的测试用例集就一定越好吗?
错误。测试集T1覆盖了程序的70%,而测试集T2只覆盖了程序的40%,但是T2涉及到的是用户最经常使用的,而T1覆盖的用户很少使用或几乎不用。
软件测试的4个阶段:
- 单元测试:模块测试,最小单位的测试
- 集成测试:综合测试,揭示接口规约中不够完整或错误的地方
- 系统测试:发现软件与需求不一致的地方
- 验收测试:受客户控制,客户设计测试用例,生产中实际数据进行的测试
软件测试的模型:
- V模型:
- W模型:
- X模型:
- H模型: