• 214.82 KB
  • 10页

《家用和类似用途电器-软件质量认证技术规范》

  • 10页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'《家用和类似用途电器-软件质量认证技术规范》编制说明(申请备案稿)中国质量认证中心2014.9.161 1.背景1.1家电软件行业的现状和发展趋势目前,我国家电行业软件多数还处于手工作坊式的软件开发模式,普遍存在需求定义不清、设计混乱,文档缺失,编码无规范,变更不受控,软件开发人员也是软件测试人员等问题,软件相当于“个人艺术创作”,可读性、可测试性、可维护性、可移植性和可重用性差,并且由于缺乏全面的测试,软件的正确性、可靠性和完整性也无法得到充分的保证。计算机、信息技术的飞速发展带动家电领域嵌入式软件的规模和复杂性成倍增长,除传统的电气、电磁、机械及环境等影响产品质量外,软件质量已成为重要的影响因素,并逐渐成为区分产品质量优劣的关键指标之一。随着家电信息化程度提高,软件质量已是企业生存发展的根本,是其在竞争中脱颖而出的优势所在,所以越来越多的企业资金投入从研发向质量保证倾斜。大型的软件企业除了研发团队之外,都建立了专门的质量管理团队、质量保证流程,开展了一系列质量保证工作等。1.2家电软件质量对家电产品的影响分析在国民经济的各个领域,由于软件缺乏充分的测试,软件缺陷带来危害的案例屡见不鲜:中国银联业务中断6小时致使全国数百万笔跨行交易无法实现,造成巨大经济损失;列车信号控制系统(CTCS)信号故障,造成甬温线特大铁路交通事故;沃尔沃公司因软件问题召回130万辆轿车,造成巨额经济损失;阿丽亚娜-5火箭升空十几秒因软件问题发生爆炸,造成发射失败导致欧洲整个航天计划推迟;美国爱国者导弹防御系统由于时钟累计软件缺陷,导致系统的跟踪系统不准确,最后造成严重后果;丹佛新国际机场由于在包裹处理系统中存在一个严重的程序缺陷,导致行李箱被绞,结果机场启用推迟16个月,使得投资比预算超支10亿美元。在家电领域,同样存在软件缺陷造成重大经济损失的案例:XX空调企业曾经OEM某国际知名品牌,由于两行软件代码逻辑错误,导致标的金额高达3亿的产品面临退货的危险,尽管及时采取了补救措施,但仍造成了300万的高额损失;XX洁身器产品加热系统控制软件代码逻辑错误,导致用户被烫伤,赔偿金额高达数千万;XX洗衣机的干衣系统由于软件控制系统失效,导致衣物着火,造成用户经济财产损失。2 影响家电产品质量的因素很多,既包括硬件也包括软件。随着硬件工艺水平的提高,硬件影响逐渐明晰;相比之下随着家电产品智能化水平的不断提高,软件应用越来越多、越来越复杂,软件对家电产品质量的影响尚缺乏有效的评估,人们习惯于简单地将故障归结于电子控制器的硬件,而通过进一步细致的分析发现其中相当多的故障并非全部由硬件缺陷所致。因此,提高家电产品质量,不能仅从硬件角度出发,还应该把软件作为独立部件来考核,或者是将硬件和软件结合来考虑,目前航空航天、轨道交通、汽车、医疗器械等领域也均把软件作为独立的部件来考核其正确性、可靠性,并评价其质量,以此为基础不断进行改进,不断提升软件及系统质量。为了能促家电软件行业以及我国整个家电行业转型升级,适应产品发展的市场要求,解决制造商和消费者共同关心“深层质量”等的问题,在对家电软件质量方面提出评价项目、技术要求和评价方法,并正式列入2014年中国质量认证中心新项目计划。2.工作过程综述本技术规范由中国质量认证中心(CQC)提出并归口。2.1成立工作组2013年12月项目正式启动,2014年1月正式组成技术规范起草小组,负责技术规范的具体制定工作。技术规范主要起草单位:中国质量认证中心、中国家用电器研究院、航天中认软件测评科技(北京)有限责任公司。组长单位:中国质量认证中心组员单位:中国家用电器研究院、航天中认软件测评科技(北京)有限责任公司、青岛海尔股份有限公司、青岛海尔滚筒洗衣机有限公司、青岛海尔空调器有限总公司、青岛经济技术开发区海尔热水器有限公司、广东美的制冷设备有限公司、无锡小天鹅股份有限公司、广东美的生活电器制造有限公司、四川长虹电器股份有限公司、珠海格力电器股份有限公司、合肥荣事达三洋电器股份有限公司、海信(山东)空调有限公司、苏州三星电子有限公司、博西华电器(江苏)有限公司、杭州松下家用电器有限公司、九阳股份有限公司、南京乐金3 熊猫电器有限公司、艾欧史密斯(中国)热水器有限公司。2.2技术规范制定原则为使技术规范能够满足科学、规范地开展认证工作的需要,客观反映我国家电软件质量的实际水平,引导家电软件行业发展,在技术规范制定过程中,我们遵循了如下几个原则:l符合国家的有关政策要求;l与已颁布实施的相关标准相协调;l充分考虑我国智能家电生产企业的发展水平。2.3起草过程说明2014年2月在北京召开了起草组第一次会议,确定了技术规范框架、制定原则、范围、评价方法等内容,对家电软件质量评价指标和测试方法进行重点研讨;2014年5月初在北京召开了起草组第二次会议,形成征求意见稿并向全国17家家电企业及2家科研及检测机构征求意见,对收集的意见和建议进行研究分析,对技术规范进行再次修改,形成了《家用和类似用途电器软件质量认证技术规范》(送审稿)。3.技术规范主要内容说明3.1范围本技术规范规定了家用和类似用途电器产品中所使用软件的质量测评项目、技术要求和测评方法。本技术规范适用于所有家用和类似用途电器产品中使用的软件。本技术规范所涉及的软件质量评价项目不涉及功能项的评价,因此适用于所有家用和类似用途电器产品中使用的软件。4 3.2规范性引用文件技术规范编制参考了以下标准:下列文件中的条款通过本规范的引用而成为本规范的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误表的内容)或修订版均不适用于本规范。然而,鼓励根据本规范达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本规范。GB/T11457-2006信息技术软件工程术语3.3定义除下述术语和定义外,GB/T11457-2006的术语和定义适用于本技术规范。3.1扇入Fan-In在结构图中,模块的直接上级模块个数。3.2扇出Fan-Out在结构图中,模块的直接下级模块个数。3.3模块数NumberofModules源代码程序中具有模块源程序代码的模块总数。3.4McCabe圈复杂度McCabeCyclomaticComplexity一种代码复杂度的衡量标准,用来衡量一个模块判定结构的复杂程度,数量上表现为独立现行路径条数,即合理的预防错误所需测试的最少路径条数。3.4评测项目和技术要求4.1软件模块规模要求软件模块的平均行数应不大于200行。软件模块规模大于200行的比例应不大于10%。4.2软件模块扇入扇出要求软件的设计应使软件模块在逻辑上构成分层次的结构,在不同的层次上可以有不同的扇入扇出数:5 ——应使高层模块具有较高的扇出,低层模块具有较高的扇入;——为避免某些程序代码的重复,应适当增加模块的扇入;——模块的扇出应不大于10;——模块的扇出超过10的比例应不大于20%。4.3软件模块结构要求除中断情形外,软件模块应使用单入口和单出口的控制结构。4.4软件模块McCabe圈复杂度要求软件模块的平均McCabe圈复杂度应不大于10。软件模块的最大McCabe圈复杂度应不大于80。软件模块的McCabe圈复杂度大于10但不大于40的比例应不大于30%,大于40的比例应不大于10%。4.5软件注释要求4.5.1注释的一般要求为提高可读性,软件源程序中应有足够详细的注释,总注释率不应小于源程序总行数的20%。模块注释率小于20%的比例应不大于30%。4.5.2模块头注释要求在每个模块的可执行代码前,应用一段文字注释说明如下内容:——模块名注释:标识模块的名称、版本号、入口点、程序开发者姓名、单位和时间,如有修改,还应标识修改者姓名、单位和时间;——模块功能注释:说明模块的用途和功能;——输入输出注释:说明模块的所有输入输出;——参数注释:说明模块所需全部参数的名称、数据类型、大小、物理单位和用途,说明模块中使用的全局变量的名称、数据类型、大小、物理单位及用途,说明模块的返回值;——调用注释:列出模块中调用的全部模块名和调用该模块的全部模块名;——限制注释:列出限制模块运行特性的全部特殊因素;——异常结束注释:列出所有异常返回条件及动作;——方法注释:说明该模块为实现其功能所使用的方法或对应的文档名称;——外部环境及资源注释:说明该模块所依赖的外部运行环境及所用资源。4.5.3模块内注释要求在模块中,至少应有对有条件改变数据值或执行顺序的语句(即,分支转移语句、输入输出语句、循环语句、调用语句)进行注释,对这些语句的注释不得扰乱模块的清晰性,这些注释也应符合程序的缩进格式。——分支转移语句:支出执行动作的理由;——输入输出语句:说明所处理的文件或记录的性质;——循环语句:说明所执行动作的理由及出口条件;——调用语句:说明调用过程的理由及被调用模块的功能。4.5.4安全关键内容注释要求在模块中,对关键的语句标号和数据名必须有准确的引用信息,并确定所有输入值和输6 出值的允许和预期范围;对计时器的值的注释必须包含计时功能的描述、其值及其基本原理或参考文档。4.6软件编程规范要求软件C语言源程序应符合下述编程规范要求:——禁止重新定义保留字;——字符型变量必须明确是有符号还是无符号;——参数必须使用类型声明;——禁止过程参数只有类型没有标识符;——禁止使用嵌套的注释;——在for循环内禁止对循环控制变量进行强行修改;——禁止对指针变量赋值类型不匹配;——避免使用不必要的类型转换;——变量使用前必须被赋过值,禁止只是条件赋值;——禁止对实数类型的量做是否相等的比较;——禁止逻辑判别的表达式不是逻辑表达式;——禁止对无符号数进行大于等于零或小于零的比较;——逻辑表达式应采用显式的表达;——禁止局部变量与全局变量同名;——禁止形参名与全局变量名同名;——禁止存在未使用的多余变量;——过程体必须用大括号括起来;——#include与文件名之间必须有空格;——逻辑表达式的连接必须使用括号;——在if…elseif语句中必须使用else分支;——在switch语句中必须有default语句;——禁止switch的case语句不是由break终止;——禁止switch的case语句中无任何可执行语句;——禁止指针的指针超过两级;——谨慎对指针进行代数运算;——禁止在条件判别表达式中使用赋值语句;——禁止在布尔条件表达式中使用赋值语句;——禁止对有符号类型使用位运算;——有符号数的转换超出变量类型范围;——数组的使用必须保证不会出现越界;——禁止对非0或1的常数取!运算;——禁止在布尔条件表达式中使用位操作;——禁止对有符号类型进行移位运算;——禁止给无符号变量赋负值;——有符号类型的位长度必须大于等于两位;——位的定义必须显式定义unsigned或signed;——避免由于设计的原因导致某些代码不能执行;——函数必须声明原型;——函数参数的使用必须与类型说明一致;7 ——禁止对函数输入参数赋值;——使用的八进制数必须加以注释;——避免使用空语句;——函数必须有返回语句;——禁止void类型的过程中的return语句带有返回值;——有返回值的函数中return必须带有返回值;——禁止使用GOTO语句。软件源程序编程规则千行违背率不应超过1/KLOC。4.7软件避免缺陷异常的要求软件源程序应避免下述缺陷或异常:——除数在运算前未进行为零的异常判断,导致除数为零的情况;——数组下标大于或等于数组大小,导致引用数据错误的情况;——数据类型超过了计算机字长的界限而出现的数据溢出情况,例如有符号数据的运算超出其取值范围,造成数据值改变的情况;——定义的指针在使用前未指向任何存储空间,造成引用值错误。评测项目和技术指标确定依据本技术规范参考了GJB/Z141《军用软件测试指南》以及GJB/Z102《软件可靠性和安全性设计准则》中的部分测试项目,技术指标的确定除了与行业内的一般做法保持一致外,根据测试海尔、美的等制造企业的软件结果进行一定的调整。认证主要评价指标与国内家电生产企业和相关产品质量检验部门共同研究、协商,经过数次修改、完善,最终获得了广泛认可与肯定,相关指标基本符合目前我国家电软件行业实际情况,即实现了与现行家电软件质量发展的情况相适应,也达到了推动家电软件质量进一步提升的目的。3.5评价方法5.1软件模块规模要求的测评方法使用软件测试工具,通过对软件源程序的静态分析来确定程序是否满足4.1的要求。需要统计分析的源程序信息包括:——模块数,记为A;——各模块的代码行数,记为Bi(i=1,2,……n,n∈N);——大于200行的模块数,记为B。软件模块的平均行数,记为,通过公式(1)计算:∑=(1)根据Bi统计得到B,则软件模块规模大于200行的比例,记为,通过公式(2)计算:8 =×100%(2)5.2软件模块扇入扇出要求的测评方法使用软件测试工具,通过对软件源程序的静态分析来确定程序是否满足4.2的要求。需要统计分析的源程序信息包括:——模块数,记为A;——各模块的扇出,记为Ci(i=1,2,……n,n∈N);——模块的扇出超过10的模块数,记为C。根据Ci统计得到C,则模块的扇出超过10的比例,记为,通过公式(3)计算:=×100%(3)5.3软件模块结构要求的测评方法使用软件测试工具,通过对软件源程序的静态分析,并结合代码审查来确定程序是否满足4.3的要求。5.4软件模块McCabe圈复杂度要求的测评方法使用软件测试工具,通过对软件源程序的静态分析来确定程序是否满足4.4的要求。需要统计分析的源程序信息包括:——模块数,记为A;——各模块的McCabe圈复杂度,记为Di(i=1,2,……n,n∈N);——McCabe圈复杂度大于10但不大于40的模块数,记为E;——McCabe圈复杂度大于40的的模块数,记为F。软件模块的平均McCabe圈复杂度,记为,通过公式(4)计算:∑=(4)根据Di统计得到E,则McCabe圈复杂度大于10但不大于40的比例,记为,通过公式(5)计算:=×100%(5)根据Di统计得到F,则McCabe圈复杂度大于40的比例,记为,通过公式(6)计算:=×100%(6)5.5软件注释要求的测评方法5.5.1软件注释率要求的测评方法使用软件测试工具,通过对软件源程序的静态分析来确定程序是否满足4.5.1的要求。需要统计分析的源程序信息包括:9 ——模块数,记为A;——总代码行数,记为G;——总注释行数,记为H;——各模块的代码行数,记为Ii(i=1,2,……n,n∈N);——各模块的注释行数,记为Ji(i=1,2,……n,n∈N);——模块注释率小于20%的模块数,记为K。软件源程序的总注释率,记为,通过公式(7)计算:=×100%(7)软件源程序各模块注释率,记为,通过公式(8)计算:=×100%(8)根据统计得到K,则模块注释率小于20%的比例,记为,通过公式(9)计算:=×100%(9)5.5.2软件注释要求符合性的测评方法通过对软件源程序的代码审查确定来确定程序是否满足4.5.2、4.5.3及4.5.4的要求。5.6软件编程规范要求的测评方法使用能覆盖4.6所列规则的软件测试工具结合代码审查,通过对软件源程序的静态分析来确定程序是否满足4.6的要求。需要统计分析的源程序信息包括:——总代码行数,记为G;——规则违背数,记为L。软件源程序编程规则千行违背率,记为,通过公式(10)计算:=×1000(10)5.7软件避免缺陷异常要求的测评方法使用能覆盖4.7所列缺陷或异常情况的软件测试工具结合代码审查,通过对软件源程序的代码分析来确定程序是否满足4.7的要求。评价方法确定依据在软件质量方面,本技术规范参考了GJB/Z141《军用软件测试指南》以及GJB/Z102《软件可靠性和安全性设计准则》等标准中部分方法,这些方法均是成熟的方法。10'