检测和校准实验室能力认可准则
在软件检测领域的应用说明
Guidance on theApplication ofTesting andCalibration Laboratories CompetenceAccreditation Criteriain the Field of SoftwareTesting
送审稿
2019-12-02
前 言
本文件由中国合格评定国家认可委员会(CNAS)制定,是结合软件测试的特点对CNAS-CL01:2018《检测和校准实验室能力认可准则》的部分条款要求作进一步的说明,并不增加或减少该准则的要求。
本文件与CNAS-CL01:2018《检测和校准实验室能力认可准则》同时使用。
在结构编排上,本文件章、节的条款号和条款名称均采用CNAS-CL01:2018
中章、节条款号和名称,对 CNAS-CL01:2018 应用说明的具体内容在对应条款后 给出。
本文件第3章“术语和定义”中,增加了CNAS-CL01:2018之外的术语,故术语和定义的排列序号与 CNAS-CL01:2018不对应。
本文件代替:CNAS-CL01-A019:2018《检测和校准实验室能力认可准则在软件检测领域的应用说明》。
1.2 本文件适用于所有从事软件测试的实验室。
检测和校准实验室认可准则(CNAS-CL01:2018)(简称《准则》)
软件工程术语(GB/T 11457:2006)
GB/T 11457 中确立的术语和定义适用于本文件。以下术语和定义也适用:
3.1测试输入项 requisite things fortesting
完成软件测试任务需要有关方提供的测试条件。如被测试软件、测试依据和标准。
3.2测试技术文档 test techniquedocument
软件测试过程中按照某种规范文档化的测试策划、测试设计等活动的技术成果。如测试计划、测试说明。
3.3测试环境 testing context
按照测试要求和设计的测试方法,驱动、控制被测试软件运行或解析被测试软件本体的硬件、软件、数据、场地及其他技术设施的集成。
3.4被测试软件 software undertesting
提供给实验室测试的软件产品,包括程序、技术文档和数据。
3.5测试需求 test requirements
为了使需方能够接受一个软件产品,按照特定的标准或规范对被测试软件实现其研制要求或研制合同等文件规定的软件能力及其特性进行的必要测试。
3.6测试项 test items
对软件的实体元素、能力要素或特性要素需要进行某一测试种类测试的测试集。
3.7测试套 test suite
由完成被测软件应用处理业务的某一个操作剖面或被测软件源程序流程图的某一个计算处理流程的那些测试用例组成一组测试。
3.8检测手段 means of testing
进行所要求的检测而使用的硬件和/或软件及其应用程序,包括可执行的测试集本身。
3.9测试配置管理test configurationmanagement
在整个测试生存周期内为确保软件测试配置项的完整性和正确性而运用配置管理的过程。
4.1公正性
4.1.3如果实验室所在的组织从事软件测试以外的活动涉及软件开发,应有承诺采取措施确保不利用被测试软件相关方的知识产权牟取利益。
实验室在制定软件测试方法和程序、培训和考核人员、选择和校准所用设备时,应考虑到软件测试过程和测试项目管理活动的因素。
6.2.2软件测试实验室的人员应满足以下要求:
a)从事软件测试活动人员,应具有计算机及相关专业的大专(含)以上学历,非计算机相关专业的人员应具有本科(含)以上学历,并经过软件测试技术专业培训,且具有1年以上软件测试或软件开发工作经历,或至少完成2个软件测试项目。软件测试人员均应具备软件测试任务相适应的被测试软件背景知识和软件测试技术。
b)各类人员其他应满足的要求包括:
1)软件测试执行人员,应有3个月(含)以上软件测试技术岗位实习工作经历,并至少实习完成2个软件测试项目;
2)从事软件测试项目管理、测试需求分析、测试策划和测试设计活动、质量监督的人员,应有软件测试领域3年(含)以上工作经历;
3)负责软件测试结果评价(评估)和方法确认的人员,以及报告审查和授权签字人,应有软件测试领域5年(含)以上软件测试技术工作经历。
c)实验室对软件测试人员进行的培训,应包括安全保密和知识产权保护知识以及与被测软件测试有关的法规、标准培训和测试技术类培训。
注:测试技术类培训可包括但不限于测试需求分析、测试用例设计、软件测试方法、测试工具。
d)实验室应:
1)除授权签字人以外,至少具有5名软件检测人员;
2)由熟悉软件项目管理、开发、测试及标准、规程、规范的技术人员负责组织实施软件检测任务;
3)由熟悉软件测试过程以及软件测试的标准、规范、规程,以及软件质量评价和软件测试质量评价的人员,审核软件测试过程和形成的软件测试工作产品是否符合相应的标准、规范。实习人员须在实验室有经验和有能力的正式签约人员的指导下,从事检测活动;
4)由熟悉软件测试需求、测试结果评价和判定准则的人员负责对软件测试输入和测试结果进行核查。
6.3.1实验室的设施和环境条件应确保测试数据和测试设备的完好、安全、稳定,测试场地一般应具备防静电、电源故障保护措施。如果软件测试在实验室固定场所以外进行,应有措施控制测试设施和环境条件满足测试任务要求,确保其测试记录及数据的完整和安全,防止非授权实体的进入。
6.3.2在实验室固定场所以外测试环境实施软件测试的过程控制和项目管理,应考虑在实验室固定场所以外测试环境与实验室受控环境的各种不同因素,采取相应措施形成文件使测试活动满足管理要求和技术要求。
6.3.3对结果有影响的因素,实验室进行监控和记录环境条件,应有防止计算机病毒、木马程序等不良程序感染测试环境,如防病毒软件的升级及记录。如果软件测试在实验室固定场所以外进行时,实验室应有措施防止计算机病毒等影响测试环境。
6.3.4 b)应有措施保证软件测试项目使用的计算机及其网络与该项目以外的计算机及其网络有效隔离,防止外部环境不可控因素对被测试软件和测试结果造成不良影响。当通过实验室以外的网络实施远程测试时,应注意影响网络正常运行的环境条件。
6.4.1影响软件测试结果的设备包括被测软件运行的软硬件、陪测设备和测试工具。测试工具包括但不限于性能测试工具、安全测试工具、仿真测试工具等。当利用计算机或自动设备对软件测试数据进行采集、处理、记录、报告、存储或检索时,实验室应对这些测试数据处理有关的软件进行核实。实验室应规定程序保证测试环境中的所有测试软件应为正式软件或与客户约定的软件,且版本正确。
注1:正式软件指按照程序得到验证、通过批准的就绪可用软件和经过方法确认的非货架软件。
注2:可运行一小组测试,验证测试工具软件(包括嵌入式测试工具软件配套的硬件设备)已正确安装。
6.4.2测试设备如果是租赁的,应有许可和/或授权协议。
6.4.3实验室应对测试工具软件进行版本升级和配置控制,防止误用。
6.4.4实验室应对所有测试工具进行核查,测试工具包括客户提供、开源、商业和自研等工具,有指标要求的测试工具在投入使用前应对其使用范围进行检查。必要时,租赁的测试工具在每次投入使用前,应对其使用范围进行检查。
6.4.12正在进行测试的设备应做明显标识,如张贴“测试中”标识或设置含有测试状态的屏保标识,以避免错误调整测试环境影响测试工作的进行。
6.4.13设备记录应包括测试所用设备的配置及支撑软件等信息(包括:工具类型、名称、生产厂商、版本号、用途与性能、启用时间、许可证书、主要选件、技术文件及运行平台等信息)。测试工具软件的不同版本,均应加以唯一性标识。
6.5.3当无法溯源的测量方法和测试工具是新的或进行了重大更新,实验室应采取措施检测测试方法和测试工具的有效性,确保软件测试的“溯源性效果”,提供测试结果可信度。检查措施可包括:
a)适用时,对特定测试样例软件进行测试,审查测试样例软件预埋问题的复现情况,确认其偏差。
b)适用时,确认的溯源性应有一个全面的检测手段(MOT)和测试工具确认方案,且这个方案的设计和运作应确保MOT和测试工具确认结果的客观性。方案应包括政策声明、对于每个MOT和测试工具何时和如何确认的计划、以及每个MOT和测试工具投入使用之前检测实验室所需进行的附加检查。
c)适用时,测试结果的溯源性由检测实验室所产生的测试结果应溯源到可获得的国际标准测试集(如果有的话),否则应溯源到相关的权威测试集。适用时,测试报告应标明其结果可溯源到的测试集。
d)测试用例的溯源性,在规范与测试用例实现之间存在着重大差异的技术领域中,检测实验室应表明每个测试用例的实现是如何真实地来源于它的规范,并应保留对相应观察所作的判断或测量信息。
e)测试工具的溯源性,应规定用于确认每个新版本MOT或测试工具的程序和方法。可行时,包括对主版本的“溯源性”;相关时,还包括与前一版本的一致性。通常,检测手段和测试工具的设计和维护是由申请认可的检测实验室之外的机构来实施的。当使用检测手段和测试工具提供认可范围内的检测服务时,检测实验室有责任确保其运行的正确性和一致性。例如,将确认结果与使用同一参考实现的另一个检测实验室的结果进行比对,以证明运行的正确性,通过重新确认来证明运行的一致性。
7.1.1 a)实验室应制订合同评审程序,以确保:
1)对测试项目结束后如何处置测试输入项和测试工作产品、如何向客户交付测试产品(包括交付项、交付形式和数量等)应予明确、充分规定。
2)对测试项目结束条件、测试风险应予充分规定;
3)对开展测试准备了解测试任务的同时逐步完善合同内容的评审,或可能延续到软件测试计划、测试需求和测试说明阶段的评审,应予充分规定;
4)对测试目的、为达到测试目的需要提供给实验室的测试输入项、测试输入项的提供方式以及提供时机应予充分规定。测试输入项可包括:
——符合标准规范要求的被测试软件产品,包括程序、软件文档、数据文档;
——文档化的被测试软件的分配需求(可含技术需求、非技术需求和验收则),如研制要求、软件研制任务书等;
——被测试软件安装运行环境以及其他配合被测试软件运行的设备设施、软件、数据等详细信息。
5)当接到客户的在非固定场所检测要求时,应充分了解相关信息,如客户的设施、环境条件等是否满足非固定场所检测活动的要求等,确认是否可提供该非固定场所检测服务;如需要客户提供检测辅助设备,应在合同评审中予以考虑,并保存相关记录。根据客户要求制定的现场检测方案应得到客户确认。
7.1.1 c)实验室应对检测任务进行测试需求分析,测试策划应由实验室完成,外部提供测试服务的合同或协议应满足客户要求,明确外部提供测试服务的评审和监督要求,由客户或法定管理机构指定的外部提供者除外。
7.1.6实验室应与客户及被测试软件相关方保持必要沟通。沟通内容可包括:
1)合同、客户要求变更及其落实情况;
2)计划进展情况,延误或其他主要偏离及其原因;
3)已发现的软件问题;
4)遇到的测试问题;
5)需要沟通的其他问题。
7.1.8对常规软件测试(如某行业已有明确要求的例行软件测试)项目,测试合同可以是任何书面的协议。实验室应对软件测试协议及时形成详细的文字记录,并有审核确认。
7.2.1方法选择和验证
7.2.1.3实验室所采用的软件测试方法,一般包括测试标准、测试工具(硬件和软件)及其使用方法、以及依托测试工具运行测试用例获得测试结果的相关程序三要素,应在软件测试执行之前进行技术审核和确认。为了保证不影响软件测试方法的运用和测试结果,实验室应具有适当的软件测试方法使用指导书,如功能、性能效率和安全类的检测方法作业指导书,并有措施确保测试用例、测试脚本、测试数据和测试工具的一致、有效。
7.2.1.5实验室应制定测试计划、测试需求和测试用例及其执行方案,通过文档化方式明确选定的测试方法。实验室应通过培训、技术咨询或技术指导方式确保能够正确运用选择的测试方法。
7.2.2方法的确认
7.2.2.1实验室应组织本领域专家对非标方法进行技术评审。
注:技术评审可包含但不限于以下内容:
a)被测试软件类型的描述应包括名称、版本信息、开发语言等;
b)能够测试的软件质量特性或测试类别、测试目的和测试能力范围;
c)陪测设备设施软件及其性能要求;
d)方法应有需要的软件硬件环境、测试数据及其他约束条件。
7.2.2.3软件测试方法确认应尽可能全面,包括对被测试软件的各种质量子特性的测试顺序、测试约束及测试输入的组合并进行测试方法的验证。
7.4.1实验室应向客户提供充分的保证,确保测试工具或测试集不会将病毒或其他损坏因素引入到属于客户的硬件或软件中。测试完成后,实验室应按客户要求处置被测试软件,并保留记录。
7.4.2实验室在接收被测试软件时应详细记录被测试软件的程序、文档、数据及版本号,并进行唯一性标识。
7.4.3在接受测试样品时,应对样品进行病毒检查并记录,尤其在现场测试时,应具有样品病毒检查的控制措施和风险告知。
7.5技术记录
7.5.1软件测试项目技术记录应包括每项实验室活动以及审查数据结果的日期和责任人,一般技术记录可包括:
a)测试输入项记录可包括客户提供的被测试软件清单、技术协议与软件测试相关的文件清单等;
b)测试技术文档可包括测试(回归测试)方案、测试(项目)计划、测试需求规格说明、测试说明、软件测试报告的副本等;
c)测试环境记录可包括被测软件运行平台、陪测设备和测试工具的软硬件记录,及其对应的测试内容;
d)测试执行记录可包括测试记录(日志)、文档检查记录、软件问题单(报告)、源程序缺陷报告、测试问题单(报告)等;
e)技术评审记录可包括对软件测试合同、测试输入项、测试技术文档、测试环境、测试结果等进行技术评审的记录。
7.6测量不确定度的评定
7.6.1实验室检测项目有数值时应评定测量不确定度。但无法评估时,应分析影响测量结果的重要因素。
7.6.3实验室应根据实际情况决定是否进行软件测试测量不确定度的评定。
注:软件测试是基于数字逻辑的通过/失败基础来执行的,测量不确定度一般不适用。这些要求只适用于要进行物理量测量,以及检测涉及使用浮点算法或数据的近似表示的极个别情况的软件和协议检测。如,当软件检测结果涉及测量值并有量值精确度要求的,应具有并应用评定测量不确定度的程序,分析不确定度的因素及其对软件测试结果的可能影响。
7.7确保结果的有效性
7.7.1决定实验室软件测试的正确性和可靠性的因素还包括软件测试过程和测试项目管理活动。
实验室应有软件有效性的质量监控方案,可以采用以下方式:
a)使用样例软件或标准方法开展内部测试,标识技术偏差;
b)参加实验室间的比对或能力验证,标识离群现象;
c)组织其他测试人员对被测试软件的重大问题进行复现。
7.7.3审核软件测试过程和软件测试工作产品与相应软件测试标准、规范、程序
的符合性,标识不符合项。
8.1.1总则
实验室应建立、实施和保持与软件测试活动范围相适应的管理体系,应覆盖所有在固定场所和非固定场所开展的检测活动;应将软件测试相关的过程和活动以及测试项目管理相关的过程和活动的政策、制度、计划、程序和指导书制订成文件。实验室管理体系中应包括:
a)软件测试组织,一般包括测试方针和策略,组织测试规程和过程;
b)软件测试过程,一般包括测试需求分析、测试策划、测试设计和实现、测试执行和回归测试、测试总结与测试结果报告所开展的技术活动以及测试计划、测试需求、测试说明、测试就绪、测试结果等测试技术进行的评审活动;
c)软件测试项目管理,主要包括测试配置管理,将测试需求、测试环境、测试阶段产品及交付产品纳入配置项;测试质量保证要监督项目人员的测试工作、审核测试过程及形成的测试工作产品与标准、规范、过程文件的符合性;测试项目跟踪控制测试计划的实施进度和风险。
d)在实验室固定场所以外测试环境实施软件测试的过程控制和项目管理,应考虑在实验室固定场所以外测试环境与实验室受控环境的各种不同因素,应制定非固定场所检测活动的程序,对开展非固定场所检测活动的工作程序和质控方法等予以规定。
8.7纠正措施(方式A)
8.7.1 b)软件测试产生问题的原因还可能是:软件病毒、测试用数据及操作顺序等。
8.8内部审核(方式A)
8.8.1实验室开展内部审核的周期至少为12个月一次。
8.9管理评审(方式A)
8.9.1实验室开展管理体系评审的周期至少为12个月一次。
以上内容来源:中国合格评定国家认可委员会