掌桥专利:专业的专利平台
掌桥专利
首页

用于白盒测试的断点配置方法、系统和装置

文献发布时间:2023-06-19 11:22:42


用于白盒测试的断点配置方法、系统和装置

技术领域

本发明涉及金融支付终端技术领域,具体地,涉及一种用于白盒测试的断点配置方法、系统和装置。

背景技术

在金融支付终端领域,安装在终端上的APP在使用前,必须进行可靠的性能测试,因为金融终端APP涉及到的都是资金账户,所以程序上面如果存在不可未知的错误,会对顾客的资金账户有损害。

一般的金融终端APP测试,都是把程序开发好后,让测试员根据APP功能文档进行功能性测试,而测试员不一定了解APP流程的完整过程,所以测试中总会错过盲点,比如冲正点都是通过直接对金融终端进行断电的方式来测试,而冲正是否产生或者产生的位置是否是需要测试的测试点,都无法预料的,所以通过测试员的黑盒测试方式是不可避免的错过一些测试内容,导致测试覆盖面较窄。

专利文献CN104331361A(申请号:CN201410476175.X)公开了一种用于白盒测试覆盖率计算可视化的测试装置及方法,测试装置包括源码分块装置和覆盖率计算可视化呈现装置,利用上述装置进行测试的方法包括如下步骤:源码分块步骤;覆盖率计算可视化呈现步骤。通过本发明的白盒测试覆盖率计算可视化的测试装置及方法,为测试人员提供详细的测试覆盖率情况,让用户更方便快速的定位到源代码的逻辑错误点,并引导用户设计出能达到100%覆盖率的测试用例。

发明内容

针对现有技术中的缺陷,本发明的目的是提供一种用于白盒测试的断点配置方法、系统和装置。

根据本发明提供的用于白盒测试的断点配置方法,包括:

步骤1:确定在金融交易过程中的交易类型、是否有冲正、通讯方式、卡片信息获取方式、密码取值、签名取值和交易金额的取值范围;

步骤2:根据获取的信息,列出交易金额、卡片输入类型、通讯方式、密码输入情况、签名输入情况和冲正点的处理方式;

步骤3:根据列出来的信息生成列表,统计出需要测试的案例;

步骤4:基于统计出的需要测试的案例,把对应的无法通过外部手工操作来实现的测试点通过编写DEBUG程序来进行PC串口指令控制或者金融终端菜单按键控制;

步骤5:根据测试案例通过编写的DEBUG程序依次配置对应的测试点的值进行测试。

优选的,在列出交易金额中选取5个点:低于预设范围的任一值、预设范围最低值、预设范围内的任一值、预设范围最大值、高于预设范围的任一值;

卡片输入类型包括磁条卡、接触IC卡和非接卡;

通讯方式包括GPRS和WIFI;

密码输入情况包括:不输入密码、输入正确密码、输入错误密码、输入密码长度小于最低值和输入密码长度大于最大值;

签名输入情况包括:不签名、签名超过签名范围框、正确签名、满屏签名和最小点签名;

冲正点的处理方式包括产生冲正点和删除冲正点。

优选的,检验是否产生冲正,检验的场景包括:交易通讯包打包时、交易通讯包在连接后台成功前、交易通讯包在连接后台成功后、交易通讯包在发送数据前、交易通讯包在发送数据后和交易通讯包在接收数据前;

检验到冲正后通知后台查询交易是否存在,如果存在则进行销账;如果该交易不存在则忽视该查询。

优选的,检验是否删除冲正,检验场景包括:交易通讯包在接收数据后、交易通讯包在接收数据后的解包失败后、交易通讯包在接收数据后的解包正确后、交易通讯包在接收数据后的解包正确但返回域的值非零时、交易通讯包在接收数据后的解包正确返回域的值为零时和交易结束后在保存交易信息前;

若冲正没有删除则通知后台进行删除处理,在删除冲正后继续进行金融交易。

根据本发明提供的用于白盒测试的断点配置系统,包括:

模块M1:确定在金融交易过程中的交易类型、是否有冲正、通讯方式、卡片信息获取方式、密码取值、签名取值和交易金额的取值范围;

模块M2:根据获取的信息,列出交易金额、卡片输入类型、通讯方式、密码输入情况、签名输入情况和冲正点的处理方式;

模块M3:根据列出来的信息生成列表,统计出需要测试的案例;

模块M4:基于统计出的需要测试的案例,把对应的无法通过外部手工操作来实现的测试点通过编写DEBUG程序来进行PC串口指令控制或者金融终端菜单按键控制;

模块M5:根据测试案例通过编写的DEBUG程序依次配置对应的测试点的值进行测试。

优选的,在列出交易金额中选取5个点:低于预设范围的任一值、预设范围最低值、预设范围内的任一值、预设范围最大值、高于预设范围的任一值;

卡片输入类型包括磁条卡、接触IC卡和非接卡;

通讯方式包括GPRS和WIFI;

密码输入情况包括:不输入密码、输入正确密码、输入错误密码、输入密码长度小于最低值和输入密码长度大于最大值;

签名输入情况包括:不签名、签名超过签名范围框、正确签名、满屏签名和最小点签名;

冲正点的处理方式包括产生冲正点和删除冲正点。

优选的,检验是否产生冲正,检验的场景包括:交易通讯包打包时、交易通讯包在连接后台成功前、交易通讯包在连接后台成功后、交易通讯包在发送数据前、交易通讯包在发送数据后和交易通讯包在接收数据前;

检验到冲正后通知后台查询交易是否存在,如果存在则进行销账;如果该交易不存在则忽视该查询。

优选的,检验是否删除冲正,检验场景包括:交易通讯包在接收数据后、交易通讯包在接收数据后的解包失败后、交易通讯包在接收数据后的解包正确后、交易通讯包在接收数据后的解包正确但返回域的值非零时、交易通讯包在接收数据后的解包正确返回域的值为零时和交易结束后在保存交易信息前;

若冲正没有删除则通知后台进行删除处理,在删除冲正后继续进行金融交易。

根据本发明提供的用于白盒测试的断点配置装置,通过断点配置装置来实现输入端设备正常工作或者断电无法工作,输入端设备包括:卡片信息获取的输入端、交易金额输入端、密码输入端、签名输入端和通讯设备。

优选的,通过断点配置装置和DEBUG程序组合使用,对可预知的全部测试点进行测试,排除程序编写的需求错误或者逻辑错误。

与现有技术相比,本发明具有如下的有益效果:

(1)本发明避免了测试员在测试时盲目通过开关机来人为模拟各种异常,而是针对性的测试各个点,节约了时间、精力和人力,提高了测试的全面性和正确性、并降低了开发周期和开发成本;

(2)本发明通过冲正检验的方式,可实现自动异步冲正,有效提高了交易结果的正确性,减少人工干预冲正的工作量。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1是本发明方法流程图;

图2是本发明实施例一提供的金融消费测试冲正点的流程示意图;

图3是本发明实施例一提供的金融结算测试冲正点的流程示意图;

图4是本发明实施例一提供的金融冲正测试冲正点的流程示意图;

图5是本发明实施例二提供的金融消费硬件异常的流程示意图;

图6是本发明实施例三提供的金融消费时突然断电的流程示意图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

实施例1:

如图1,根据本发明提供的白盒测试的断点配置方法,包括:

步骤1:确定在金融交易过程中的交易类型、是否有冲正、通讯方式、卡片信息获取方式、密码取值、签名取值和交易金额的取值范围;

步骤2:根据获取的信息,列出交易金额、卡片输入类型、通讯方式、密码输入情况、签名输入情况和冲正点的取值方式;

步骤3:根据列出来的信息生成列表,统计出需要测试的案例;

步骤4:基于统计出的需要测试的案例,把对应的无法通过外部手工操作来实现的测试点通过编写DEBUG程序来进行PC串口指令控制或者金融终端菜单按键控制;

步骤5:根据测试案例通过编写的DEBUG程序依次配置对应的测试点的值进行测试。

根据本发明提供了一种测试冲正的断点配置方法,应用于金融消费类涉及到顾客资金账户是否短款,包括:

确定交易通讯包打包时,是否产生冲正;

确定交易通讯包在连接后台成功前,是否产生冲正;

确定交易通讯包在连接后台成功后,是否产生冲正;

确定交易通讯包在发送数据前,是否产生冲正;

确定交易通讯包在发送数据后,是否产生冲正;

确定交易通讯包在接收数据前,是否产生冲正;

确定交易通讯包在接收数据后,是否立马删除冲正;

确定交易通讯包在接收数据后,解包失败后是否立马删除冲正;

确定交易通讯包在接收数据后,解包正确后是否立马删除冲正;

确定交易通讯包在接收数据后,解包正确但返回域的值非零时是否立马删除冲正;

确定交易通讯包在接收数据后,解包正确返回域的值为零时是否立马删除冲正;

确定交易结束后在保存交易信息前是否立马删除冲正。

根据本发明提供了一种测试硬件设备异常的装置,应用于金融消费时是否有一个超时机制,包括:

确定金额是否可以正常输入,是否有超时退出机制;

确定磁条卡是否可以正常读卡,是否有超时退出机制;

确定接触IC卡是否可以正常读卡,是否有超时退出机制;

确定非接卡是否可以正常读卡,是否有超时退出机制;

确定密码是否可以正常输入,是否有超时退出机制;

确定签名是否可以正常输入,是否有超时退出机制;

确定GPRS通讯是否正常,是否有超时退出机制;

确定WIFI通讯是否正常,是否有超时退出机制;

确定文件保存系统是否正常,数据保存是否有处理机制。

根据本发明提供了一种断点配置方法和装置同时使用,模拟金融支付时出现突然断电的未知错误,包括:确定交易通讯包在连接后台成功后,开始发送数据到交易保存成功的过程中突然断电的异常处理是否正确。

实施例2:

金融交易分两种,一种在交易过程中会产生冲正,另一种在交易过程中不会产生冲正。冲正也是一种交易类型,不过它属于通知类交易,它的作用是告诉后台刚才发送上来的某笔交易请查询是否存在,如果存在请销账掉;如果没有这笔交易的存在,就忽视掉这笔查询。而金融支付涉及到资金往来的一般会有消费、消费撤销、预授权等,这些交易必须要支持冲正。不能因为通讯的原因或者数据包处理上面的原因,造成了后台和金融终端两边信息不对等,如果不及时冲正掉这笔交易,就会出现顾客的资金账户出现短款现象。而签到,结算,余额查询类交易,是不涉及到资金往来的,所以这些交易类型用不到冲正。所以在这些非扣款类交易时无须考虑冲正的产生。

冲正分两种情况,有或者无。还有第三种情况,就是冲正产生后,需要发送冲正包,冲正交易是查询类交易,所以冲正包本身没有冲正,但是如果因为通讯的原因或者冲正包本身的异常,造成冲正包无法收到后台正常的返回,如果不对冲正包进行处理,则金融终端无法继续进行交易,因为在正常交易包发送前必须要先把冲正包发送给后台处理掉。所以银联约定,同一个冲正包最多发送3次,如果3次后无后台响应,则删除掉这笔冲正,让下面的金融交易继续运行下去。

在本实施例中,需要测试的案例包括:

1、调用pack_8583处设置一个断点;

2、调用tcp_connect前设置一个断点;

3、调用tcp_connect后设置一个断点;

4、调用tcp_send前设置一个断点;

5、调用tcp_send后设置一个断点;

6、调用tcp_recv前设置一个断点;

7、调用tecp_recv后设置一个断点;

8、调用unpack_8583失败处设置一个断点;

9、调用unpack_8583成功处设置一个断点;

10、8583包里面的bit39域返回非0处设置一个断点;

11、8583包里面的bit39域返回0处设置一个断点;

12、调用Trans_save前设置一个断点。

本实施例流程讲的是消费交易,消费类交易是属于必须有冲正的,所以本实施例讲的就是冲正标志位是否正常置上和及时删除掉。

本实施例中,当前设备不存在冲正,被测试设备刷的接触IC卡,输入的是6位密码123456,交易金额0.01元,通讯设备正常,在交易通讯包打包前一切都正确操作完成。

如图2,本实施例流程如下:

步骤S1,选择消费菜单,输入交易金额0.01元,插入接触IC卡读取卡号后,按照提示输入交易密码123456,签名,检查当前是否有冲正存在,目前终端没有冲正。

步骤S2,打8583交易通讯包,程序里面在打8583交易包的时候同时会打一个该笔交易的冲正包,但是不会置上冲正标志位。所以此处要设置一个断点,看程序到底有没有错误的置冲正标志位。

步骤S3,进入通讯函数开始网络连接后台,此处要设置一个断点,看程序在后台连通前有没有错误的置冲正标志位。

步骤S4,连接后台成功后,此处要设置一个断点,看程序在后台连通后有没有错误的置冲正标志位。

步骤S5,数据发送前,此处要设置一个断点,看程序在数据发送前有没有错误的未置冲正标志位。

步骤S6,数据发送后,数据接收前,收据接收后这三处要设置一个断点,看程序当前冲正标志位是否还在。

步骤S7,解8583包,分别在解包成功失败处分别置断点,解包成功后,再分析8583包里面的bit39域是否是0,分别在0和非0处设置断点。

步骤S8,交易成功需要保存交易,在交易保存前设置断点。

本实施例正确的冲正位置和删除的断点是在tcp_send前置冲正标志位,因为终端无法预知自己发送的数据后台是否收到,所以此处必须把冲正位置上,然后在后台返回8583包39域非0时就删除冲正标志位,而如果39域是0的话,必须在交易数据保存成功后才能把冲正标志位删除。因为39域返回非0代表后台并没有让这笔消费成功,所以没有必要往后台发冲正去删除这笔不存在的交易,而39域返回0时,因为涉及到账目被终端统计进去的问题,所以必须先让交易保存成功后才能删除冲正,因为在这过程中如果发生断电或者交易数据无法写入文件系统的异常时,必须当成本笔交易不成功,发起冲正通知后台删除刚才成功的这笔交易。

实施例3:

本实施例流程讲的是结算交易,结算交易是属于没有冲正的,所以本实施例讲的就是不可以产生冲正。

如图3,本实施例中,当前设备不存在冲正,在结算通讯包打包前一切都正确操作完成,流程如下:

步骤S11,选择结算菜单,检查当前是否有冲正存在,目前终端没有冲正。

步骤S12,打8583交易通讯包,程序里面在打8583结算包的时候,没有冲正包,更不存在置冲正位的概念。所以此处要设置一个断点,看程序到底有没有错误的置冲正标志位。

步骤S13,进入通讯函数开始网络连接后台,此处要设置一个断点,看程序在后台连通前有没有错误的置冲正标志位。

步骤S14,连接后台成功后,此处要设置一个断点,看程序在后台连通后有没有错误的置冲正标志位。

步骤S15,数据发送前,此处要设置一个断点,看程序在数据发送前有没有错误的未置冲正标志位。

步骤S16,数据发送后,数据接收前,收据接收后这三处要设置一个断点,看程序当前冲正标志位是否还在。

步骤S17,解8583包,分别在解包成功失败处分别置断点,解包成功后,再分析8583包里面的bit39域是否是0,分别在0和非0处设置断点。

步骤S18,结算成功后,清除终端里所有交易记录还有统计信息。

本实施例因为是非扣款类交易,所以整个结算过程中没有冲正产生。

实施例4:

本实施例流程讲的是结算交易,结算交易是属于没有冲正的,所以本实施例讲的就是不可以产生冲正。

如图4,本实施例中,当前设备肯定存在冲正,流程如下:

步骤S21,选择一个联机交易菜单,比如此刻选结算,检查当前是否有冲正存在,目前终端存在冲正。

冲正交易指的是在做任何联机交易前(除了签到交易外)首选判断终端是否有冲正标志位,如果有的话,就必须发起的冲正交易。

步骤S22,打8583冲正交易通讯包。

步骤S23,进入通讯函数开始网络连接后台,成功后发送数据。

步骤S24,在数据接收处设置断点,永远当成后台无数据返回。

步骤S25,检查冲正标志位,如果冲正位不存在了就继续开始结算,如果冲正标志位,看是否已经循环到第3次了,如果不是就回到步骤S22,如果已经是第3次了,直接删除当前冲正标志位。

本实施例是针对冲正包的处理流程,主要就是测试的冲正包3次后台无应答时要及时删除冲正位,因为测试员手动模拟很难做出这个测试点,而本发明能够很容易制造出测试点。

实施例5:

金融终端在使用过程中总会遇到某一个硬件损坏的问题,针对损坏的情况下终端是否还能正常工作还是产生一些奇怪的异常扣款操作,测试员在测试时无法模拟出硬件损坏的情况,所以测试硬件设备异常的装置的存在很完美的解决了这些测试案例。

本实施例讲的是消费交易,因为是验证硬件不正常工作对程序流程的影响,所以本实施例初始状态没有冲正存在。

如图5,本实施例中,被测试设备刷的接触IC卡,输入的是6位密码123456,交易金额0.01元,流程如下:

步骤S31,选择消费菜单,输入交易金额0.01,此处装置控制输入键盘板无法输入金额,看是否正常超时退出还是有其它异常。

步骤S32,插入接触IC卡,此处装置控制IC读卡器无法读卡,看是否正常超时退出还是有其它异常。

步骤S33,输入密码123456,此处装置控制密码键盘无法输入,看是否正常超时退出还是有其它异常。

步骤S34,签名,此处装置控制签名屏无法工作,看是否正常超时退出还是有其它异常。

步骤S35,通讯,此处装置控制通讯设备无法工作,看是否正常超时退出还是有其它异常,还有冲正位是否正常置好。

步骤S36,保存交易,此处装置控制FLASH无法写入,看交易是否保存下去冲正位是否删除。

本实施例是针对硬件异常的处理流程,步骤S31应该在输入金额超时60秒后退出,步骤S32应该在IC卡读超时30秒后退出,步骤S33应该在等待输入超时60秒后退出,步骤S34签名强制执行,步骤S35应该在连接后台60秒不成功时退出、接收60秒没有应答后超时退出(这个时候要置冲正的),步骤S36在交易保存时,要判断写入文件是否成功,如果不成功要冲正掉这笔交易,而不是默认肯定写成功。

实施例6:

金融终端在使用过程中总会遇到突然停电的情况,而这种不确定性根本无法预料程序正在运行到哪一步,而对金融支付而言,因为有冲正的概念,所以只要好好的处理好冲正标志位,不管突然停电时程序在哪一步,都不担心账户出现短款。

本实施例就是通过断点和装置组合使用来模拟各种突然停电情况,尽可能的覆盖所有的测试点。

本实施例讲的是消费交易,因为是验证突然停电对程序流程的影响,所以本实施例初始状态没有冲正存在。

如图6,本实施例中,被测试设备刷的接触IC卡,输入的是6位密码123456,交易金额0.01元,流程如下:

步骤S41,选择消费菜单,输入交易金额0.01元,插入接触IC卡读取卡号后,按照提示输入交易密码123456,签名,检查当前是否有冲正存在,目前终端没有冲正。因为这些操作时,并没有和后台交互呢,所有这边没有必要测试断电异常,因为不存在账户扣款的概念。

步骤S42,打8583消费通讯包,进入通讯函数开始网络连接后台,成功后发送数据,等待后台数据返回。在数据发送后,开始加断点,配合装置断电。分别在发送后,接收后,处理8583包时。

步骤S43,交易成功的时候,保存交易时突然断电,这个需要在保存数据的过程中多处加入断点,确定好什么样的存储顺序才会不造成终端和后台之间的数据不统一。

功能测试项和结果如下表:

本实施例中如果没有加入断点的话,光靠测试员眼睛来判断,无法准确的定位到程序走到哪一步,数据保存到哪一步。金融终端的最大要求就是不能出现帐不平,所以一切都是以交易往外发送到交易成功数据保存及冲正位的置位上面的处理。本发明完美的解决了测试中黑盒测试的缺点,可以准确的条理性的测试,让可预见的异常都覆盖性测试完。本发明断点控制办法可以通过按键来配置,也可以通过PC串口来控制。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

相关技术
  • 用于白盒测试的断点配置方法、系统和装置
  • 用于在人工神经系统中实现断点确定单元的方法和装置
技术分类

06120112901378