1、ICS91.12025CCS L 7721辽宁省地方标准DB21/T 38912023软件适配验证技术规范Technical specification for software adaptation verification2023-12-30 发布2024-01-30 实施辽宁省市场监督管理局 发 布DB21/T 38912023I目次前言.III1 范围.12 规范性引用文件.13 术语和定义.14 缩略语.25 概述.25.1 角色与职责.25.2 适配验证流程.26 准备阶段.36.1 工作流程.36.2 主要任务.36.2.1 适配验证委托.36.2.2 信息提供.36.2.3 工
2、具确认.46.2.4 方案编制.47 适配环境确认阶段.47.1 工作流程.57.2 主要任务.57.2.1 适配环境分析.57.2.2 环境确认.58 适配验证实施阶段.58.1 工作流程.58.2 主要任务.68.2.1 适配测试.68.2.2 代码修改.68.2.3 测试验证.68.2.4 性能调优.79 报告编制阶段.89.1 工作流程.89.2 主要任务.89.2.1 问题分析.89.2.2 适配验证结论形成.9DB21/T 38912023II9.2.3适配验证报告编制.9附 录A(资料性)适配验证委托单.10附 录B(资料性)信息收集调研表模板.11附 录C(资料性)适配验证结论
3、判定规约.12DB21/T 38912023III前言本文件按照GB/T 1.12020标准化工作导则第1部分:标准化文件的结构和起草规则的规定起草。请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。本文件由辽宁省工业和信息化厅提出并归口。本文件起草单位:北方实验室(沈阳)股份有限公司、辽宁鲲鹏生态创新中心有限公司、辽宁省信息中心、沈阳市信息中心、辽宁省市场监管事务服务中心、辽宁省标准化研究院。本文件主要起草人:白杨、张健楠、李国良、袁洪朋、李海涛、刘强、刘文志、郝博、赵兴彦、隋大智、张建宇、王海涛、刘兴华、段晓祥、尧忠雍、张昊、王长亮、邱学思。本文件发布实施后,任何单
4、位和个人如有问题和意见建议,均可以通过来电和来函等方式进行反馈,我们将及时答复并认真处理,根据实际情况依法进行评估及复审。归口管理部门通讯地址:辽宁省工业和信息化厅(沈阳市皇姑区北陵大街45-2号),联系电话:024-86893258。标准起草单位通讯地址:沈阳市浑南新区三义街6-1号21层,联系电话:024-83785843。DB21/T 389120231软件适配验证技术规范1范围本文件规定了软件适配验证准备阶段、适配环境确认阶段、适配验证实施阶段、报告编制阶段的工作过程、工作任务及相关活动。本文件适用于信息技术应用创新等软件适配验证。注1:本文件若无特别说明,“软件”均指信息技术应用创新
5、软件。注2:本文件中“适配环境”均指信息技术应用创新环境。2规范性引用文件下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T 11457 信息技术 软件工程术语GB/T 25000.51-2016 系统与软件工程 系统与软件产品质量要求与评价(SQuaRE)第51部分:就绪可用软件产品(RUSP)的质量要求和测试细则3术语和定义GB/T 11457界定的以及下列术语和定义适用于本文件。3.1软件迁移software migration将基于某种指令集架构
6、开发的软件通过一系列的代码修改,部署到另一种指令集架构的环境中,使软件在新的环境中正常运行的过程。3.2X86 架构 x86architecture一类基于复杂指令集(CISC)的处理器架构。3.3SO 库shared object libraryLinux操作系统下的共享动态链接库。3.4流式软件streaming software编辑文件的软件。DB21/T 3891202323.5版式软件layout software呈现文件的工具。3.6签名软件signature software在版式软件上签名的软件。4缩略语下列缩略语适用于本文件。CPU:中央处理器(central process
7、ing unit)JDK:语言的软件开发工具包(java development kit)5概述5.1角色与职责软件迁移到适配环境应由委托单位统一组织,在软件开发单位的配合下,由适配验证机构具体实施。主要角色及职责包括:a)委托单位:软件的使用、责任单位,发起适配工作委托;b)软件开发单位:提供软件的源代码或安装包,在适配验证机构诊断出不兼容代码后,完成软件代码修改、数据迁移等工作;c)适配验证机构:提供软件适配验证服务的第三方机构。5.2适配验证流程适配验证实施过程包括四个阶段:准备阶段、适配环境确认阶段、适配验证实施阶段、报告编制阶段,委托单位、软件开发单位、适配验证机构之间沟通、配合应贯
8、穿整个适配验证过程。每一个阶段有相应的工作任务,如表 1 所示。表 1工作任务说明表适配验证阶段工作任务准备阶段适配验证委托信息提供工具确认方案编制适配环境确认阶段适配环境分析环境确认适配验证实施阶段适配测试代码修改测试验证性能调优DB21/T 389120233表 1工作任务说明表(续)适配验证阶段工作任务报告编制阶段问题分析适配验证结论形成适配验证报告编制6准备阶段6.1工作流程适配验证机构接受委托单位的委托,软件开发单位提供软件适配相关软、硬件信息,适配验收机构确认测试工具并编制适配方案。工作流程见图 1。图 1准备阶段工作流程6.2主要任务6.2.1适配验证委托适配验证机构在收到委托单
9、位适配验证委托单(参考附录 A)后,启动适配验证工作。任务描述:a)适配验证机构应成立适配验证项目组,委派具有经验的项目经理和技术人员负责适配验证相关工作;b)适配验证机构应组织委托单位、软件开发单位共同召开项目启动会,明确各方职责、权力和义务;c)适配验证机构应签署保密协议,规定适配验证机构保密方面的权利与义务。6.2.2信息提供适配验证机构调研相关软、硬件信息(参考附录 B),软件开发单位配合调研并提供相关信息,内容见图 2。任务描述:a)适配软件信息:软件源码/安装包、开发语言类型等;适配验证委托信息提供工具确认方案编制DB21/T 389120234b)软件环境信息:软件开发单位提供原
10、部署环境软件信息,包括操作系统、数据库、中间件、编译器等品牌、型号、版本信息;软件中涉及的其它开源软件、商业软件信息等。c)硬件环境信息:软件开发单位提供原部署环境硬件信息,包括服务器、CPU、内存、磁盘、网卡等。图 2信息收集内容6.2.3工具确认适配验证机构根据软、硬件信息情况,确认适配验证相关工具。任务描述:适配验证机构准备本次适配过程中用到的测评工具,包括代码迁移工具、兼容性测试工具、性能测试工具、性能分析工具等。6.2.4方案编制适配验证机构编制适配验证方案应通过内部审核,提交委托单位签字认可。适配验证方案内容应包括但不限于以下内容。任务描述:a)项目概述:应包括委托单位相关信息,软
11、件开发单位、适配验证机构职责,软件业务和数据的重要程度等;b)适配软件信息:应包括适配软件的业务概述、设计框架图、网络拓扑图等,尤其强调软件开发单位应提供软件源码/安装包、软件开发语言类型;c)测试依据:应包括适配验证参考标准和相关文档;d)适配环境分析:应包括软件环境信息、硬件环境信息相关内容,并确认适配环境;e)测试工具介绍:应包括工具确认相关内容;f)实施阶段:应包括适配测试、代码修改、测试验证、性能调优等内容;g)报告编制阶段:应包括问题分析、适配验证结论形成、适配验证报告编制等内容;h)人员安排:应包括项目组相关人员清单;i)进度安排:应包括各个阶段的相对时间安排和主要工作内容。7适
12、配环境确认阶段软件环境信息硬件环境信息服务器/CPU/内存/磁盘/网卡等操作系统/数据库品牌、型号、版本中间件/编译器品牌、型号、版本软件源码/安装包开源软件商业软件开发语言类型适配软件信息DB21/T 3891202357.1工作流程适配验证机构应根据收集到的软、硬件信息,分析软件迁移可行性;软件开发单位配合适配验证机构搭建、确认适配环境。工作流程见图 3。图 3适配环境确认阶段工作流程7.2主要任务7.2.1 适配环境分析适配验证机构分析软件原部署环境与适配环境的匹配度,搭建适配环境。任务描述:a)自研软件分析:分析软件自研部分开发语言、开发工具包、编译器等是否支持适配环境,如不支持需要进
13、行替换;b)开源软件分析:如适用,分析软件开源部分的版本是否支持适配环境,如不兼容需要进行替换;c)商用软件分析:如适用,分析软件中包含商用软件部分的版本是否支持适配环境,如不兼容需要进行替换;d)操作系统分析:分析软件原部署环境使用操作系统品牌、型号和版本等是否兼容适配环境,如不兼容则需替换;e)数据库分析:分析软件原使用的数据库品牌、型号和版本是否兼容适配环境,如不兼容则需替换;f)中间件分析:分析软件原使用的中间件品牌、型号和版本等是否支持适配环境,如不兼容则需替换。7.2.2 环境确认根据适配验证机构适配环境分析结果,委托单位和软件开发单位确认适配环境。8适配验证实施阶段8.1工作流程
14、软件开发单位应提供适配软件的源代码/安装包,适配验证机构进行适配测试,识别出不兼容部分代码,提出修改意见;软件开发单位应按照适配验证机构提供的修改意见修改代码,重新编译/打包后提供修改后源代码/安装包;适配验证机构应对修改后的软件进行测试验证并提出测试问题,软件开发单位进行修改;适配验证机构应分析软件性能瓶颈,汇总调优建议,软件开发单位应按照调优建议进行性能优化。工作流程见图 4。适配环境分析环境确认DB21/T 389120236图 4适配验证实施阶段工作流程8.2主要任务8.2.1 适配测试适配验证机构发起适配测试,对软件开发商提供的源代码/安装包进行测试诊断,识别不兼容指令集代码。任务描
15、述:a)工具扫描:通过代码迁移工具扫描源代码/安装包中不兼容部分代码,反馈软件开发单位修改;b)人工分析:通过人工分析报错信息识别源代码/安装包中不兼容部分内容代码,反馈软件开发单位修改。8.2.2 代码修改适配验证机构指导软件开发商进行代码修改,常见的软件开发语言有解释型语言、编译型语言,不同类型的代码修改方法参见示例。示例 1:以 JAVA 为例,解释型语言开发的软件代码修改步骤1)安装兼容版本的 JDK;2)通过工具扫描或人工分析,将软件中引用的 X86 架构的 SO 库替换为兼容适配环境的 SO 库;3)配置 JVM 参数。示例 2:以 C/C+为例,编译型语言开发的软件代码修改步骤1
16、)修改编译脚本和编译选项;2)将 X86 架构下的编译器自定义宏和用户自定义宏替换为适配环境的编译宏;3)将 X86 架构下的函数(builtin、内联汇编函数等)和代码替换为适配环境兼容的函数和代码。8.2.3 测试验证适配验证机构对代码修改后的软件进行兼容性测试、功能测试、性能效率测试等。任务描述:a)兼容性测试应充分考虑软件的共存性、互操作性、兼容性的依从性等质量特性,测试内容包括:适配测试代码修改测试验证性能调优DB21/T 3891202371)CPU 指令集兼容性适配:验证软件是否支持指定的 CPU 指令集,并能成功部署到适配环境中;2)操作系统兼容性适配:验证软件是否能在操作系统
17、环境或云虚拟化环境下正确部署、启动、运行、停止和卸载,且不与操作系统中的其他软件存在冲突;3)数据库兼容性适配:验证软件是否能在数据库环境下正确配置、启动、使用数据库相关功能,且不与使用数据库的其他软件存在冲突;4)中间件兼容性适配:验证软件是否能在中间件环境下正确部署、启动、运行、停止和卸载,且不与其他软件存在冲突;5)流式、版式、签名软件兼容性适配:验证软件能否与流、版、签软件兼容,在软件部署、启动、运行、停止和卸载阶段无异常情况;6)安全软件兼容性适配:验证软件是否能与安全软件兼容,在软件部署、启动、运行、停止和卸载阶段无异常情况;7)浏览器兼容性适配:验证软件能否与浏览器兼容,在软件部
18、署、启动、运行、停止和卸载阶段无异常情况;8)外设兼容性适配:验证软件能否与外设设备驱动兼容,在软件部署、启动、运行、停止和卸载阶段无异常情况。b)功能性测试应充分考虑软件的功能完备性、功能正确性、功能适合性、功能性的依从性等质量特性,测试内容包括:1)等价类划分:选择有限子集来“代表”所有可能的输入全集,应包括有效等价类和无效等价类,并给每个等价类赋予一个编号,所设计的测试用例应覆盖所有等价类;2)边界值分析:按照输入条件规定的取值范围、数据个数,选择等于边界值,或刚刚在边界范围内或刚刚超越范围外的值作为测试数据,或分别选择最大、最小及稍大于最大、稍小于最小的个数作为测试数据;3)错误推断法
19、:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例,列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。如:在测试时曾列出的许多在模块中常见的错误,产品测试中曾经发现的错误等;输入请求参数为百分号、问号等特殊符号的情况,不输入必填项等;4)场景测试:描述出程序的基本流及各项备选流,根据基本流和各项备选流生成不同的场景。对每一个场景生成相应的测试用例。然后对生成的所有测试用例进行评审,按照业务逻辑去掉多余的测试用例。c)性能效率测试应充分考虑软件的时间特性、资源利用性、容量、性能效率的依从性等质量特性,测试内容包括:1)基准测试:检查每个业务的基
20、准响应时间,在软件整体空闲(无额外进程运行并占用系统资源)时,单用户运行业务操作多次,获取该业务的平均响应时间,检查各业务的基础响应时间是否满足被测软件的效率要求;2)压力测试:通过性能测试工具虚拟并发用户数,模拟一定量的用户同时进行某项操作,验证软件相关性能指标情况;3)负载测试:不限制软件的运行资源,测试软件的数据吞吐量上限,以发现设计上的错误或验证软件的负载能力;使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。8.2.4 性能调优适配验证机构通过工具和人工分析,识别出软件性能瓶颈并提出调优建议,由软件开发单位对软、DB21/T 389
21、120238硬件进行调优。性能调优常见方法见示例。示例 1:a)CPU/内存调优;修改 CPU 预取开关、减少时钟中断、调整线程并发数、NUMA 优化、调整内存页的大小、修改内存刷新速率等;b)磁盘 IO 调优;调整脏数据刷新策略、磁盘文件预读参数、磁盘 IO 调度方式、文件系统参数等;c)网卡调优:网络 NUMA 绑核、中断聚合参数设置、epoll 机制、开启 TSO/LRO 等;d)程序调优:优化编译选项、减少内存拷贝、锁优化、软件预取、循环优化、JVM 性能优化等。9报告编制阶段9.1工作流程适配验证机构应对现场测评获得的结果(或称测评证据)进行汇总分析,形成适配验证结论,并编制适配验证
22、报告,提交委托单位,工作流程见图 5。图 5报告编制阶段工作流程9.2主要任务9.2.1问题分析根据单项结果判定,分析问题可能对被测软件造成的影响。问题描述:a)严重问题造成的影响:1)程序出现可重现无法运行/无响应/崩溃/模块无法启动/异常退出;2)存在非常严重兼容性问题导致系统部署报错等;3)性能存在非常严重问题,可导致功能不可用。b)重大问题造成的影响:1)程序实现不正确或不充分;2)严重的页面样式问题;3)程序可基本运行但主要功能模块运行异常存在严重的兼容性问题导致系统运行后报错等;4)性能存在严重问题,可导致部分功能不可用或严重影响用户体验。c)一般问题造成的影响:1)兼容性导致的主
23、要功能问题/样式问题;2)操作界面 UI 类/提示信息错误;3)浏览器、流式、版式、签名软件、外设等兼容性问题;4)性能相较于软件迁移前环境降低 10%-50%以上。问题分析适配验证结论形成适配验证报告编制DB21/T 389120239d)轻微问题造成的影响:1)一些非主要的样式问题等;2)不影响系统正常使用的浏览器、流式、版式、签名软件、外设等兼容性问题;3)性能相较于软件迁移前环境降低 10%以下。9.2.2适配验证结论形成适配验证机构应通过问题分析,适配验证结论判定规约(参考附录 C),形成适配验证结论。适配验证结论分为两种情况。a)测试过程中发现的严重问题、重大问题、一般问题均已关闭
24、,则测试结论判定为“通过”。b)测试过程中存在未关闭的严重问题、重大问题、一般问题,则测试结论判定为“不通过”。9.2.3适配验证报告编制适配验证机构编制适配验证报告,适配验证报告应通过适配验证机构内部审核、批准后发布,提交委托单位。适配验证报告应包括但不限于以下内容。任务描述:a)测试结论:应包括测试发现问题数量,测试是否“通过”等描述;b)项目概述:应包括委托单位相关信息,软件开发单位、适配验证机构职责,软件业务和数据的重要程度等;c)测试依据:应包括适配验证参考标准和相关文档;d)测试方法:应包括兼容性测试方法、功能测试方法、性能效率测试方法等;e)测试环境和工具:应包括软件原部署环境和
25、迁移目标部署环境、测试工具等;f)测试内容:应包括功能性、兼容性、性能效率测试内容等;g)测试结果:应包括功能性、兼容性、性能效率测试用例执行结果等;h)问题严重性分级表:应包括问题编号、问题级别、问题描述等。DB21/T 3891202310附 录A(资料性)适配验证委托单模板A.1适配验证委托单编号:-WTD-系统名称版本号委托单位名称行 业地址邮编联 系 人联系人电话选择资源类型云资源云服务器裸金属服务器其它()本地硬件资源信创终端物理服务器其它()软件栈类型应用类型B/SC/S其它()开发语言.NETJAVAJavaScriptCC+C#VBPBDelphiPHPRubyPerlPyt
26、hon其它()操作系统及版本数据库及版本中间件及版本其他依赖服务器(1)配置信息CPU内存硬盘网卡服务器(2-n)配置信息CPU内存硬盘网卡委托说明:XXXXX负责人(签章):年月日DB21/T 3891202311附 录B(资料性)信息收集调研表B.1信息收集调研表模板序号基本信息原硬件信息迁移目标硬件信息原软件信息迁移目标软件信息备注系统名称版本开发语言公司名称服务器CPU内存磁盘服务器CPU内存磁盘软件类型/架构数据库(含版本号)中间件(含版本号)操作系统(含版本号)编译器(含版本号)数据库(含版本号)中间件(含版本号)操作系统(含版本号)编译器(含版本号)1服务器1服务器12服务器2服
27、务器2N服务器N服务器NDB21/T 3891202312附 录C(资料性)适配验证结论判定规约C.1问题等级说明每个案例在执行过程中,可能会发现一到多个问题。问题分为四个等级,如下表所示:表 C.1问题等级判定条件说明问题级别判定条件严重程序出现可重现无法运行/无响应/崩溃/模块无法启动/异常退出;存在非常严重兼容性问题导致系统部署报错等;性能存在非常严重问题,可导致功能不可用。重大程序实现不正确或不充分;严重的页面样式问题;程序可基本运行但主要功能模块运行异常存在严重的兼容性问题导致系统运行后报错等;性能存在严重问题,可导致部分功能不可用或严重影响用户体验。一般兼容性导致的主要功能问题/样
28、式问题;操作界面UI类/提示信息错误;浏览器、流式、版式、签名软件、外设等兼容性问题;性能相较于软件迁移前环境降低10%-50%以上。轻微一些非主要的样式问题;影响系统正常使用的浏览器、流式、版式、签名软件、外设等兼容性问题;性能相较于软件迁移前环境降低10%以下。C.2软件迁移结论判定规约C.2.1适配验证结论判定“通过”规约适配验证过程中发现的严重、重大、一般级问题均已关闭,则适配验证结论判定为“通过”。C.2.2适配验证结论判定“不通过”规约适配验证过程中存在未关闭的严重、重大、一般级问题,则适配验证结论判定为“不通过”。DB21/T 3891202313参考文献1 靳国杰,张戈,CPU 通识课,人民邮电出版社,2022 年 4 月2 沈立,王苏峰,肖晓强,计算机组成原理,机械工业出版社,2021 年 12 月3 戴志涛,刘健培,鲲鹏处理器架构与编程,清华大学出版社,2020 年 9 月