0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鉴源实验室·ISO 26262中测试用例的得出方法-等价类的生成和分析

上海控安 来源:上海控安 作者:上海控安 2024-07-30 15:37 次阅读

作者 | 李伟 上海控安安全测评部总监

来源 |鉴源实验室

社群 | 添加微信号TICPShanghai”加入“上海控安51fusa安全社区”

在ISO 26262-6-2018 标准规范中给出了单元、集成、系统测试各阶段的建议测试使用方法,设计生成测试用例的建议方法包括需求分析、等价类的生成和分析、边界值分析、基于已有经验和知识的错误推测等等,从本篇开始我们对测试用例设计生成的方法进行介绍。

01

开始于需求分析

无论使用哪种方法设计测试用例,首先都需要对需求进行分析,根据需求规格说明书逐条对需求进行分解,需求的分解必须要确保能够完整地覆盖整条需求被全面的测试,同时需求分解的粗细程度需要有恰当的颗粒度。

需求分解的步骤通常分为两步,首先对一条需求设计中的功能抽象,用功能抽象法把单条需求分解为多个功能单元,即把单条复杂的需求分解为多个子单元需求;其次针对已分解的子功能单元或子单元需求使用数据抽象方法,设计测试每个功能单元的数据。

功能抽象中程序需求被看成一种抽象的功能层次,每个层次可标识被测试的功能,层次结构中的某一功能有由其下一层功能定义。按照功能层次进行分解,可以得到众多的最低层次的子功能,以这些子功能为对象,进行测试用例设计。

数据抽象中,数据结构可以由抽象数据类型的层次图来描述,每个抽象数据类型有其取值集合。程序的每一个输入和输出量的取值集合用数据抽象来描述。

02

等价类的分析和划分

等价类的分析和划分方法在很多文档中均可以查询到,我们引用全国计算机技术与软件专业技术资格软件评测师教程中的定义。等价类划分的办法是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。每一类代表性数据在测试中的作用等价于这一类中的其他值。

使用等价类划分方法时,应同时包括有效等价类和无效等价类,有效等价类是设计中合理,正确或有效用的输入集,无效等价类是设计中不合理,不正确或失效的输入集。

根据遇到的使用场景不同,在不同的场景情况下通常等价类划分按照下面的情况进行:

(1)在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。

(2)在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。

(3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。

(4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。

(5)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

(6)在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类。

03

单元测试中的使用

等价类划分在功能和接口测试中的使用相对比较简单,上一章节以及很多其他文档中都多有说明。我们会从代码测试的角度对等价类的划分进行介绍。等价类划分通常会跟边界值结合起来使用,边界值我们会在下一篇文章进行介绍。

在执行代码单元的结构化覆盖度测试时,会要求设计测试用例对代码进行动态测试,测试用例的设计在标准规范中同样推荐使用等价类、边界值等方法。我们将通过一段代码来分析等价类的在代码测试中的划分。

示例代码如下:

代码定义了vehicle_temperature_inside 为车内的温度,实际中该值通常是调用温度传感器读值,本示例中简单将温度传感器接口读值写成了全局变量Sensor_temperature ;AC_switch 空调压缩机开关,0为关,1为开;Fan_swtch 风扇开关,0为关,1为开;Fan_speed 1为微风档,2为中风档,3为高风档;Fan_temp 风扇冷热0为冷风,1为热风。

代码要实现的逻辑是根据获得的传感器温度,在车内温度超过25摄氏度时打开空调,此时风扇启动吹冷风,空调压缩机启动,风扇中档风,返回“空调制冷启动”;在车内温度低于15摄氏度时打开空调,此时风扇启动吹热风,空调压缩机不启动,风扇中档风,返回“空调加热启动”。

wKgZomaol_OAF5EYAAENo2DgX3g565.png

从功能需求描述和代码我们可以得知,空调控制的逻辑结果均是基于车内温度这个输入指标来得出的,参数vehicle_temperature_inside > 25时启动冷空调,vehicle_temperature_inside < 15时启动热空调。这里有两个有效的取值范围,根据上一章节我们可以得出适用于第4种情况,有2个有效等价类,和1个无效等价类。有效等价类集合是(25,+∞)、(-∞,15),无效等价类为[15,25]。

有效等价类中取vehicle_temperature_inside 参数输入值26时,测试用例如下:

wKgZomaol_qAWxtoAAFAl6FImzg372.png

有效等价类中取vehicle_temperature_inside 参数输入值0时,测试用例如下:

wKgaomaomACAHMLMAAFA2uCBEJA299.png

无效等价类取值25测试用例如下:

wKgZomaomAeAJVoHAAFE4-fmzSM206.png

测试完成后检查控制流图如下,所有路径均已设计测试用例覆盖。

wKgaomaomA6AaV0KAAB7IbiloTk605.png

04

测试小结

在执行代码的测试设计中使用等价类方法有如下建议:

1. 等价类生成与分析不仅仅在黑盒测试设计中使用,在白盒代码测试中也是常见的测试方法。

2. 代码测试用例设计时无效等价类取值的设计,取值通常跟有效等价类值是数据类型相同,但范围限定在无效范围内,即测试的形参是整数型,不管有效等价类或是无效等价类均是整数型,不存在有效等价类是整数型,无效等价类是浮点数型。

3. 代码设计的等价类和边界值可以结合使用,也推荐结合使用。

4. 功能安全等级的不同和测试设计时对等价类边界值取值数量的要求需要根据实际项目情况来,通常安全等级越高,要求取值测试数量就多。

参考文献:

1. 全国计算机技术与软件专业技术资格考试指定用书 – 软件评测师教程.

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 测试
    +关注

    关注

    8

    文章

    4913

    浏览量

    125915
  • ISO
    ISO
    +关注

    关注

    0

    文章

    246

    浏览量

    39451
  • 代码
    +关注

    关注

    30

    文章

    4665

    浏览量

    67742
收藏 人收藏

    评论

    相关推荐

    实验室·基于MQTT协议的模糊测试研究

    作者 |  张渊策 上海控安可信软件创新研究院工控网络安全组 来源 |  实验室 社群 |  添加微信号“ TICPShanghai ”加入“上海控安51fusa安全社区” 随着物联网技术的快速
    的头像 发表于 07-30 15:21 485次阅读
    <b class='flag-5'>鉴</b><b class='flag-5'>源</b><b class='flag-5'>实验室</b>·基于MQTT协议的模糊<b class='flag-5'>测试</b>研究

    软件测评的等价设计方法

    划分的步骤: 1、先考虑输入数据的数据类型(合法和非法的) 2、再考虑数据范围(合法类型的合法区间和非法区间) 3、画出示意图,区分等价 4、为每一个等价
    发表于 12-29 10:22

    UML状态图和Petri网络在测试用生成的应用

    【作者】:陈志德;曾凡平;【来源】:《小型微型计算机系统》2010年03期【摘要】:分析和研究UML状态图、扩展状态机和Petri网在测试用生成
    发表于 04-24 09:52

    实验室管理系列】实验室管理体系ISO/IEC17025内容拆解

    ISO/IEC 17025《检测和校准实验室能力的通用要求》是由国际标准化组织ISO/CASCO(国际标准化组织/合格评定委员会)制定的实验室管理标准,是
    发表于 08-12 10:28

    ISO 26262功能安全标准体系解读

    试验来确认是否产生了满足要求的成果物。对于ASIL D等级要求,无论是软件单元测试还是软件集成测试,都必须进行基于需求的测试、接口测试、故障注入测试
    发表于 07-22 18:10

    实验室lims系统解决方案

    测试分析物并将测试分配给特定的LIMS用户。报告报告是实验室lims系统的重要组成部分,它使实验室能够全面了解收集的数据和潜在趋势,从而减少
    发表于 11-04 11:18

    基于UML的生成场景测试用研究

    使用UML生成场景测试用,有利于测试者设计测试用。使用UML的
    发表于 03-31 09:49 15次下载

    基于DSEA的弱变异测试用生成方法

    为解决基于集合进化算法(SEA)的弱变异测试用生成过程个体规模固定和执行开销大的问题,提出一种基于动态集合进化算法( DSEA)的弱变异测试用
    发表于 11-28 16:11 0次下载

    基于UML图依权限有序的Web链接测试用生成方法

    方法生成含信息元素的扩展状态图,通过对扩展状态图的转换及相应路径的时序重排得到最终具有权限与时序性质的Web链接测试用。通过实验
    发表于 01-07 12:25 0次下载
    基于UML图依权限有序的Web链接<b class='flag-5'>测试用</b><b class='flag-5'>例</b><b class='flag-5'>生成方法</b>

    基于碰撞域检测优化的测试用自动生成方法

    随着软件行业的快速发展,软件测试的作用也越来越大,自动化测试用生成方法也越来越多。如何找到一种高效的测试用
    发表于 01-15 10:38 2次下载
    基于碰撞域检测优化的<b class='flag-5'>测试用</b><b class='flag-5'>例</b>自动<b class='flag-5'>生成方法</b>

    粒子群优化测试用生成方法

    适应度函数的设计在基于搜索的测试用生成技术占据重要的位置,然而在某些特殊的程序,如存在嵌套、非结构性跳转或因return,break等
    发表于 01-15 15:23 0次下载

    数据测试:输入数据的设计方法测试用设计方法

    测试用的设计是测试设计的重要内容,关于测试用的设计方法,当前不少出版的
    的头像 发表于 06-29 10:22 2824次阅读

    基于遗传算法的测试用生成方法

    测程序的控制流图进行数据流分析,计算出程序中所有的定义-使用对,得到测试目标,利用面向多测试目标的遗传算法生成满足 all-uses准则的最优解。遗传算法
    发表于 05-07 10:28 2次下载

    广东金实验室科技有限公司介绍

    认定的“LED失效分析公共服务示范平台”,广州市中级人民法院司法鉴定专业委托机构。   金实验室建设了一条从芯片到封装灯具的LED测试分析
    发表于 11-25 17:19 1721次阅读
    广东金<b class='flag-5'>鉴</b><b class='flag-5'>实验室</b>科技有限公司介绍

    技术分享 | ISO 26262的安全分析之FMEA

    本期内容以系统架构设计为,讲解如何在ISO26262产品开发过程实施安全分析,半导体层面的芯片设计也可以参考本文相关内容执行安全分析。安
    的头像 发表于 04-15 11:32 1034次阅读
    技术分享 | <b class='flag-5'>ISO</b> <b class='flag-5'>26262</b><b class='flag-5'>中</b>的安全<b class='flag-5'>分析</b>之FMEA