软件验收检测是项目交付前必须根据一系列具有强制约束力的标准。软件领域的强制性来源多样-既有标准本身的法定属性,也有法律法规的间接强制,还有合同约定的法律效力。
一、国家强制性标准(GB)
GB 17859-1999《计算机信息系统 安全保护等级划分标准》 是软件验收领域为数不多的真正意义上的强制性国家标准。该标准规定了计算机信息系统安全保护能力的五个等级:第一级用户自主保护级、第二级系统审计保护级、第三级安全标记保护级、第四级结构化保护级、第五级访问验收保护级。凡涉及等保三级及以上的项目,验收检测必须根据该标准进行安全等级符合性测试。
二、准强制国家标准(GB/T)
部分推荐性标准(GB/T)因被法律法规引用而具有事实上的强制效力。
GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》(等保2.0) 是最典型的代表。虽然编号为GB/T(推荐性),但因《中华人民共和国网络安全法》确定要求网络运营者按照网络安全等级保护制度履行安全保护义务,该标准在验收中实为“准强制”规范。对于涉及网络安全的软件系统,尤其是政务、金融、医疗等行业,验收测评必须满足等保2.0的安全要求。该标准规定了不同安全保护等级的系统应达到的安全技术要求和管理要求,是安全验收的强制性根据。
GB/T 28035-2011《软件系统验收规范》 虽然标注为推荐性,但它系统规定了软件系统验收的基本要求和流程,在大量政府采购和合同中被确定引用,一旦写入合同即产生法律约束力。
GB/T 15532-2008《计算机软件测试规范》 确定区分了单元测试、集成测试、配置项测试、系统测试和验收测试,对验收测试的进入/退出标准、测试对象和测试内容做了详细规定。许多验收合同和招标文件直接要求“验收测试应按GB/T 15532-2008的要求进行”。
三、行业强制性规范
不同行业对软件验收有专属的强制标准,这些标准虽非国标,但在各自领域内具有法定强制力。
金融行业:JR/T 0068-2020《网上银行系统信息安全通用规范》 由中国人民银行发布,适用于中国境内设立的商业银行等银行业机构运行的网上银行系统。该标准规定了安全技术要求、安全管理要求和业务运营安全要求,是网上银行系统验收测评的强制性依据。此外JR/T 0098系列(移动金融客户端应用软件规范)等也是金融软件验收必须按照的规范。
政务领域: 政府信息化项目验收一般要求按照GB/T 30850系列《电子政务标准化指南》及相关管理办法。
医疗行业: 医疗信息系统验收需符合《医疗器械软件注册审查指导原则》《电子病历基本架构和数据标准》等行业特有的安全性和隐私保护规定。
工业控制和安全领域: 涉及基础设施的软件验收,常引用GB/T 30976-2014《工业控制系统信息安全》以及DO-178C(机载软件)、IEC 60880(核电站软件)等严格的标准。
四、合同约定的标准
根据《中华人民共和国民法典》,合同一旦确定指定了测试标准(如“根据GB/T 25000.51-2016执行”),该标准即对双方具有法律约束力等同于强制。验收时未按约定标准测试,将组成违约,验收报告无效。因此GB/T 25000.51-2016《系统和软件工程 系统和软件质量要求和评价 第51部分:就绪可用软件产品的质量要求和测试细则》 虽为推荐性标准,却是国内软件验收测试最常被引用的依据。该标准包括功能性、性能效率、兼容性、可靠性、信息安全性、易用性、维护性、可移植性特性。和之配套的GB/T 25000.10-2016定义了质量模型,为八大特性提供理论框架。GB/T 8567-2006《计算机软件文档编制规范》 则规定了验收阶段必须交付的文档要求。
此外,GB/T 38634-2020《系统和软件工程 软件测试》系列标准(共四部分)在大量政府采购范本中被引用,实质上成为验收测试流程的强制规范。
五、验收测试强制执行的检测内容
测试环境:必须和生产环境一致(硬件配置、网络拓扑、软件版本)。
功能包括:所有需求功能必须100%包括测试用例,致命和严重缺陷必须清零。
性能标准:必须满足需求规格中确定给出的阈值(如响应时间、并发数、资源利用率)。
安全检测:不得存在高危漏洞(如SQL注入、XSS、弱口令等)。
回归测试:必须包括所有变更影响的功能模块。