一、标准化概述
(一)概念
1、标准
- 一定范围内获得最佳秩序,经协商一致并由公认机构批准共同使用和重复使用的一种规范性文档,是标准化活动的核心产物。
2、标准化
- 一定范围内获得最佳秩序,对现实问题和潜在问题制定共同的和重复使用的条款的活动。
(二)标准化作用
- 建立软件测试秩序的工具。
- 促进软件测试技术创新应用。
- 扩大推广测试技术新技术
(三)标准的分类(按制定主体分)
1、国际标准
2、国家标准
3、行业标准
4、地方标准
5、团体标准
6、企业标准
(四)相关的主要标准
1、软件质量标准
2、软件测试文档和技术标准
- 软件测试文档主要是支撑软件质量中各个软件质量特性测试维度的取值和评价,并给出相关测试过程,测试文档和测试技术。
3、软件测试工作量及成本估算标准
- 从控制成本和成本管理的角度给出对测试工作的工作量及价格的一种量化方法。
二、软件质量模型与评价标准
1、软件质量标准的发展
- SJ:电子行业标准
- 等同采用:将国际标准文字等编辑一下,国际标准中的技术没有动,然后直接当做国家标准使用。
软件质量是软件与明确地和隐含地定义的需求相一致的程度。
2、GB/T 25000系列标准组织结构
-
质量管理分部
定义一些公共模块的术语以及相关概念
提供负责管理软件产品质量需求和评价的支持功能的要求和指南。 -
质量模型分部
定义计算机系统和软件产品质量、使用质量和数据的详细的质量模型。
提供质量模型的使用指南。 -
质量测量分部
包括软件产品质量测量参考模型、质量测量的数学的定义及其应用的实用指南。
给出构成后续测量基础的质量测度元素。 -
质量需求分部
有助在质量模型和质量测量的基础上规定质量需求。
在要开发的软件产品的质量需求抽取过程中或用作评价过程的输入。 -
质量评价分部
-
质量扩展分部
3、SQuaRE标准各部分
SQuaRE:含义是软件工程系统和软件质量要求与评价。
4、软件质量模型的发展
第一阶段:ISO/IEC9126:1991《软件工程 产品质量》
6个质量特性
- 功能性
功能性是指软件满足明确和隐含要求功能的能力。 - 可靠性
- 易用性
易用性是指软件能被理解、学习、使用和吸引用户的能力。 - 效率
是指在规定条件下,相对于所用资源的数量,软件产品可提供适当的性能的能力。 - 维护性
维护性是指软件可被修改的能力。 - 可移植性
第二阶段:ISO/IEC9126-1:2001 《软件工程 产品质量 第1部分:软件模型》和3个质量度量标准
外部和内部质量
- 功能性、可靠性、易用性、效率、维护性、可移植
使用质量
- 有效性、生产率、安全性、满意度
第三阶段:ISO/IEC 25000系列标准
系统/软件产品质量
- 功能性、性能效率、兼容性、易用性
- 可靠性、信息安全性、维护性、可移植性
使用质量
- 有效性、效率、满意度、抗风险、周境覆盖
IT服务质量
- 适宜性、可用性、安全性、可靠性
- 有形性、响应性、适应性、可维护性
数据质量
- 准确性、完备性、一致性、确实性、现时性
- 可访问性、依从性、保密性、效率、精度
- 可跟踪性、可理解性、可用性、可移植性、可恢复性
5、使用质量(GB/T 25000.10-2016)(重点)
(1)概念
- 使用质量从用户角度看待软件质量
(2)有效性
- 用户实现确定目标的准确性和完备性。
- 准确性:用出错频率描述=> 达成确定目标时发生偏差的频率。
- 完备性:达成用户期望功能的完整程度。
(3)效率
- 用户实现确定目标的准确性和完备性(有效性)时,相关资源的消耗情况。
(4)满意度
- 产品在指定使用周境中,用户要求满足的程度。
(5)抗风险性
- 产品或系统在现有的经济现状、人的生命、健康、环境等方面存在的潜在风险程度。
(6)周境覆盖
- 指定周境环境中,产品或系统在有效性、效率、满意度以及抗风险性方面是否能被使用的程度。
6、产品质量:系统/软件产品质量(重点)
(1)功能性
A 概念
- 系统/软件在指定条件下使用,提供满足用户明确和隐含的功能的程度。
B 子特性
- 功能完备性:功能集对指定用户或用户目标的覆盖程度。
- 功能正确性:系统/软件提供用户所需精确度的正确结果或相符结果的能力。
- 功能适合性:系统/软件为指定的任务和用户目标提供一组合适的功能的能力。
- 功能性的依从性:系统/软件遵循与功能性相关的标准、约定或法规以及类似规定的能力。
- 保密安全(第1版)
(2)性能效率
A 概念
- 系统/软件在指定使用条件下,使用资源量的有关情况。
B 子特性
- 时间特性:系统/软件在执行其功能时,响应时间、处理时间、吞吐率等是否满足需求。
- 资源利用性:系统/软件在执行其功能时,所使用的的资源数量、资源类型满足需求中规定的程度。
- 容量:系统/软件参数最大限度满足需求的程度。例如数据存储量、并发用户、带宽、吞吐量等。
- 性能效率的依从性:系统/软件遵循与性能效率相关的标准、约定或法规以及类似规定的能力。
(3)兼容性
A 概念
- 共享相同硬件和软件的条件下,系统/软件的组件能和其他产品的组件进行信息的交换、或执行所需功能的程度。
B 子特性
- 共存性:在于其他的产品共享通用的环境或资源的条件下,产品能够有效执行其所需的功能,且不会对其他的产品造成负面影响的程度。
- 互操作性:产品之间、系统之间、或组件之间能够进行信息的交换。
- 兼容性的依从性:系统/软件遵循与兼容性相关的标准、约定或法规以及类似规定的能力。
(4)易用性
A 概念
- 在特定的使用周境中,系统/软件在有效性、效率、满意度等方面为指定目标可为指定用户使用的程度。
B 子特性
- 可辨识性:用户能够辨识产品和产品是否能够并适合完成其目标的程度。
- 易学性:用户学习、使用产品的容易程度。
- 易操作性:用户操作、控制产品的难易程度。
- 用户差错防御性:预防用户犯错的能力的程度。
- 用户界面舒适性:用户使用产品时,产品界面能够使用户感到愉悦、舒适的程度。
- 易访问性:在特定的使用周境中,为了达到特定的目的,产品广泛的特点和能力为个体所使用的的程度。
- 易用性的依从性:系统/软件遵循与易用性相关的标准、约定或法规以及类似规定的能力。
(5)可靠性
A 概念
- 指系统、软件、组件在指定环境下,指定时间内,执行并完成指定功能的程度。
B 子特性
- 成熟性:在产品正常运行时,满足用户个性要求的程度。
- 可用性:在需要使用产品时,就能立马进行使用和访问。
- 容错性:硬件或软件发生错误的情况下,产品还能符合预期正常运行的能力。
- 易恢复性:在产品发生中断、或失效的情况下,软件产品重建期望的运行状态并恢复受直接影响的数据的能力。
- 可靠性的依从性:系统/软件遵循与可靠性相关的标准、约定或法规以及类似规定的能力。
(6)信息安全性
A 概念
- 系统/软件保护信息的程度,以使其他用户或产品按照具体授予其的权限类型和权限级别来访问数据。
B 子特性
- 保密性:系统/产品只有被授权的用户才能访问的程度。
- 完整性:防止非授权的访问、和篡改计算机的程度。
- 抗抵赖性:系统会记录用户的访问行为,用户不可否认访问的特性叫做抗抵赖性。
- 可核查性:实体的活动可以被唯一的追溯到该实体的程度。
- 真实性:就是说对象和资源的身份标识,能够被证实符合其声明的程度。
- 信息安全的依从性:系统/软件遵循与信息安全相关的标准、约定或法规以及类似规定的能力。
(7)可维护性
A 概念
- 系统/软件被修改的能力。修改包括修正、优化和功能规格变更的说明。
B 子特性
- 模块化:由多个独立的组件和系统构成的计算机程序,其中一个组件发生变更后,对其他组件影响的程度。
- 可重用性:资产能够被重复利用于多个系统、或其他资产建设的程度。
- 易分析性:软件产品诊断软件中的缺陷或失效原因或识别待修改部分的能力。
- 易修改性:系统或软件的能够快速地以较高的性价比对系统进行修改的能力。
- 易测试性:软件产品使已修改软件能被确认的能力。
- 维护性的依从性:系统/软件遵循与可维护性相关的标准、约定或法规以及类似规定的能力。
(8)可移植性
A 概念
- 系统/软件指软件产品从一个环境迁移到另一个环境的有效性和效率程度。
B 子特性
- 适应性:能够有效,有效率的适应不同软硬件环境的程度。
- 易安装性:在指定的环境中,安装和卸载的有效性和效率。
- 易替换性:在相同的环境中,能够有效的替换另一个相同用途的产品的程度。
- 可移植性的依从性:系统/软件遵循与可移植性相关的标准、约定或法规以及类似规定的能力。
7、模型、测度、测量函数之间的关系
(1)GB/T 25000.10
- 给出软件产品质量和使用质量的特性和子特性
- 解决对软件质量进行评价时,主要从哪些方面进行评价
- 给出对软件测量时,需要从哪些方面进行测试指导
(2)GB/T 25000.22、GB/T 25000.23
- 给出使用质量和产品质量每一个子特性的计算方法。
(3)量化属性
- 可测量
(4)测量方法
- 可操作的一个序列。
- 量化规定的质量、特性。
(5)测度元素
- 运用测量方法的一个结果。
- 对质量属性用测量方法后的一个结果。
8、软件质量评价
软件评价过程的特性包括可重复性、可再现性、公正性和客观性。
(1)软件产品评价工程参考模型
(2)评价过程的策略和步骤
- 确立评价需求
- 规定评价
- 设计评价
- 执行评价
- 结束评价
(3)就绪可用产品 RUSP
A RUSP要求
RUSP:一种市面上已经打包好的可销售的产品,或者互联网上下载安装就可以用的产品。
- 产品说明
- 用户文档集
- 软件质量要求
8个质量特性、5个使用特性
B 测试文档集要求
- 包括:测试计划、测试说明、测试结果等。
C 符合性评价细则
- 主要用于产品的说明、所交付的软件、文档集等。
三、软件测试标准
(一)软件测试标准
1、GB/T 38634
主要适用于各个企业,规范相关软件测试工程,建立适合自己的软件测试管理和测试技术。
- GB/T 38634.1-2020《系统与软件工程软件测试第1部分:概念和定义》
- GB/T38634.2-2020《系统与软件工程软件测试第2部分:测试过程》
- GB/T 38634.3-2020《系统与软件工程软件测试第3部分:测试文档》
- GB/T 38634.4-2020《系统与软件工程软件测试第4部分:测试技术》
2、GB/T 15532-2008 《计算机软件测试规范》
规定了计算机软件测试生成周期内,各类软件产品测试的基本的方法、过程和准则。
3、GB/T 38639-2020《系统与软件工程软件组合测试方法》
主要规定了组合测试的的测试对象、输入,预处理、组合的强度、约束的表示、组合测试的过程、组合测试的输入输出的表示等。
(二)软件过程标准
1、3个过程组(GB/T 38634.2-2020《系统与软件工程软件测试第2部分:测试过程》)
(1)组织级测试过程
- 定义用于开发和管理组织级测试规格说明的过程。
(2)测试管理过程
- 3个子过程
- 低于组织级测试过程的。
- 定义涵盖整个测试项目或任何测试阶段、测试类型的测试管理过程。
(3)动态测试过程
- 4个子过程
- 动态测试通用过程
2、测试管理过程
- 测试策划过程
- 测试监测和控制过程
- 测试完成过程
3、动态测试过程
- 测试设计和实现过程
- 测试环境构建和维护过程
- 测试执行过程
- 测试事件报告过程
(三)测试文档标准
1、组织级测试文档集
- 包括组织级测试策略、方针。
- 方针:定义目的、原则
- 策略:技术性文档,提供框架
2、测试管理文档集
- 主要包含测试计划、测试状态的报告以及测试完成报告。
- 测试计划:主要是描述在测试初始期相关的一些决定,作为对测试进行监控的一个依据。
- 测试状态报告:监控测试执行的过程。主要是提供了在特定报告期内的测试执行的情况和状态信息。
- 测试完成报告:提供测试总结。
3、动态测试文档集
- 主要包含:测试数据的需求、测试数据准备报告、测试环境需求、测试环境准备报告、测试执行文档、测试状态报告等。
(四)测试技术标准
主要用于构建测试模型相关的一些活动、概念、过程。
1、基于规格说明的技术
主要用于黑盒测试
(1)等价类划分
(2)分类树
(3)边界值分析
(4)语法测试
(5)组合测试设计技术
- 完全组合测试、成对测试、单一选择测试、基本选择测试
(6)判定表测试
(7)因果图
(8)状态转移测试
(9)场景测试
(10)随机测试
2、基于结构的技术
主要用于白盒测试
(1)语句测试
(2)分支测试
(3)判定测试
(4)分支条件测试
(5)分支条件组合测试
(6)修正条件判定覆盖测试
(7)数据流测试
- 全定义测试、全计算使用测试、全谓词使用测试
- 全使用测试、全定义使用路径测试
3、基于经验的技术
(1)错误猜测法
四、软件测试工作量及成本估算相关标准
(一)软件测试成本构成
1、直接成本
A 概念
- 为完成软件测试项目所支出的人工资源和工具资源的总和。
B 分类
- 测试人工成本
主要包含:产品说明评审、用户文档评审、软件测试评审 - 测试环境成本
- 测试工具成本
2、间接成本
A 概念
- 服务于软件测试项目的管理的组织成本。
- 可能跨越、超过测试周期。
B 分类
- 办公成本
- 管理成本
一般间接成本不超过直接成本的20%
(二)软件测试成本调整因子
- 软件复杂度
- 软件完整性
- 测试风险度
- 回归测试
- 加急测试现场测试
- 评测机构资质
(三)软件测试成本度量的实施步骤
(四)软件测试成本度量
1、人工成本工作量计算:UW=TW+SR+DR
- UW:未经调整的人工工作量
- TW:软件测试评审工作量
- SR:产品说明评审工作量
- DR:用户文档集评审工作量
2、软件测试的调整因子:DF=CIRUXA(1+n*Tr)
- C:复杂度因子
- I:完整度因子
- R:测试风险度因子
- Tr:回归测试因子
- U:加急测试因子
- X:现场测试因子
- A:评测机构资质因子
3、测试人工成本:LC=UWDFS
- LC:测试人工成本
- 调整后的工作量=未经调整的工作量UW*调整因子
- 测试人工成本=调整后的工作量*每人日成本
4、测试工具成本:IC=OT+RT
- 测试工具成本=自有工具的费用+租赁工具成本
- OT:自有工具费用
- RT:租赁工具的费用
5、测试直接成本:DC=LC+EC+IC
- 直接成本=人工成本+环境成本(人工成本的20%)+工具成本
6、测试成本:STC=DC+IDC
- 测试总成本=直接成本+间接成本。
例子
人工成本工作量
- UW=TW+SR+DR=10+1+2=13(人日)
成本调整因子
- DF=CIRUXA(1+nTr)
=1.01.01.01.01.01.0*(1+0.6)
人工成本
- LC=UWDFS
=131.61000=20800(元)
工具成本
- OT=(1000000/5+100000020%)/2005=10000(元)
无租借设备
- RT=0(元)
总的测试工具成本
IC=OT+RT
=10000+0=10000(元)
直接成本
- DC=LC+EC+IC
=20800+20800*20%+10000=34960(元)
软件测试成本
- STC=DC+IDC
=349600+349600*20%=41952(元)