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

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

3天内不再提示

【明日在线研讨会预热】测试用例质量的重要性

经纬恒润 2021-09-03 19:03 次阅读
871214ae-0be0-11ec-b028-000c2944909e.gif 

介绍

在进行测试时,通常会花很多精力选择“正确”的测试工具。这其实只是为了实现次要目标。当然,一个适合开发环境、项目和流程的工具是重要的。然而,对于良好测试而言,最重要的是测试用例的质量。只有“好”的测试用例才会发现软件存在缺陷。

一个简单的例子

如下是对一个简单测试对象的说明:

“start”和“length”定义了“value”的取值范围。被测函数用来确定给定值是否在定义的范围内。规定范围的上界不在范围内。所有数据类型都是整数。

如下图所示的三个测试用例都通过了测试,并且达到了100%的MC/DC覆盖度。

8733d5ca-0be0-11ec-a43c-000c2944909e.jpg

图1 这三个测试用例通过并达到了100%的覆盖率

图1测试用例都通过并已经达到了100%的覆盖度,但没有对所有的需求进行测试,即没有使用边界值进行测试。

边界值,最小/最大值,极端值,违规值

边界值

需要多少测试用例(以及哪些测试数据)才能充分对边界值进行测试?下面使用一个“输入值是否小于5”的函数来研究这个问题。

873bd934-0be0-11ec-b0cc-000c2944909e.jpg

图2 可能的实现以及哪些测试输入能检测缺陷

图2表格第一列我“输入值是否小于5”的可能缺陷(即错误实现)。其中(i!= 5)和(i <> 5)均为“不相等”,归属不同编程语言(“!=”属于C / C ++,Java;“<>” 属于Pascal,PHP,SQL,Excel)。

表2中第二列为缺陷的可能性组合。缺陷的可能性被认为与关系式中错误字符的数量和“外观”上的差异有关(从正确的(i <5)需要更多的改变才能将正确的(i <5)变换为不正确的(i> = 5),也更容易在视觉上发现)。

表2中后三列为输入值为4、5、6时的测试结果,粗体和红色阴影表示测试失败。输入值4和5未检测到(i!= 5)和(i <> 5),输入值6(即第三测试用例)检测到了。(i <> 5)的实现方式更有可能发生,但使用“<>”运算符的编程语言对于嵌入式系统并不常见。

(i == 4)无输入值检测到,需要额外输入值检测缺陷,需要四个测试用例(“内部”两个值和“外部”两个值)。这是René Tuinhout提出的黑盒边界值分析(B3VA)。“小于5”的值范围有更低边界且可作输入值,则不需要额外测试,下边界可以检测(i == 4)。

结论:嵌入式系统(使用“!=”作为关系运算符),进行代码审查且目标是测试用例的数量较少,仅使用两个测试用例就可以。但为了检测一些缺陷,有时需要四个测试用例。

最小/最大值

将给定数据类型的最大和最小(即最负)可能的输入值作为边界值的特殊情况。

8754ce9c-0be0-11ec-8131-000c2944909e.jpg

图3 函数abs_short()存在一个在使用最大/最小值输入时才会发现的问题

图3函数abs_short()在输入值为-5,0,5时,分别正确返回5,0,5,实现了100%的代码覆盖率。但输入值是-32768时(带符号的16位整数的最小(最负)值),预期结果为+32768。无法在给定的整数范围内表示,返回值为-32768,不是预期值。(背景:-32768 = 0x8000.0x8000-1 = 0x7FFF。反转值为0x8000,与开始时的值相同。)

极端值

极端(或特殊)输入值不是直接取边界或最小/最大值,是另一种特殊值。

87724de6-0be0-11ec-8aa3-000c2944909e.jpg

图4minimum()函数存在编程缺陷

图4是最小值函数。三个(无符号)整数(a,b和c)为输入,返回输入的最小值。

878100ba-0be0-11ec-908b-000c2944909e.jpg

图5:用于检测最小值函数缺陷的测试用例

图5,为该函数运行通过的测试用例。检查每个位置是否能正确检测到最小值(3),100%代码覆盖率,但没有极端或特殊的输入。对此函数,特殊的输入可以是三个相同正值,如输入(3,3,3),结果为0(不是预期结果3),表示最小值功能的实现存在缺陷。

违规值

图3函数“所有数据类型都是整数”。适用length的取值范围,故长度可能是负的。输入5,-2为长度,查看4是否被认为在范围之内。用(可能的)无效输入构建测试用例。

ISO26262中的建议

ISO 26262:2011在第6部分第9节中列出软件单元测试的测试用例的设计方法。

879df52e-0be0-11ec-9f34-000c2944909e.jpg

图6:ISO26262中设计测试用例的方法

图6为建议取决于汽车安全完整性等级(ASIL)。ASIL的范围从A到D,D最高级别。“强烈推荐”双加号(“++”); “推荐”单个加号(“+”)。1a,1b,1c,...是替代条目; 1,2,3,...是连续的条目。替代条目,应根据ASIL应用适当的方法组合;连续条目,应按照ASIL进行应用。1a要求软件单元测试的测试用例来自需求;1b要求使用等价类的生成和分析来导出测试用例;1c要求分析边界值以导出测试用例。方法1a,1b和1c已在本文前面的部分中讨论过。1d要求错误猜测来导出测试用例。

错误猜测

错误猜测需要经验丰富的测试人员,从过往的经验中找到敏感的测试用例。它是一种非系统的方法。例如,被测系统有两个按钮,假设一次只按下其中一个按钮:如果同时按下两个按钮会发生什么?这是错误猜测的示例。

可选方案

本节讨论设计测试用例的其他可选方法。

来自源代码的测试用例

使用工具从源代码自动生成测试用例。一些开源和商业工具都实现了一些技术方法(例如遗传算法或回溯),可以利用生成测试用例。源代码生成测试用例要注意:

  • 遗漏:将无法发现代码中的遗漏。如要求“第一个参数等于第二个参数,则返回错误”若缺少这项检查的实现:由源代码生成的测试用例不会检测到此问题。

  • 准确度:无法从代码中判断它是否正确。如无法判断(i <5)或(i <= 5)是否实现了代码的预期行为。

可以让工具生成测试用例并将其和需求进行比对,如果不符合要求再对其进行相应的拓展或改变。近期有研究人员对此进行了研究,其主要观点如下:

  • 自动生成的测试套件比人工创建的测试套件实现了更高的代码覆盖率。

  • 使用自动生成的测试套件无法检测到更多缺陷。

  • 自动生成的测试用例会对捕获预期的类行为产生负面影响。

这项研究表明,自动化测试用例生成没有为测试带来优势,但它也没有缺点。虽有很多讨论的研究条件(编程语言,编程技巧等),但结果依然是令人惊讶的。

变异测试(Mutation Testing)

评定测试用例质量的一种可行方法是变异测试(在IEC 61508标准中也被称为“错误播种”(error seeding))。有运行通过的测试用例时,可以“变异”代码。如,将判断(i<5)改成(i<=5),在计算结果上加1,把“&&”改为“||”,注释掉部分代码等。代码进行变异之后,重新运行测试用例。若所有测试用例能够通过,测试用例质量就比较低。至少一项测试用例应该会由于进行了变异而无法验证通过。

小结

100%的代码覆盖率并不意味着“好”的测试用例。然而,在执行测试的过程中为了能够检测出软件的缺陷,需要高质量的用例。这项任务需要仔细而富有经验的人力工作才能达成,对于自动化生成的测试用例,应该持保留态度。

欲了解更多相关信息,请点击阅读原文,参加9月2日《基于TESSY的测试用例自动化评估与优化》,期待您的参与!

经纬恒润通过与IBM、Dassault、ANSYS等知名工业软件厂商合作,为用户提供汽车电子领域数十种研发工具,并通过在研发流程、建模仿真、测试验证、平台建设等领域的定制开发和技术服务,助力用户实现研发的流程化、数字化、智能化和平台化,提升产品研发效率和市场竞争力。

END

经纬恒润

致力于成为国际一流的汽车电子系统科技服务商!

87c69f46-0be0-11ec-a33d-000c2944909e.gif


原文标题:【明日在线研讨会预热】测试用例质量的重要性

文章出处:【微信公众号:经纬恒润】欢迎添加关注!文章转载请注明出处。

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

    关注

    3026

    文章

    7951

    浏览量

    167001
收藏 人收藏

    评论

    相关推荐

    2025电子设计与制造技术研讨会

    本帖最后由 jf_32813774 于 2024-12-26 10:02 编辑 电子工程师不可错过的技术研讨会,终于火热启动了! 为了让广大电子行业从业者共聚一堂,探索前沿科技,共话创新未来
    发表于 12-18 10:23

    LitePoint创新测试技术研讨会圆满结束

    LitePoint,全球先进的无线测试解决方案提供商,近期在上海和深圳成功举办了两场主题为“未来先行 智测致远”的创新测试技术研讨会。此次活动吸引了众多行业领军企业参与,共同探讨了无线测试
    的头像 发表于 11-15 15:30 328次阅读

    芯华章硬件专场研讨会顺利举办

    近日,2024芯华章验证技术研讨会——Hardware Verification Workshop圆满举办。
    的头像 发表于 11-14 13:57 237次阅读

    ROHM先进电源技术Nano系列研讨会回顾

    近日,“解决电源IC困扰的ROHM先进电源技术Nano系列”在线研讨会得到了大家的支持,再次谢谢大家的热情参与!
    的头像 发表于 11-13 14:02 239次阅读

    是德科技半导体芯片与无线通信测试技术研讨会完美收官

    近日,由是德科技(Keysight)主办的《半导体芯片与无线通信测试技术研讨会》在合肥高新区乐富强柏悦酒店成功举办。本次研讨会汇聚了来自半导体和无线通信领域的专家学者及行业技术人员,共同探讨前沿
    的头像 发表于 10-23 14:30 301次阅读

    集成电路测试人才培养主题研讨会圆满举行

    9月26日,由杭州集成电路创新中心主办的“集成电路测试人才培养主题研讨会”在人工智能小镇圆满召开。本次研讨会汇聚了政府领导、行业协会专家、企业精英及教育学者,共同探讨集成电路测试产业的
    的头像 发表于 09-27 15:22 299次阅读
    集成电路<b class='flag-5'>测试</b>人才培养主题<b class='flag-5'>研讨会</b>圆满举行

    9月12日云技术研讨会 | ECU电控软件开发及测试全流程解决方案

    本次研讨会,经纬恒润将结合业务团队多年来在软件开发和测试领域的工程实践经验,分享探讨基于AutoSar架构的应用软件开发、基于MBD开发的软件质量评估和优化、复杂场景下ECU性能压力测试
    的头像 发表于 09-26 14:18 1382次阅读
    9月12日云技术<b class='flag-5'>研讨会</b> | ECU电控软件开发及<b class='flag-5'>测试</b>全流程解决方案

    端到端测试用怎么写

    测试方法,旨在验证整个应用程序从前端到后端的流程是否能够按照预期工作。它涉及多个系统组件和接口的交互,确保业务流程的完整和正确。 二、编写端到端测试用
    的头像 发表于 09-20 10:29 452次阅读

    SGS受邀参加Ansys车规芯片功能安全和可靠研讨会

    近日,由Ansys主办的“Ansys车规芯片功能安全和可靠研讨会”在上海召开,作为国际公认的测试、检验和认证机构,SGS受邀出席并发表《车规可靠认证及功能安全》主题演讲,分享SGS
    的头像 发表于 07-27 11:37 727次阅读

    中科亿海微国产FPGA线上研讨会

    国产FPGA线上研讨会
    的头像 发表于 06-24 10:17 364次阅读
    中科亿海微国产FPGA线上<b class='flag-5'>研讨会</b>

    一次注射针刚性测试仪作用与重要性

    文章由济南三泉智能科技有限公司提供一次注射针刚性测试仪是用于评估一次注射针刚性性能的专用设备。一、作用与重要性确保注射针质量:注射针的刚
    的头像 发表于 06-04 15:32 328次阅读
    一次<b class='flag-5'>性</b>注射针刚性<b class='flag-5'>测试</b>仪作用与<b class='flag-5'>重要性</b>

    启扬智能受邀参加2024恩智浦技术巡回研讨会

    2024年5月9日,恩智浦技术日技术巡回研讨会—工业和物联网专场在杭州举行。此次研讨会汇聚了众多行业专家,聚焦前沿的赋能技术,覆盖UWB超宽带、智能工业、智能家居、医疗保健等热门应用。作为恩智浦
    的头像 发表于 05-10 08:00 465次阅读
    启扬智能受邀参加2024恩智浦技术巡回<b class='flag-5'>研讨会</b>

    2024 ETAP 电气系统数字孪生平台技术研讨会(深圳站)

    3月26日,由ETAP中国公司、施耐德电气共同主办的“ETAP电气系统数字孪生平台技术研讨会”在广东深圳的深圳湾万丽酒店隆重召开。积极响应从“新发展格局”到“新质生产力”,“靠创新进、靠创新强、靠创新
    发表于 03-30 13:06

    密封测试仪的应用与重要性

    随着科学技术的发展,密封测试仪在各个领域的应用越来越广泛,尤其是在制造业、食品药品行业、汽车行业、电子产品等领域。密封检测是保证产品质量和安全的关键。本文将深入探讨其主要应用领域及其在保证产品
    的头像 发表于 03-07 11:05 437次阅读
    密封<b class='flag-5'>测试</b>仪的应用与<b class='flag-5'>重要性</b>

    是德科技智能算力‘芯’技术研讨会回顾

    2023年12月20日,是德科技成功举办了智能算力‘芯’技术研讨会。此次研讨会由是德科技的行业市场经理周巍策划并主持,研讨会聚焦算力网络,算力芯片,通用接口等技术的发展趋势和测试挑战,
    的头像 发表于 01-17 09:34 727次阅读