一种面向智能电表嵌入式应用的测试方法
技术领域
本发明涉及一种测试方法,具体讲涉及一种面向智能电表嵌入式应用的测试方法。
背景技术
作为智能电网的智能终端的智能电表已经不是传统意义上的电能表,除了具备传统电能表基本用电量的计量功能以外,还具备了适应智能电网和新能源使用的电信息存储、双向多种费率计量功能、用户端控制功能、多种数据传输模式的双向数据通信功能、防窃电功能等智能化的功能,智能电表代表着未来节能型智能电网最终用户智能化终端的发展方向。随着智能电网的日益发展,世界各国对于智能化用户终端的需求也日益增大,据统计,在未来5年,随着智能电网在世界各国的建设,智能电表在全球安装的数量将高达2亿只。同样,在中国,随着国家坚强智能电网建设的进展,作为用户端的智能电表的需求也会大幅度地增长,保守的预计,市场将会有1.7亿只左右的需求。美国政府为升级本国电网的拨款中,就有一部分专门用于在未来3年致使13%的美国家庭(1800万户家庭)能装上智能电表。在欧洲,意大利及瑞典已经完成先进计量基础设施的部署,将所有普通电表更换为智能电表。法国、西班牙、德国和英国预计在未来10年内完成也将完成智能电表的全面推广和应用。
传统的智能电表是由用户交费对智能IC卡充值并输入电表中,电表才能供电,表中电量用完后自动拉闸断电,新型的智能电表已完美、便捷实现了网络购电,就像手机充值一样方便简单。
智能电表行业的前世今生是投资者思考这一问题时首先需要把握的:随着中国提出建设国家智能电网概念之后,与之直接配套的智能电表开始成为关注的焦点。智能电能表是一种新型计量设备,相对于以往的普通电能表,除具备基本的计量功能外,智能电能表还是一种全电子式电能表,带有硬件时钟和完备的通信接口,具有高可靠性、高安全等级以及大存储容量等特点,完全符合当今社会未来发展“节能环保”的要求。
智能电表已不仅仅作为一个简单的电能计量器具,还是一个多功能的数据采集终端,得到了广泛应用。目前智能电表是以MCU为控制单元,外围电路由计量芯片等组成,有较好的线性度和稳定度,具有功耗小,电压和频率响应速度快,测量精度高等诸多优点。电能表的大多功能都是通过嵌入式软件来完成的,作为电能计量的主要工具,对计量准确性、稳定性、功能性有着重要的影响。因此需要一种测试智能电表嵌入式软件的方法以确保这些优异性能不缺失。
发明内容
针对现有技术的不足,本发明的目的是提供一种面向智能电表嵌入式应用的测试方法,该测试方法不只关注电能表嵌入式软件的调试工作,而是采用黑盒法,按智能电表功能模块化的测试,在智能电表嵌入式软件可靠性测试中是一种新的、可控的、针对应用的测试方法。
本发明的目的是采用下述技术方案实现的:
本发明提供一种面向智能电表嵌入式应用的测试方法,其改进之处在于,所述智能电表存储芯片与模拟存储器测试板系统通信,所述方法包括存储芯片测试和计量芯片测试。
进一步地,所述存储芯片测试包括:测试存储芯片对数据的分块存储,EEPROM不能写时的存储策略;测试智能电表费率、电价、剩余金额和购电次数重要数据是否有备份;测试存储芯片重要数据被破坏是否自恢复;测试存储数据是否有溢出错误。
进一步地,所述测试存储芯片对数据的分块存储,EEPROM不能写时的存储策略包括:存储芯片记录运行过程中电表MCU对存储芯片的每个操作指令,在存储芯片存满之前将操作指令转到存储器模拟监控板ARM中,上位机将小于存储器存满的时间为固定周期,取存储器模拟监控板ARM中的操作指令,查看记录的指令对存储芯片的操作是否根据统计的不同类数据存放到相应的目的地址,把操作次数不同(也就是不同类)的地址按一定阈值(该阈值根据不同电表的测试需要现场设定)标记为不同颜色,分析数据是否分块;显示统计的地址操作次数,生成一张表观察电表MCU(电表MCU是控制电表存储芯片)对FPGA中的模拟存储芯片的操作规律。
进一步地,所述测试智能电表费率、电价、剩余金额和购电次数重要数据是否有备份,包括:1)针对性测试:统计所有智能电表厂家在智能电表软件中的数据备份方案的地址与重要数据存放的地址是否一致;2)遍历性测试,统计智能电表MCU对存储芯片的操作指令,按照操作次数相同和连续数据长度相同比对模拟存储器FPGA(此存储器指的是FPGA模拟存储器)中所有地址的数据有无备份。
进一步地,所述测试存储芯片重要数据被破坏是否自恢复包括:主动破坏有备份的数据,以整数倍与智能电表MCU操作存储芯片的周期(指的是固定时间,一般为半个小时)为时间,查看并记录数据是否能够恢复正常,是否能够以备份的数据恢复原有数据,同时统计恢复所需要的时间。
进一步地,所述存储数据是否有溢出错误包括:①统计记录的智能电表MCU对存储芯片的操作指令中是否有在定义物理地址外的操作;②涉及EEPROM的页边界问题:统计智能电表MCU对存储芯片的操作指令中每一页最后的地址与下一页页首的地址是否连续;并将每一页的最后存放的超出本页剩余地址长度的数据存放到下一页,不能卷到本页的页首冲掉已有的数据。
进一步地,所述计量芯片测试包括:测试电表上电时是否能正常设置计量参数;测试智能电表正常工作时对计量芯片是否有监视;测试输入异常计量数据对电表的影响。
进一步地,所述测试电表上电时是否能正常设置计量参数包括:统计电表MCU对计量芯片的操作指令,查看电表上电时MCU对计量芯片的参数寄存器是否有写操作,读取计量参数(计量参数包括电能表、费率、电价、剩余金额和购电次数参数)寄存器的值,比对是否为复位之后的值;手动修改计量参数寄存器的值,查看计量参数是否恢复,并记录计量参数恢复所需的时间。
进一步地,所述测试智能电表正常工作时对计量芯片是否有监视包括:统计电表MCU对计量芯片的操作指令,参看电表MCU对计量参数寄存器是否有定时的读操作,记录读操作的时间间隔。
进一步地,所述测试输入异常计量数据对电表系统的影响包括:手动输入超量的有效功率(一般是上限的1.2倍),查看计量芯片是否能正常工作,并记录计量芯片正常工作的时间。
与最接近的现有技术相比,本发明提供的技术方案具有的优异效果是:
(1)本发明提供的测试方法主要针对智能电表嵌入式软件,可以全面、细致分析智能电能表嵌入式软件的可靠性。
(2)现有的软件黑盒测试方法没有针对智能电能表软件故障进行分析形成有针对性的测试用例,本发明设计了智能电能表软件测试用例的高效生成方法,提高了智能电能表软件故障的触发率。
(3)目前的软件测试只是对系统的功能和通信规约进行测试,没有对数据存储的可靠性进行测试,本发明的提出有效控制了电能表软件的质量,消除了电能表软件可能存在的安全隐患,解决了其功能实现不统一等问题。
附图说明
图1是本发明提供的上位机软件设计框图;
图2是本发明提供的测试方法的流程图;
图3是本发明提供的测试方法架构图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的详细说明。
智能电表嵌入式软件的可靠性测试软件在设计时尽量保持各个模块的独立性,在设计模式上采用MVC框架,将用户界面与数据层分离,使用控制层连接界面和数据层,这样使得开发过程更加高效,后期功能扩展维护更加容易。本发明提供的上位机软件设计框图如图1所示,包括如下几个部分:
数据库:存储各模拟单元信息、测试方案、测试日志/报告、配置信息。
功能设置/配置:配置各种信息,如芯片的选择、测试方案的选择与配置、各通信接口的选择等。
显示:提供实时刷新有变化的模块数据显示功能等人机交互接口。
测试日志/报告:记录测试过程与生成测试报告。
各单元模块:具体对应各单元的测试需求。
智能电表包括存储芯片单元、计量芯片单元、安全单元、时钟芯片单元、红外485单元和负载开关单元;存储芯片单元、计量芯片单元、安全单元、时钟芯片单元、红外/485单元和负载开关单元均通过智能电表MCU进行控制。
测试过程中首先要对被测的智能电表嵌入式系统进行配置,不同的电表厂家、同厂家不同的电表型号都有不同的测试需求,就需要有不同的测试策略来配合。因此,上位机对于测试信息的配置是必要的,上位机作为服务端通过以太网通信将配置信息下发到作为客户端测试平台的功能模拟模块,配置成功的信息返回上位机之后开始测试。本发明提供的测试方法的流程图如图2所示。
本发明提供的面向智能电表嵌入式软件的测试方法主要包括:对存储芯片单元和计量芯片单元的相关测试。
存储芯片单元的测试包括:存储芯片对不同数据的分块存储,EEPROM不能写时的存储策略;智能电表重要数据是否有备份;存储器重要数据被破坏可否自恢复;存储数据是否有溢出错误。
测试所述存储芯片对不同数据的分块存储,EEPROM不能写时的存储策略,包括:存储芯片记录软件运行过程中MCU对存储芯片的每一个操作指令,在存储芯片存满之前将指令转到ARM芯片的存储器中,上位机软件设计一个单独的线程,已小于存储器存满的时间为固定周期,取ARM存储器中的指令,查看记录的指令对存储芯片的操作根据统计不同数据存放的目的地址,把操作次数不同的地址按一定阈值标记为不同颜色,分析数据是否分块,弹出测试结论提示。显示统计的地址操作次数,生成一张表可以直观观察电表MCU对存储芯片的操作规律。
测试所述智能电表重要数据是否有备份,包括:1)针对性测试,统计所有智能电表厂家在智能电表软件中的数据备份方案:备份的方式,备份数据的地址,重要数据存放的地址。读取备份地址的数据,与重要数据作比对,验证是否一致。2)遍历性测试,统计智能电表MCU对存储芯片的操作指令,按照操作次数相同、连续数据长度相同比对存储器中所有地址的数据有无备份。
所述存储器重要数据被破坏可否自恢复,包括:主动破坏有备份的数据,以整数倍与智能电表MCU操作存储芯片的周期为时间,查看并记录该数据是否可以恢复正常,是否可以以备份的数据恢复原有数据,同时统计恢复所需要的时间。
所述存储数据是否有溢出错误,包括:①统计记录的智能电表MCU对存储芯片的操作指令中有没有在定义的物理地址外的操作。②考虑EEPROM的页边界问题:统计智能电表MCU对存储芯片的操作指令中每一最后的地址与下一页页首的地址是否连续,每一页的最后,要存放的数据超出本页剩余的地址长度,应该将多出的数据存放到下一页,不能卷到本页的页首冲掉已有的数据。
计量芯片单元测试包括:电表上电时是否能正常设置计量参数;智能电表正常工作时对计量芯片是否有监视;输入异常计量数据对电表系统的影响。
所述电表上电时是否能正常设置计量参数,包括:统计电表MCU对计量芯片的操作指令,查看电表上电时MCU对计量芯片的参数寄存器有没有写操作,然后读取参数寄存器的值,比对是否为复位之后的值。手动修改计量参数寄存器的值,查看参数是否可以恢复,并记录参数恢复所需的时间。
所述智能电表正常工作时对计量芯片是否有监视,包括:统计电表MCU对计量芯片的操作指令,参看电表MCU对计量参数寄存器是否有定时的读操作,记录这些读操作的时间间隔。
所述输入异常计量数据对电表系统的影响,包括:手动输入一个超量的有效功率,查看计量芯片是否还能正常工作,并记录芯片正常工作的时间。
测试软件的架构中,界面操作是主线程,通过一些按钮操作触发数据管理线程,数据管理线程判断与哪个端口进行通信,收发的是哪种类型的数据。建立收/发两个线程,与各个测试版建立连接(循环),将建立连接的通信套接字的服务器端ip端口保存到一个列表里,之后所有向服务器端发送Socket都由这个列表中取出对应的对像发送。测试方法架构图如图3所示。
多线程通信,主线程中建立消息管理队列实现线程管理,与数据库相连接实现数据的存取,和数据显示中的分页。界面设计运用C#中的winforms控件完成,界面主题采用页签(tabpage)的形式来展示不同的测试模块,分别为:总体配置页、计量芯片单元、存储芯片单元、时钟芯片单元、安全芯片单元、红外/485单元、负载开关单元、电流电压检测单元和通信连接页。
本发明中的智能电表嵌入式软件测试方法与以往的电能表测试软件不同,不只关注电能表嵌入式软件的调试工作,而是采用黑盒法,按智能电表功能模块化的测试,在智能电表嵌入式软件可靠性测试中是一种新的、可控的、针对应用的测试方法。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员依然可以对本发明的具体实施方式进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。