1 范围 本标准规定了自主可控软件要求、测试内容、测试流程、测试实施要求和认证。 本标准适用于自主可控软件的标准符合性测试与认证,也可供软件生产商在设计、验证、日常检测和维护时参考。 2 规范性引用文件 下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。 GB/T 20271-2006 信息安全技术 信息系统通用安全技术要求 GB/T 22239-2008 信息安全技术 信息系统安全等级保护基本要求 GB/T 25000.10-2016 系统与软件工程 系统与软件质量要求和评价(SQuaRE) 第10部分:系统与软件质量模型 GB/T 25000.51-2016 系统与软件工程 系统与软件质量要求和评价(SQuaRE) 第51部分:就绪可用软件产品(RUSP)的质量要求和测试细则 3 术语和定义 以下术语和定义,以及GB/T 25000.51-2016中的术语和定义适用于本标准。 3.1 国产软件 指在中华人民共和国境内最终形成,其著作权归属中华人民共和国境内的自然人、法人或其他组织,并且在国内的开发成本不低于总开发成本的百分之五十的软件产品。 3.2 自主可控软件 由软件生产商自身研发设计,全面掌握产品核心技术,拥有自主知识产权,可由软件生产商自主维护来应对安全威胁的国产软件。 3.3 符合性评价报告 说明对自主可控软件实施评价的行为和结果的文档。 注:改写IEEE std610.12-1998。 3.4 测试机构 获得中国实验室国家认可委员会认可的具有软件检测能力的机构,认可的检测能力范围应至少包括对软件功能性、可靠性、易用性,及性能效率的测试。 3.5 认证机构 依据该标准对自主可控软件实施认证的组织机构。 4 自主可控软件要求 4.1 自主性要求 软件应自主研发,且拥有自主知识产权。 4.2 用户文档要求 4.2.1 可用性要求 用户文档对于该软件的用户应是可用的。 4.2.2 完备性要求 用户文档应具有唯一标识,应包含使用该软件所必需的信息,应说明最终用户能调用的所有功能。 4.2.3 正确性要求 用户文档中所有信息都应是正确的,且不应有歧义的信息。 4.2.4 一致性要求 用户文档不应自相矛盾、互相矛盾,以及与产品说明矛盾。 4.2.5 易理解性要求 用户文档应采用软件特定读者可理解的术语和文体。 4.3 软件质量要求 4.3.1 功能性要求 软件的功能是否能执行是可识别的;在给定的限制范围内,用户文档中所陈述的所有功能应是可执行的和准确的。 4.3.2 安全性要求 软件应能够保护信息和数据,使未授权的人员或系统不能阅读或修改这些信息和数据,而不拒绝授权人员或系统对它们的访问。 4.3.3 可靠性要求 软件应按照用户文档中定义的可靠性特征来执行,应识别违反句法条件的输入,并且不应作为许可的输入加以处理;在用户文档陈述的限制范围内使用时,不应丢失数据。 4.3.4 易用性要求 有关软件执行的各种问题、消息和结果都应是易理解的;对具有严重后果的功能执行应是可撤销的,或者软件应给出这种后果的明显警告,并且在这种命令执行前要求确认。 4.3.5 性能效率要求 软件应符合产品说明中有关性能效率的陈述。 4.3.6 维护性要求 软件应按照用户文档中定义的维护性特征来执行。 4.3.7 兼容性要求 软件应按照用户文档和产品说明中所定义的兼容性特征来执行。 5 测试内容 5.1 总则 针对自主可控软件,从自主性、功能性、安全性、可靠性、易用性、性能效率、维护性、兼容性和用户文档等九个方面进行测试。其中,性能效率、维护性和兼容性部分作为考察项,其测试结果能够更全面地展现软件相应能力,但不用于软件整体测试结果的评价。 针对自主可控软件要求,给出以下主要的测试项目。在实际执行过程中,可根据自主可控软件自身特点及软件生产商要求增加测试项目。对于自主性测试、功能性测试、安全性测试、可靠性测试、易用性测试和用户文档测试等六个类别,在符合性评价报告中应至少列出以下所有测试项目,对其中不适用的测试项目,应说明其不适用原因。 5.2 自主性测试 测试内容如表1所示: 表1 自主性测试内容 测试项目 项目说明 自主管理 可行性与计划研究 应有相应的文档或记录能够证明对软件进行了可行性分析,并制定了开发计划。 需求分析 应有相应的文档或记录能够证明对软件进行了需求分析。 软件设计 应有相应的文档或记录能够证明对软件进行了设计。 质量控制 应有相应的文档或记录能够证明对软件进行了质量控制。 版本控制 应有相应的文档、记录能够证明对软件进行了版本控制。 自主研发 源代码可执行验证 软件源代码编译后生成的软件的功能完整,且与用户文档描述的软件功能一致。 源代码自主研发验证 软件所有功能都应有对应的源代码,且软件核心功能应由自主研发的源代码独立实现。
5.3 功能性测试 测试内容如表2所示: 表2 功能性测试内容 测试项目 项目说明 完备性 功能实现的完整性 软件中应包括产品说明中所描述的所有功能。 正确性 功能的正确性 产品说明中所有的功能应都能正确执行。 精度 软件中所有精度应与产品说明中的精度要求一致。 5.4 安全性测试 测试内容如表3所示: 表3 安全性测试内容 测试项目 项目说明 身份鉴别 鉴别机制 软件应提供专用的登录控制模块对登录用户进行身份标识和鉴别。 登录失败处理 软件连续多次登录失败时,可采取限制非法登录次数、结束会话等措施。 强口令策略 软件应启用强口令策略,口令长度、类型等具有复杂度限制。 会话超时机制 软件提供会话超时机制;会话超时后,应使会话进入休眠状态或中断连接。 错误提示信息 软件认证错误提示信息中不存在确切错误分类信息。 用户权限控制 权限控制功能 软件具有权限控制策略,对于每个角色用户权限控制合理。 越权控制机制 软件不存在横向越权漏洞。 软件不存在纵向越权漏洞。 权限控制范围 软件权限控制范围覆盖系统的主要功能操作。 限制默认账户权限 软件严格限制默认帐户的访问权限,默认用户权限应合理。 用户最小权限原则 软件各角色用户应根据业务特性及权限互斥原则,分配最小权限。
表3(续) 测试项目 项目说明 访问审计 审计的广泛性 软件审计范围覆盖所有角色用户。 审计的完整性 软件限制删除、修改或覆盖审计记录,维护审计活动的完整性。 审计内容全面性 软件审计记录的内容至少包括事件的日期、时间、发起者信息、类型、描述和结果等。 审计关键事件 软件重要安全事件记录日志。 数据安全 数据保密性 软件重要信息或敏感信息加密传输或存储。 数据完整性 应能够检测到重要用户数据在传输过程中完整性受到破坏。 数据有效性 应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的数据格式或长度符合系统设定要求。
5.5 可靠性测试 测试内容如表4所示: 表4 可靠性测试内容 测试项目 项目说明 成熟性 可控制性 在测试过程中,软件不应陷入用户无法控制的状态,如进入死循环,执行其他操作无响应。 数据完整性 在测试过程中,不应由于软件故障而导致软件丢失数据,破坏数据的完整性。 避免失效 在测试过程中,不应出现由于软件的故障而导致系统失效的现象。 容错性 抵御误操作 软件应对非法输入、非法操作等进行屏蔽处理。 易恢复性 在发生中断或失效时,软件能够恢复直接受影响的数据,并重建期望的系统状态。
5.6 易用性测试 测试内容如表5所示:
表5 易用性测试内容 测试项目 项目说明 易理解性 描述的完整性 用户在阅读产品说明后应能理解软件的能力。 明显的功能 软件界面中所有的功能应易于识别。 功能的易理解性 软件中所有界面对应的功能应易于理解。 易理解的输入输出 软件界面中所有的输入输出项应易于理解。 易学性 用户文档和/或帮助机制的有效性 软件提供的联机帮助系统和/或文档应能有效地指导用户完成相关操作。 帮助的获得性 软件应提供帮助的快速定位查找功能,以便用户能正确定位所需的帮助内容。 易操作性 在使用中功能操作的一致性 软件中功能操作界面的组成应保持一致。 在使用中消息的一致性 软件中提示的信息应易于指导用户操作。 使用中错误的纠正 在使用软件过程中,用户应能成功撤销其错误操作。 使用中默认值的可用性 软件应提供参数值的默认值以方便用户使用。 使用中消息的可理解性 软件中的提示信息不应导致用户操作停顿与失败。 在使用中操作错误的易恢复性 软件应对关键数据的操作给出警告或在执行前要求确认。 (用户错误纠正的)可还原性 软件应提供关键操作的可逆处理,以便用户纠正错误。 5.7 性能效率测试 测试内容如表6所示: 表6 性能效率测试内容 测试项目 项目说明 时间特性 响应时间 从发出请求到请求完成为止,用户经历的平均等待时间间隔。 吞吐率 软件在给定的时间周期内有多少个任务成功的执行。 资源特性 CPU利用率 在测试过程中服务器端CPU的平均使用率。
表6(续) 测试项目 项目说明 资源特性 内存利用率 在测试过程中服务器端内存的平均使用率。 容量 并发用户数 软件能够支撑的最大并发用户数量。 存储数据项数量 软件能够支撑的最大存储数据项数量。
5.8 维护性测试 测试内容如表7所示: 表7 维护性测试内容 测试项目 项目说明 易分析性 状态监视能力 在运行中要记录足以监视软件状态的数据。 易修改性 参数表示的 修改性 软件应提供方便的参数修改手段,以便变更软件适应新的应用。 5.9 兼容性测试 测试内容如表8所示: 表8 兼容性测试内容 测试项目 项目说明 适应性 硬件环境适应性 软件兼容产品说明中要求的国产硬件环境。 软件环境适应性 软件兼容产品说明中要求的国产软件运行环境。 共存性 有效的共存性 软件能够与产品说明中列举的国产软件共存运行。
5.10 用户文档测试 测试内容如表9所示:
表9 用户文档测试内容 测试项目 项目说明
完备性 标识指示 用户文档应具有唯一的文档标识。 使用信息 用户文档应包含使用该软件所必需的信息。 陈述所有功能 用户文档应说明在产品说明中陈述的所有功能以及最终用户能调用的所有功能。 差错和失效、数据丢失条件 用户文档应列出所处置的和引起应用系统失效或终止的差错和失效,特别是那些导致数据丢失的应用系统终止的结束条件。 备份和恢复指南 用户文档应给出必要数据的备份和恢复指南。 关键功能细则 对于所有关键的软件功能(即失效后会对安全产生影响或会造成重大财产损失或社会损失的软件),用户文档应提供完备的细则信息和参考信息。 磁盘空间要求 用户文档应陈述安装所要求的最小和最大磁盘空间。 应用管理 对用户要完成的应用管理职能,用户文档应包括所有必要的信息。 集分标识 如果用户文档分若干部分提供,在该集合中至少有一处应标识出所有的部分。 正确性 用户文档中所有信息都应是正确的,且不应有歧义的信息。 一致性 用户文档不应自相矛盾、互相矛盾,以及与产品说明矛盾。 易理解性 用户文档应采用软件特定读者可理解的术语和文体。
|