《T_CI 083-2023 无源码的白盒化测试标准.docx》由会员分享,可在线阅读,更多相关《T_CI 083-2023 无源码的白盒化测试标准.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ICS35.040CCSL72团体标准T/CI083-2023无源码的白盒化测试标准Standardforglass-boxtestingwithoutsourcecode2023-6-26发布2023-6-26实施中国国际科技促进会发布目次前言.II1范围.12规范性引用文件.13术语和定义.14概述.25测试程序.26测试条件.47测试类型.58测试结果及报告.6I前言本文件按照GB/T1.12020标准化工作导则第1部分:标准化文件的结构和起草规则的规定起草。请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。本文件由华南理工大学提出。本文件由中国国际科技促进会归口
2、。本文件起草单位:华南理工大学、微科智检(佛山市)科技有限公司、北京理工大学、汕头大学、广东工业大学、北明软件有限公司、广东泰一高新技术发展有限公司、惠州市德赛西威汽车电子股份有限公司、惠州TCL云创科技有限公司。本文件主要起草人:黄翰、曹捷、刘方青、向毅、徐杨、陶然、郝志峰、蔡瑞初、黄山。本文件是首次发布。II无源码的白盒化测试标准1范围本文件规定了无源码的白盒化测试标准的测试程序、测试条件、测试类型、测试结果及报告等要求。本文件适用于软件系统的无源码的白盒化测试,可供测评机构在开展无源码的白盒化测试工作时参考,为相关机构强化测评能力、健全技术手段提供指引。2规范性引用文件下列文件中的内容通
3、过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T11457-2006信息技术软件工程术语3术语和定义下列术语和定义适用于本文件。3.1黑盒程序black-boxbinaryprogram可执行的无源代码二进制程序文件。3.2黑盒blackbox一个系统或布局,它的输入、输出和通用功能是已知的,但它的内容或实现是未知的或无关的。来源:GB/T11457-2006,定义2.1413.3黑盒测试black-boxtesting忽略系统或部件的内部机制只集中于响应所选择输入和执
4、行条件产生的输出的一种测试。来源:GB/T11457-2006,定义2.1423.4白盒glassbox一个系统或布局,它的实现内容是已知的。来源:GB/T11457-2006,定义2.6773.5白盒测试glass-boxtesting侧重于系统或部件内部机制的测试。类型包括分支测试、路径测试、语句测试。来源:GB/T11457-2006,定义2.16043.6插桩instrument在软件或系统测试中,将某些器件或指令安装或插入至硬件或软件中,以监控系统或部件的操作。来源:GB/T11457-2006,定义2.7813.7程序插桩programinstrumentation1插入到计算机程
5、序中的探头。如指令或断言,以利于执行监控、正确性证明、资源监控或其他活动。来源:GB/T11457-2006,定义2.12353.8仿真simulation一个模型,当提供一组控制输入时,他的行为或操作像一给定的系统。来源:GB/T11457-2006,定义2.14533.9傅里叶神经网络fourierneuralnetwork以一组傅立叶基函数作为三层前向神经网络各隐含层单元的输出特性,再以其加权和作为网络的非线性输出,由此所构成的一种神经网络模型。3.10训练集trainset在机器学习中,一般将样本分成独立的三部分:训练集、验证集和测试集。其中,训练集用于建立模型。3.11可执行程序ex
6、ecutableprogram可在操作系统存储空间中浮动定位的二进制可执行程序。它可以加载到内存中,由操作系统加载并执行。4概述无源码的白盒化测试通过执行黑盒程序内部机制还原、黑盒程序插桩、黑盒程序白盒化测试执行和白盒化测试总结四个过程,可以发现黑盒程序中存在的逻辑错误、软件缺陷及恶意注入。无源码的白盒化测试可用于软件开发商自行软件质量风险评估及第三方质量风险评估,在软件正式交付用户使用前对软件进行质量风险分析、判定等。同时,对正在使用中的软件可能出现的风险进行评估,并针对已发生问题的软件进行责任判定。本标准规定了无源码的白盒化测试的操作规范,具备技术通用性及一致性,可以更好地进行软件发布前和
7、使用中的质量风险评估,以及出现事故后的软件质量风险的问题鉴定,能给软件开发方及第三方提供科学有效的操作规范和指南。5测试程序5.1通则无源码的白盒化测试过程包括黑盒程序内部机制还原、黑盒程序插桩、黑盒程序白盒化测试执行和白盒化测试总结四个过程。图1给出了无源码的白盒化测试过程。2图1无源码的白盒化测试过程5.2黑盒程序内部机制还原黑盒程序内部机制还原包括下列活动:a)获取黑盒程序对应的输入和输出形成训练集。b)根据获取的黑盒程序所对应的训练集来训练傅里叶网络,得到黑盒程序内部机制还原的仿真模型。c)在训练的初始阶段需要对训练集的输入和输出做二进制处理,得到符合傅里叶网络输入的数据。根据黑盒程序
8、的输出,需要对仿真模型的二进制输出做还原处理,得到符合黑盒程序的输出。5.3黑盒程序插桩黑盒程序插桩通过插入各种类型的桩节点,动态地监测程序执行的整个过程。插桩的过程如图2所示,相关的活动包括:a)读取黑盒程序内部机制还原后的中间程序信息。b)解析黑盒程序的控制流程图。c)在程序中的分支前后插入桩节点。桩节点不改变程序原有功能,只用于记录程序运行时的执行情况。d)输出插桩后的可执行文件。执行该插桩后的程序,得到响应的桩节点序列即为程序执行过程的路径信息。3图2黑盒程序插桩过程5.4黑盒程序白盒化测试执行黑盒程序白盒化测试执行包括下列活动:a)自动部署测试环境。b)根据被测软件的需求设定测试目标
9、,如可要求测试用例满足语句覆盖、分支覆盖或路径覆盖等要求。c)设定算法并自动生成测试用例。d)根据测试约束,在测试用例用中自动进行断言检测。e)输出符合测试目标的测试用例集。f)继续执行缺陷检测、二进制程序对比功能。5.5白盒化测试总结白盒化测试总结包括下列活动:a)整理白盒化测试结果。白盒化测试结果应根据不同的测试类型进行综合分析,测试类型包括单元测试、缺陷检测、二进制程序对比。采用数学和统计方法进行数据综合分析考虑。b)编写黑盒程序白盒化测试报告,内容应包括测试结果分析、测试用例统计、测试覆盖率统计以及对软件的评价和建议。c)根据测试结果和测试报告内容,输出风险分析报告单,内容应包括风险等
10、级、风险概率以及风险修复建议。6测试条件6.1通则无源码白盒化测试条件应考虑环境、数据、输入输出参数等因素。6.2环境针对不同类型的黑盒软件,应考虑测试环境对白盒化测试的影响,推荐使用系统或软件的实际生产环境作为白盒化测试环境。在进行白盒化测试环境的规划和设计时,应考虑以下因素:4a)独立性:测试环境应使用全新纯净的虚拟化容器,以防止由于与其他系统或软件产生冲突而造成测试结果失真。b)可控制性:测试环境中的所有设备和资源应可被监控或控制。c)性能:测试环境应支持黑盒仿真算法以及用例自动生成算法的性能需求。6.3数据无源码的白盒化测试所需数据:a)测试数据应根据实际需求变更,与软件的业务需求相匹
11、配。b)无源码被测试程序的接口已知、可调用。6.4输入输出参数无源码的白盒化测试所需输入输出参数:a)无源码被测试程序的输入输出参数清晰、无隐藏参数;输出参数可获取。b)无源码被测试程序的输入参数维度可控(10维以内)。7测试类型7.1应用场景无源码的白盒化测试技术主要能够应用于第三方的黑盒程序缺陷检测。白盒化技术是基于生成大量复杂黑盒系统的输入-输出数据进行仿真的,在此过程中会生成大量的测试用例,相关技术会记录用例的运行状态与日志,若输入测试用例触发了软件存在的缺陷漏洞,本技术能够将触发用例与对应软件的代码位置返回,方便软件开发人员对软件潜在缺陷进行修复。同时,如果存在病毒注入的程序可能对软
12、件系统造成巨大的破坏,而白盒化测试技术具备对程序的版本对比功能。对于注入病毒的程序,白盒化测试技术能够检测出异常程序的存在,并提供相应修改代码段信息。7.2基本功能7.2.1应能够对程序的输入输出进行抓取。7.2.2软件在使用过程中存在的任何问题都叫软件缺陷。7.2.3应在最低的功能/参数上进行缺陷检测。7.2.4缺陷检测应能检测出程序的内存泄漏、功能错误、程序闪退等问题。7.2.5缺陷检测过后,机器状态保持不变。7.2.6应保证在超时限制内完成缺陷检测,超时则自动终止。7.2.7缺陷检测应产生可重复的、一致的结果。7.2.8应形成可阅读的缺陷检测报告。7.2.9应提供二进制软件对比报告。7.
13、2.10二进制软件对比应明确指出不同点。7.3功能性验证57.3.1应验证是否有不正确或遗漏的功能、功能实现是否满足用户需求和系统设计的隐藏需求,并验证业务流程是否正确且合理。7.3.2应测试软件在极限值情况下整体产品表现,具体包括以下项目:a)软件本身支持的边界值(最大值和最小值)的测试,如字符串的最大/小长度、存储空间或条数的大小等;b)整体产品的极限值测试,比如软件各功能在宿主设备内存、CPU等达到极限值时的表现。7.3.3应对软件进行缺陷检测,包括单元测试和整个软件的缺陷检测。具体包括以下项目:a)模块功能的缺陷,包括内存泄露、输出错误等问题。b)整个程序的缺陷,包括内存泄露、输出错误
14、等问题。c)软件未实现需求说明书中明确要求的功能。d)软件出现了需求说明书中指明不应该出现的错误。e)软件实现的功能超出需求说明书指明的范围。f)软件未实现需求说明书中虽未明确指明但应该实现的要求。g)软件难以理解,不易使用,运行缓慢,用户体验不好。7.3.4应可对注入病毒前后程序版本进行对比。具体包括以下项目:a)检测出异常程序的存在。b)识别出对比程序的不同之处。c)提供程序对比报告。8测试结果及报告完成无源码的白盒化测试后应出具相应的白盒化测试报告,白盒化测试报告应包括下列内容:a)白盒化测试报告表;b)总检汇总分析;c)被测软件信息;d)测试环境信息;e)测试用例执行情况统计表;f)测试附件信息。其中,白盒化测试报告表为整份测试报告的汇总信息表。总检汇总分析为所有无源码的白盒化测试类型的测试结果汇总表,包括每个白盒化测试类型的评价等级、关键信息、错误描述和整体测试的综述小结。被测软件信息主要描述被测软件的各项关键信息数据。测试环境信息主要描述本次白盒化测试所使用的测试环境的各项关键信息,方便后续对测试结果进行复现与确定,内容应区分软件环境与硬件环境。测试用例执行情况统计表主要描述不同白盒化测试类型的用例执行情况。另外,软件附件信息主要描述不同白盒化测试类型的具体测6试过程信息和结果信息,应包含的内容有:单元测试结果附件、缺陷检测结果附件和二进制程序对比附件。7