对于测试一个全新的计量器具软件,就功能性检测而言,其复杂程度并不算高,根据需求说明,编制检测大纲,按部就班地执行检测步骤即可。计量器具软件有其自身的特点——及时性、可靠性、易读性。但是,针对计量器具软件的特点,在验证功能是否正常的同时,还要检测软件中可能出现的漏洞,甚至是后门,其难度比编制一个软件还甚。
软件检测是为了发现设计人员、编程人员由于疏忽或故意而留下的隐患和错误。软件检测方法归结起来,不外乎黑盒测试与白盒测试。黑盒测试相对简单易行,一般用于功能验证;白盒测试则比较繁琐,主要用于内部逻辑检查。面对由少则近万,多则十几万甚至更多软件源代码编译成的机器代码,仅通过黑盒测试,即使采用了自动测试工具,也很难确保软件质量的可靠。如果对这么多源代码进行白盒测试,人工时间成本过高,不能适应管理部门和企业对计量器具型式评价时间的需求。
通过分析部分计量器具软件的源代码可知,源代码中很大一部分是实现各种功能的代码,真正涉及法制计量管理部分的(比如传感器通信、数据读取、保存、处理、显示等)并不多。正是这些原因,也促使OIML D31《软件控制的计量器具通用要求》中提出软件分离的概念,将法制规定和要求囊括的管理部分与市场客户需求的功能部分分开。在型式评价时,仅针对法制管理的软件部分进行测试。JJF1182-2007《计量器具软件测评指南》中将这种分离称为法制软件部分和非法制软件部分的分离。这样做对管理部门、检测机构和软件制造商而言都有利。降低管理风险,更加有效地实施监督,降低检测成本,提高型式评价效率,企业版本控制得力,核心知识产权得到保护。
就计量器具软件型式试验检测而言,为降低管理风险,提高型式评价的工作效率,实现知识产权保护,理想的型式评价流程大体如下:功能检测→法制软件部分白盒测试→非法制软件部分抽样测试→版本备案。
从管理角度出发,功能检查是与现有计量法规保持一致,法制软件部分的白盒测试是保证计量器具软件质量、降低发证和管理风险的有效手段,非法制软件部分的抽样测试是保证软件整体质量可靠,版本备案将为日后法制目的活动提供相关证据。就目前情况而言,还有以下实际困难。
1.时效性
如果按照白盒测试的要求,需要经过较长时间的前期准备,包括与研发人员的沟通,走读大量的程序代码,进行相关的临界值测试,判断功能算法的正确等内容,往往会超过3个月的时间。而目前型式评价试验根据不同的项目,时限要求非常严格,在目前对软件规范度还不够高的情形下,很难在限定的时间内完成软件的白盒测试,满足不了型式评价的时限要求。
2.风险性
即使给予了充分的时间保障,对于一个没有进行软件法制部分和非法制部分分离的计量器具软件而言,一般检测人员需要做到****覆盖率的检测仍然是一项高难度的技术工作。即使做到了****覆盖,仍不敢断言其中没有缺陷。
就目前而言,软件的覆盖率测试达到50%已经是一个比较高的比例。在这种情形下,另外的50%只能靠其他技术,甚至是检测人员的个人经验进行必要的判断。如此处理,软件评测的风险就随之而来。
3.版本多
另一个比较普遍的问题是,厂家的计量器具软件版本往往有很多,有测试版本、*终版本、地区版本,这些版本本身还有不同的升级版本。进行检测的往往是其中之一。