CNAS实验室认可体系在空管自动化系统软件测试中的应用
2023-11-25刘晶
刘 晶
(民航局空管局技术中心,北京 100015)
民航空中交通管制自动化系统(以下简称“自动化系统”)是空管的核心设备,为管制员提供监视、飞行计划及各种告警等信息,自动化系统软件质量保障在民航安全运行中发挥重要作用,因此对软件的安全性和可靠性要求较高,软件测试是保证软件质量的重要手段,加强软件测试,提高软件质量是民航空管行业亟需解决的技术研究问题。
文章分析了空管自动化系统软件测试现状中存在的问题,认为软件测试过程缺少专业的人员和管理体系,造成测试结果的偏差或错误,而国内权威软件测试机构均通过实验室认可的认证,能够将测试过程规范化、标准化,保证测试结果的有效性。因此,从实验室认可的管理体系、资源要求和过程要求等方面研究了对空管自动化系统软件测试的改善和提升。
1 CNAS实验室认可体系
所谓实验室认可就是中国合格评定国家认可委员会(英文缩写为CNAS)对实验室有能力进行规定类型的检测和(或)校准所给予的正式承认。实验室认可遵循开放性、自愿性和非歧视原则,对实验室的质量和技术管理能力进行全面、系统的评审。CNAS 实验室认可依据是CNAS-CL01:2018《检测和校准的实验室的认可准则》(以下简称《认可准则》),等同采用ISO/IEC17025:2017《检测和校准实验室能力的通用要求》,即通过了国家实验室认可的实验室,获得了按有关认可国际组织内互认的国家和地区实验室认可机构的承认。
2 空管自动化系统软件测试现状
空管自动化系统软件是管制员指挥的核心系统,对安全性和可靠性要求高,具有系统结构和功能复杂、规模大、专业化程度高等特点。一套自动化系统从开发到上线运行通常经过开发厂家的工厂验收测试及系统运行现场的现场验收测试两部分,从厂家开发过程来看,会出现以下问题。
(1)测试人员不足。开发厂家虽然配备专职测试人员,但受限于测试人员与开发人员比例远低于国内软件行业1 ∶5的比例,更不提国际软件行业1 ∶1的人员比例,测试人员严重不足。
(2)测试缺少过程控制。在集成测试中缺少需求分析、测试用例设计和审核过程存在失能情况,导致测试覆盖性严重不足,造成软件升级后出现低级错误甚至回滚的情况。从运行现场角度来看,运行现场很少配备专职的测试人员,有些现场甚至不具备基本的测试平台,现场验收测试时多为厂家测试人员执行,用户观察的测试方式,测试用例的编制多为工厂验收时厂家提供的内容,受制于人员能力、测试环境、测试过程控制等因素的制约,使得现场验收测试无法充分发挥作用。而在系统上线运行过程中,作为软件系统不可避免会存在软件故障,在厂家提供解决故障的补丁或新版本软件时,科学且完善的测试才是保证软件系统在使用过程中减少和避免出现软件故障的必要手段。
3 空管自动化系统测试在CNAS准则下的适应性要求
为完善空管自动化系统测试存在的问题,使得空管自动化系统测试更加规范化、标准化,设置第三方实验室(独立于厂家和用户)对软件进行客观、公正且规范的测试,通过CNAS 实验室认可,建立符合国际标准的软件检测实验室可满足以下适应性要求。
3.1 管理要求
CNAS 认可要求实验室须是法律实体,或法律实体中被明确界定的一部分,能够承担相应法律责任,拥有与其测试任务相适应的场地、设施、设备、测试工具软件等资产。一般应具有一定数量(如5名以上)的具备一定资质的软件测试人员。建立、实施和保持与软件检测活动范围相适应的管理体系,应特别加强软件检测相关的过程和活动及检测项目管理相关的过程与活动的政策、制度、计划、程序的分析工作。CNAS 实验室的管理体系要求有助于建立符合要求且业务稳定的专职测试单位,是满足空管自动化系统软件测试专业性和规范性的基础。
3.2 资源要求
3.2.1 人员方面
空管自动化系统软件测试人员通常为运行现场技术保障人员,具备丰富的通信导航经验,缺少软件测试工作的专业背景及实践经验,CNAS 认可要求软件测试从业人员应出自电子信息技术或计算机相关专业,在上岗前进行软件测试相关培训取得资格,软件测试管理人员应具有3 a 以上相关行业测试经验,确保具备专业的软件测试工具、从事测试工作、评价测试结果、签署测试报告的能力,能够定期培训新的测试人员并在日常工作中对测试人员进行监督,同时应具备空管自动化系统软件技术相关知识、获取最新测试标准的技术能力。人员专职岗位设置、资质要求、持续的培训和监督都使得测试人员能力得到保障,工作流程得到规范和监督,保证测试过程的正确性和测试结果的可信性。
3.2.2 设施和环境方面
空管自动化系统软件测试具有其特殊性,测试通常需搭建被测试全系统,需较多高性能服务器、工作站及高清晰显示器,整体测试环境搭建造价较高,特别是针对运行中需修复故障或实现新功能的系统,按照空管运行安全和网络安全管理要求,无法在在用系统上进行软件测试,大多数运行现场采用利旧设备和一般办公室作为测试平台搭建的环境。CNAS 实验室认可规定测试场地一般应具备防静电、电源故障保障措施,满足测试要求的环境条件,同时要保证计算机病毒及网络安全,控制无关人员进入测试区域等措施;在软件测试环境搭建方面,专职实验室通过搭建专用被测试系统,能够满足模拟各种测试情景的要求,针对不同厂家和版本的自动化系统软件进行解决,还可通过虚拟化云平台方式解决现场无法满足的情况,以保证软件测试的质量和效率。
3.2.3 设备方面
空管自动化系统软件测试工具经常为厂家自行开发的雷达数据、飞行数据和气象数据模拟“小工具”,未对其边界和数据准确性等进行验证和检查,测试的结果很大可能性会随着测试工具输入的不同而得到不同的测试输出,测试数据不可复现,导致测试结果的不确定性。CNAS 实验室认可要求测试工具应是通过批准的货架软件或经同行专家技术检定的非货架软件,在使用前应对该测试工具按照程序进行验证,确保测试工具为正式软件版本且对有指标要求的部分进行明确。运行现场一般配置主备两套自动化系统,应能够使用相同测试工具验证系统功能等指标,确保测试结果的有效性。
3.3 过程要求
3.3.1 方法选择和确认
由于过去很长一段时间,空管自动化系统都依赖于购买国外厂商提供,软件测试参与度低,对软件开发实现的原理缺少深入了解,近些年,自动化系统国产厂家大幅增加,但软件测试方法主要是依赖于过去的经验,不同测试人员的操作或理解不同均会导致测试结果的差异,影响测试结果的一致性和有效性。CNAS 实验室认可要求实验室采用国际、国内或行业内的标准测试方法,针对测试方法可制订相应的软件测试方法使用指导书、测试用例集、测试脚本等,保证测试人员按照相同的测试指导书能够得到同样的结果,同时要求实验室应通过培训或现场技术指导的方式确保测试人员能够选择并运用正确的测试方法。实验室应积极关注测试方法或标准的更新,及时更新培训新的标准方法。在首次使用新的测试标准或方法时应全面针对测试方法进行确认,确认并验证各种质量子特性的测试顺序、测试约束及测试输入的组合的结果。在空管自动化系统测试中,中国民用航空局空管行业管理办公室2012 年下发的AC-115-TM-2012-01《民用航空空中交通管制自动化系统测试要求》中明确了测试的项目、环境、方法和工作量,结合软件行业通用的测试标准GB/T 25000.51—2016《系统与软件工程系统与软件质量要求和评价(SQuaRE)第51部分:就绪可用软件产品(RUSP)的质量要求和测试细则》和以往测试经验,制订空管自动化系统的测试作业指导书、通用测试用例集。
3.3.2 测试过程
空管自动化系统软件测试在运行现场的客户端由于缺少专职人员,测试过程常缺少需求分析过程,由厂家提供测试用例,或由现场人员现场依照经验边想边测,没有规范的测试过程要求,易造成测试覆盖不全或遗漏,测试记录不全或不清晰,测试结果不准确或出现错误的情况较为普遍。一般规范的测试过程如图1所示,应分为测试策划、测试需求分析、测试设计、测试执行及测试总结5个环节。
图1 标准测试流程
(1)在测试策划过程中,需进行测试目的确认、测试任务分解、测试环境搭建和确认、测试人员安排和测试进度安排,需明确测试的目的,以及为达到目的所需要的文件、程序,进行测试工作任务分解,对测试所需时间和人力资源进行评估,明确测试所需人员和进度安排,保证测试工作按计划完成,搭建相应的测试环境,确认测试环境符合要求。
(2)测试需求分析主要是根据被测试软件的需求规格说明或设计文档,对测试项目进行测试类型分解,在空管自动化系统测试中,一般包括文档审查、功能测试(或修复项测试)、性能测试、接口测试、可靠性测试,其中功能性测试为测试主要部分,以功能测试为例,要对被测系统的软件功能进行分解,明确功能和功能间的边界,每一个单一功能的输入和输出,把握数据在系统内的流向和呈现形式。在需求分析过程中,应充分考虑每个测试类型中包含的测试项及测试项的充分性,明确测试项的测试终止条件,建立测试需求规格说明与被测软件需求规格说明或设计文档的追踪关系,确保需求均得到覆盖。测试需求分析阶段应形成测试计划文档作为测试设计的输入文档。
(3)在测试设计阶段,主要分析每个测试项,逐一完成测试方法确认和设计测试用例,从输入、条件和输出3个方面着手,在输入方面,一项功能的输入可能是一个或多个数值,亦可是一个或多个事件。当有多个输入的可能,测试用例设计就要尽量穷尽所有的可能性。在空管自动化系统测试中,黑盒测试方法中的等价值法、边界值法和试错法都可应用到设计中;在条件方面,一项软件功能能够实现离不开各种约束条件,各种约束条件间可能存在“且”“或”“包含”或“交叉”的关系,亦可能是多种逻辑关系的组合。测试设计人员要不重复的覆盖所有约束条件的可能,分别设计用例验证这项软件功能在描述的条件下能够得到预期输出。输出方面,一项软件功能若能够得到不同的输出,一定是有不同的输入或不同的条件约束。因此在测试用例设计时,可从输入或条件入手,也可从输出入手,具体问题要具体分析。
(4)在测试执行阶段,测试人员应首先确认测试环境符合要求后,严格按照步骤执行经过测试管理人员审批受控的测试说明,在测试过程中如实、详细地记录测试结果,如在测试过程中发现软件缺陷,可沟通是否进行回归测试,明确回归测试影响范围。
(5)在测试总结阶段,依据测试整改过程及测试记录结论,分析整个测试过程,给出测试结论,形成测试报告,测试报告应满足CNAS 认可对测试报告格式统一、内容完整、数据准确、分析合理、结论准确的要求,报告应经过编制人员的自查、审核人员的核对和最终的批准才可发布。
在测试过程中,CNAS 认可要求对整个测试过程开展配置管理,除了针对开发过程中外,还应在整个软件生命周期中进行配置管理。测试过程中对被测软件进行唯一性编号,对各个过程中产生的测试计划、测试说明、测试记录及测试报告审核和批准过程均做出入库的审核,对修改的内容有修改记录和批准过程,监控整个软件测试过程。在空管自动化系统软件测试过程中,配置管理基本上是空白领域应引起测试人员的重视。
3.3.3 能力验证
空管自动化系统测试中缺少对负责测试的人员和组织测试能力的确认,在人员上岗前针对空管自动化系统的维护进行培训和上岗资质认定,测试能力并不作为资质认定的范围,无法确认测试承担部门是否具备测试的能力和条件。CNAS 实验室认可要求软件测试的实验室至少一个认可周期内每个子领域参加一次能力验证或测量审核,对实验室的技术能力和维持其技术能力的重要依据,可看作是对实验室技术能力的外部考试,对结果的分析也是实验室提高自身管理、技术能力的重要来源。在空管自动化系统测试中,可选择参加CNAS 官方认证的测量审核机构提供的软件功能、性能等方面的能力验证计划,测量审核由指定机构提供带有特定BUG 的软件样品,实验室可根据软件样品的说明要求,开展功能测试,最终按要求提交测试文档和测试结果,由样品提供机构对测试结果进行评分后给出测量审核结果,测试过程本身就是一次很好的业务锻炼和提升,也可让空管系统测试较封闭的行业与市场上通用软件行业进行一次技术交流。
4 结束语
空管自动化系统软件测试对民航安全运行有重要作用,其测试能够直接反映空管自动化系统的功能、性能等的优劣,影响管制员的对空指挥。目前空管行业的软件测试发展还较为滞后,仅有两家实验室通过了CNAS实验室认可,而通过实验室认可的建立,能够从管理、技术两方面提高软件测试的能力和质量保证,不断提高测试的技术水平,对空管自动化系统软件的质量提升和全生命周期的管理具有重大意义。