GB/T 38639-2020 系统与软件工程 软件组合测试方法

GB/T 38639-2020 系统与软件工程 软件组合测试方法
仅供个人学习
反馈
标准编号:GB/T 38639-2020
文件类型:.pdf
资源大小:1.3M
标准类别:电力标准
资源ID:211023
下载资源

GB/T 38639-2020 标准规范下载简介

GB/T 38639-2020 系统与软件工程 软件组合测试方法

表1依据年龄段的分类离散化

求,系统则拒绝接受此类密码。由于密码可能的取值过多,因此需采用等价类的方式对输人域进行划分。表2给出了密 码参数的离散化示例

示例之:某软件新建用户切能中设直密码要求密 系统则拒绝接受此类密码。由于密码可能的取值过多,因此需采用等价类的方式对输人域进行划分。表2给出了 数的离散化示例。

DB15/T 489-2019 石油化学工业建设工程技术资料管理规范(蒙)表2密码参数的离散化示例

c)依据步骤a)中得出的参数,识别出参数间的约束。 d)分析各参数间交互作用的强度,设定用于测试的组合强度。 e 依据待测软件的需求确定是否有约束条件以及种子。约束条件和种子的选取应按第5章的要 求执行

GB/T38639—2020组合强度4.1单一选择待测软件中所有参数取值范围的任意可能取值至少被测试用例套中的一个测试用例覆盖。示例:一个系统有三个参数P=(pl,p2,p3),其中pl的取值范围V1=(a,b),p2的取值范围V2=(1,2,3),p3的取值范围V3=(x,y)。表3给出了一组满足单一选择覆盖的测试用例套表3单一选择准则测试用例套示例参数p1p2p31测试用例2yax4.2基本选择待测软件的测试用例套中,对于任意一个参数的两个取值,存在两个测试用例覆盖这两个取值,并且其他参数的取值相同。示例:一个系统有三个参数P=(pl,p2,p3),其中pl的取值范围V1=(a,b),p2的取值范围V2=(1,2,3),p3的取值范围V3=(x,y)。表4基本选择准则测试用例套示例参数p2p32a1Xb1X测试用例b2x3xb3y4.3成对组合待测软件中任意两个参数,它们取值范围的任意一对有效取值至少被一个测试用例所覆盖。在组合测试中关键参数应至少满足成对组合覆盖。示例:一个系统有三个参数P=(pl,p2,p3),其中pl的取值范围V1=(a,b),p2的取值范围V2=(1,2,3),p3的取值范围V3=(x,y)。其测试覆盖项见表5。3

GB/T38639—2020

表5成对测试准则覆盖项示例

表6成对测试准则测试用例套示例

待测软件中所有参数取值范围的任意有效取值的组合至少被一个测试用例所覆盖。 示例:一个系统有三个参数P=(pl,p2,p3),其中pl的取值范围V1=(a,b)+p2的取值范围V2=(1,2,3 取值范围V3=(x,y)。 表7给出了满足全组合覆盖的测试用例套

GB/T38639—2020表7全组合准则测试用例套示例参数plp2p311y2X2y33y测试用例1X1X2X2yXy4.55K强度组合在组合强度要求为K的组合中(简称为K强度),任意K个参数取值范围的任意有效值的组合至少被一个测试覆盖项所覆盖。当K=2时,K强度组合等同于成对组合;当K等于所有参数数量时,K强度组合等同于全组合。示例:一个系统具有a,b,c,d四个参数,取值范围分别为0,1,当K=2时,表8所给出的一组组合的覆盖率计算如下:2强度的组合有ab,ac,ad,bc,bdod六种,每两个参数间都有四个二值组合,因此共有24个组合需要覆盖。而在所示的测试用例套中,仅有19个2强度组合被覆盖,因此该测试用例套的2强度组合覆盖率为19/24=79.2%。表82强度组合测试用例套示例参数c0000011测试用例10010111组合测试的约束条件和种子5.1约束条件组合测试方法应能提供默认组合强度和任意参数集合上的变强度的表示。组合测试的约束条件分为条件约束和无条件约束a)条件约束:条件药束应包含约束条件和约束表达式。当约束条件满足时,则按照药束表达式进5

行约束,否则不进行约束。 b)无条件约束:无条件约束不需要约束条件。任何测试用例均应满足约束表达式。 约束条件和约束表达式应支持关系运算符及逻辑运算符。 关系运算符可包含但不限于等于(三二)、不等于(!三)、大于(>)、大于或等于(≥)、小于(<)和小 于或等于(≤)等。 逻辑运算符可包含但不限于逻辑蕴含(→)、逻辑与(人)、逻辑或(V)、逻辑非()和逻辑异或 (?)等

组合测试方法应能支持指定参数值测试用例的种子。 种子的参数、值及其约束关系应该和模型文件中参数一致。如果不一致,应根据如下原则处理 种子: a) 忽略种子中包含了模型文件中不存在的参数: b) 忽略种子中在模型文件中不存在的参数值; c)忽略种子中违反了在模型文件中定义的约束条件。

乙组合测试输入输出表示

组合测试输入应包含组合强度和各参数的定义,宜包含指定参数的变强度定义、种子定义和约束 条件。 常见的输入输出格式包括XML格式和JSON格式。XML格式适用于解析速率要求较高和可靠 生要求高的测试环境;JSON格式适用于需要远程传输测试数据且对传输效率要求较高的测试环境。 组合测试的输入输出格式文件见附录C

GB/T386392020

如采用XML作为输入格式,宜包含的元素见表9。XML输入格式文件按C.2给出的Schema定 义执行。

Z.2.2JSON输入格式

采用JSON作为输入格式,宜包含的元素见表10

表10JSON输入格式

GB/T38639—2020

GB/T38639—2020

7.3.1XML输出格式

如采用XML作为输出格式,宜包含的元素见表11。其XML输出格式文件按C.3给出的Schema 定义执行。

表11XML输出格式

Z.3.2JSON输出格式

如采用JSON作为输出格式,宜包含的元素见表1

表12JSON输出格式

GB/T386392020

附录A (资料性附录) 软件完整性级别与组合强度要求参考 组合测试方法的使用可按照GB/T18492一2001给出的软件完整性级别来确定组合强度的要求 表A.1给出了一组各完整性级别对应的组合强度的参考

测试方法的使用可按照GB/T18492一2001给出的软件完整性级别来确定组合强度的要求 出了一组各完整性级别对应的组合强度的参考

表A.1软件完整性级别对应的组合强度参考

GB/T 386392020

本附录给出了某系统的测试 测试用例生成的情况

本系统具有五个参数,分别为平台、CPU核数、主存容量、外存接口和操作系统,均为字符串类型 其取值范围如下: 平台的取值范围:x86,ia64,amd64。 CPU核数的取值范围:Single,Dual,Quad。 主存容量的取值范围:128MB,4GB,64GB。 外存接口的取值范围:SCSI,IDE。 操作系统的取值范围:OS1.OS2.OS3.OS4

默认为成对组合覆盖。 CPU核数、主存容量和操作系统三个参数需要3强度组合

本系统应测试的种子如下: a)平台为amd64,主存容量为64GB,操作系统为OS4; b)平台为x86,主存容量为128MB,操作系统为OS1

本系统应测试的种子如下: a)平台为amd64,主存容量为64GB,操作系统为OS4; b)平台为x86.主存容量为128MB,操作系统为OS1。

本系统参数有兼容性约束,约束条件如下 a)平台为ia64或amd64时,操作系统只准许是OS3或OS4; b)平台为x86时,主存容量不能是64GB

GB/T386392020

GB/T38639—2020

B.4.2JSON格式

["name""PLATFORM","value"."amd64"},{"name""RAM","value""64GB"},《" name":"Os","value":"OS4"}], ["name"."PLATFORM","value""x86"},《"name":"RAM","value""128MB"】,《" name":"Os","value":"OS1"}] 」, "constraints":[ 《"condition":"PLATFORM"=="ia64"II"PLATFORM"=="amd64","expression":"(" OS"=="OS3"II"OS"=="OS4")"}, 《"condition"."PLATFORM"=="x86","expression"."RAM"!="64GB"

["name"."PLATFORM","value"."amd64"},{"name"."RAM","value"."64GB"】,《" name":"Os","value":"OS4"}], ["name"."PLATFORM","value"."x86"),《"name"."RAM","value"."128MB"),《" name":"Os","value":"OS1"}] 」, "constraints":[ 《"condition"."PLATFORM"=="ia64"II"PLATFORM"=="amd64","expression":" OS"=="OS3"II"OS"=="OS4")"), ("condition""PLATFORM"=="x86","expression":"RAM"!="64GB"

B.5.1变强度的测试覆盖项

GB/T 386392020

B.5.2默认强度的测试覆盖项

B.5.3种子的测试覆盖项

GB/T386392020

违反约束条件的测试覆言

依据B.3.3中约束条件a)的约束,测试覆盖项TCOVER65、TCOVER66、TCOVER69和TCOV ER70违反了该条约束。 依据B.3.3中约束条件b)的约束,测试覆盖项TCOVER48违反了该条约束。 依据B.3.3中约束条件a)和b)可推导出主存容量为64GB时,操作系统不能为OS1和OS2,测试 覆盖项TCOVER9、TCOVER1O、TCOVER21、TCOVER22、TCOVER33和TCOVER34违反约束

依据B.3.3中约束条件a)的约束,测试覆盖项TCOVER65、TCOVER66、TCOVER69和TC R70违反了该条约束。 依据B.3.3中约束条件b)的约束,测试覆盖项TCOVER48违反了该条约束。 依据B.3.3中约束条件a)和b)可推导出主存容量为64GB时,操作系统不能为OS1和OS2, 盖项TCOVER9、TCOVER10、TCOVER21、TCOVER22、TCOVER33和TCOVER34违反约束

GB/T 386392020

但x86平台不兼容64GB主存容量,因此主存容量为64GB时,操作系统不能为OS1和OS2 覆盖上述测试覆盖项的测试用例应册除

衣据B.5中的测试覆盖项,可得出测试用例。 表B.1给出了符合B.5测试覆盖项的测试用例的一种解

表 B.1测试用例表

GB/T38639—2020

GB/T386392020

GB/T 386392020

GB/T386392020

GB/T 386392020

B.7.2JSON格式

据表B.1,生成测试用例的JSON格式表示如下

GB/T386392020

testcases":L I"testcase":[ 《"name":"PLATFORM","value"."x86"} ("name":"CPUS","value":"Single", ("name":"RAM","value":"128MB"), 《"name":"HDD","value":"IDE"), ("name":"Os","value":"OS1"} 1, ("testcase":[ "name":"PLATFORM","value":"x86"}, ("name":"CPUS","value"."Single"}, ("name":"RAM","value":"128MB"), ("name":"HDD","value":"IDE"), "name":"Os","value":"OS2"} J, ("testcase":[ {"name":"PLATFORM","value":"amd64"}, ("name":"CPUS","value""Single"}, ("name":"RAM","value""128MB"}, ("name":"HDD","value":"IDE"), ("name""Os","value":"OS3"} J, ("testcase": [ {"name""PLATFORM","value"."ia64"} ("name":"CPUS","value""Single"}, ("name""RAM","value":"128MB"}, ("name":"HDD","value":"IDE"), ("name":"Os","value":"OS4"} J, ("testcase":[ "name"."PLATFORM","value"."x86"} ("name":"CPUS","value""Single"}, "name":"RAM","value":"4GB"), ("name":"HDD","value":"IDE"}, ("name":"Os","value":"OS1"} 1, ("testcase":[ ("name":"PLATFORM","value":"x86"} ("name":"CPUS","value":"Single"}, ("name":"RAM","value":"4GB"), "name":"HDD","value":"SCSI"),

{"name":"Os","value":"OS2") J), ("testcase".[ "name"."PLATFORM","value"."amd64"}. "name"."CPUS","value":"Single"}, "name":"RAM","value":"4GB"}, "name":"HDD","value":"SCSI"}, "name":"OS","value":"OS3") J), ("testcase":L "name":"PLATFORM","value":"x86"}, "name"."CPUS","value"."Single"), {"name":"RAM","value":"4GB"}, "name"."HDD","value":"IDE"}, "name":"Os","value":"OS4") J), ("testcase":L "name":"PLATFORM","value":"amd64"}, 《"name":"CPUS","value":"Single"), {"name":"RAM","value":"64GB"}, "name":"HDD","value":"IDE"}, "name":"OS","value":"OS3"} J), ("testcase":L "name":"PLATFORM","value":"amd64"}, "name":"CPUS","value":"Single"}, "name":"RAM","value":"64GB"}, "name":"HDD","value":"IDE"}, "name"."Os","value"."OS4") J, ("testcase":L 《"name":"PLATFORM","value":"x86"), t"name":"CPUS","value":"Dual"}, "name":"RAM","value":"128MB"}, "name":"HDD","value":"SCSI"}, {"name""Os","value":"OSi") J), ("testcase":L {"name":"PLATFORM","value":"x86"}, "name":"CPUS","value":"Dual"}, "name":"RAM","value":"128MB"},

GB/T386392020

《"name":"HDD","value":"IDE"), "name":"Os","value":"OS2"} J, ("testcase":[ {"name":"PLATFORM","value":"x86"}, 《"name":"CPUS","value":"Dual"), ("name":"RAM","value"."128MB"}, ("name":"HDD","value":"IDE"), "name":"Os","value":"OS3"} J, ("testcase": [ {"name""PLATFORM","value""x86"}. ("name":"CPUS","value""Dual"}, ("name":"RAM","value""128MB"), ("name":"HDD","value":"IDE"), ("name":"Os","value":"OS4"} J, f"testcase": {"name":"PLATFORM","value":"x86"}. ("name":"CPUS","value":"Dual"}, "name":"RAM","value"."4GB"), "name":"HDD","value":"IDE"), ("name":"Os","value":"OS1"} J ("testcase":[ 《"name"."PLATFORM","value""x86"} ("name""CPUS","value":"Dual""}, "name":"RAM","value":"4GB"), ("name":"HDD","value":"IDE"), ("name":"Os","value":"OS2"} 1, f"testcase": "name"."PLATFORM","value"."x86"} {"name":"CPUS","value":"Dual"}, ("name":"RAM","value":"4GB"), ("name":"HDD","value":"IDE"), ("name":"Os","value":"OS3"} J, ("testcase":[ ("name":"PLATFORM","value":"amd64"), 《"name":"CPUS","value":"Dual"),

"name":"RAM","value":"4GB"}, "name":"HDD","value":"IDE"}, {"name""Os","value""OS4"} J), ("testcase":L "name":"PLATFORM","value":"ia64"}, "name":"CPUS","value":"Dual"}, {"name":"RAM","value":"64GB"} "name":"HDD","value":"IDE"}, "name":"Os","value":"OS3") J), ("testcase":L "name":"PLATFORM","value":"amd64"}, ""name"."CPUs","value"."Dual"}. "name":"RAM","value":"64GB"}, "name":"HDD","value":"IDE"}, "name":"OS","value":"OS4") 门, "testcase":[ f"name":"PLATFORM","value":"x86"}, "name":"CPUS","value":"Quad"}, "name":"RAM","value":"128MB"}, "name":"HDD","value":"IDE"}, "name":"Os","value":"OSi") J, ("testcase":L "name"."PLATFORM","value"."x86"}, "name":"CPUS","value":"Quad"}, "name":"RAM","value":"128MB"}, "name":"HDD","value""IDE"}, "name":"Os","value":"OS2") J, ("testcase":L "name"."PLATFORM","value"."x86"}, "name":"CPUS","value":"Quad"}, "name":"RAM","value"."128MB"}, {"name":"HDD","value":"IDE"}, ("name":"Os","value":"OS3") J), ("testcase":L 《"name":"PLATFORM","value":"x86"},

GB/T386392020

GB/T 386392020

《"name":"CPUS","value":"Quad"), 《"name":"RAM","value"."128MB"), ("name":"HDD","value":"IDE"}, ("name":"Os","value":"OS4"} J, ("testcase":[ {"name":"PLATFORM","value":"x86"}, ("name":"CPUS","value":"Quad"), ("name":"RAM","value":"4GB"), 《"name":"HDD","value":"IDE"),c "name""Os","value"."OSi" J, {"testcase". 《"name":"PLATFORM","value":"x86"}, ("name":"CPUS","value""Quad"), ("name":"RAM","value":"4GB"), ("name":"HDD","value":"IDE"}, ("name""OS","value":"OS2"} J, ("testcase":[ {"name":"PLATFORM","value":"x86"} ("name":"CPUS","value":"Quad"), ("name":"RAM","value":"4GB"), ("name":"HDD","value":"IDE"), "name":"Os","value":"OS3"} J, ("testcase":[ 《"name"."PLATFORM","value"."ia64"} ("name":"CPUS","value":"Quad"), ("name":"RAM","value":"4GB"), ("name""HDD","value":"SCSI"}, "name""Os","value"."OS4" 1, ("testcase":[ ("name":"PLATFORM","value":"ia64"}, ("name":"CPUS","value":"Quad"), ("name":"RAM","value":"64GB"), ("name":"HDD","value":"IDE"), "name":"Os","value":"OS3"} J, I"testcase".

name":"PLATFORM","value": 'name":"CPUS","value":"Quad"}, 'name":"RAM","value""64GB"} 'name":"HDD","value":"SCSI"}, "name":"Os","value":"OS4")

GB/T386392020

DB34/T 3145-2018 长输天然气埋地管道外腐蚀非开挖检验方法GB/T 386392020

本附录中给出了组合测试输入文件和输出文件的

.2输入文件XMLSch

附录C (规范性附录) 组合测试输入输出XMLSchema

GB/T386392020

GB/T 386392020

GB/T 32484-2022 表壳体及其附件 气相沉积镀层C.3输出文件XMLSchema

GB/T386392020

[1]GB/T18492一2001信息技术系统及软件完整性级别 [2]GB/T38634.4一2020系统与软件工程软件测试第4部分:测试技术

©版权声明
相关文章