求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
第三方支付系统如何做软件测试?案例分析
 
作者: 宋铮 罗文兵 ,发布于2012-3-31
 

一、背景

近年来,随着互联网应用服务的发展、尤其是电子商务的勃兴,我国的第三方支付产业进入了爆炸式增长时期。目前,第三方支付企业的年交易总额已突破万亿元,在人民银行备案的第三方支付企业数量已达260多家。第三方支付以其方便、快捷、无相关费用的特点,越来越受到人们的青睐,越来越多的网上交易采用第三方支付企业来完成支付结算。第三方支付方式已经融入到了人们的日常生活和工作中,正在改变着人们的消费习惯。

然而,第三方支付企业虽然从事金融货币支付业务,但一直游离于金融监管体系之外,各企业间的信用、技术、资金实力等参差不齐,行业发展整体面临不确定性,尤其是大量沉淀资金带来的金融风险,以及欺诈、洗钱、套现、钓鱼、信息泄露、业务连续性差等带来的技术与安全风险,不仅严重影响了整个产业的形象和进一步发展,也影响了国家的金融稳定和人民财产安全。

为了规范第三方支付服务,降低技术安全风险,维护资金财产安全,中国人民银行积极出台相关政策陆续发布了《非金融机构支付服务管理办法》、《非金融机构支付服务管理办法实施细则》,正式将第三方支付纳入国家统一监管,并实施准入制度,要求从事支付服务的非金融机构必须取得《支付业务许可证》,成为支付机构,才能开展支付业务。随后,人民银行又颁布了《非金融机构支付服务业务系统检测认证管理规定》进一步明确了支付业务系统检测要求。第三方权威检测机构中国软件评测中心积极参与非金融机构支付服务业务系统检测规范的制订,并成为央行指定的具有全业务检测资格的检测机构。

本文涉及的支付系统是典型第三方支付系统,涉及测试业务类型为互联网支付系统检测。该系统为自主开发,根据《非金融机构支付服务业务系统检测规范(互联网支付部分)》的要求,该系统的检测内容包括功能、性能、风险监控、安全性、文档五部分。

二、互联网支付业务系统特点

该支付服务业务系统主要包括网站、交易系统、后台管理系统、商户管理系统、风险监控系统等,实现了客户管理、账户管理、交易处理、资金结算、对账处理、操作处理、统计报表、运行管理、风险控制等功能。其系统结构如图1所示。

图1 典型互联网支付业务系统

该支付服务业务系统具有以下特点:

(1) 业务流程复杂

该系统为客户提供的服务形式丰富、方式多样,除常规的一般支付流程外,还提供很多衍生的支付流程,以及细化的账户管理内容。此外,流程中还融入交易分析和风险监控的控制措施,因此流程环节较多。

(2) 性能测试点需求全面,数据量大

该系统实际交易数据量大,在测试时要求的数据量也较大,系统性能需求较高。

(3) 具有独立的风控系统

该系统具有独立的风控系统,风控系统的测试需要单独进行。

(4) 安全性要求较高

非金融机构支付服务业务系统涉及资金交易,对安全性要求较高,央行在相关管理规定中要求第三方支付企业信息系统安全等级要达到信息安全等级保护三级的基本要求。

(5) 系统庞大,设备较多

该系统为全国性支付服务系统,系统部署较庞大,涉及的服务器、网络设备、安全设备较多。

三、测试分析与准备

针对以上特点,在测试项目实施前,我们重点做好了以下几项工作,确保项目实施顺利进行:

(1)尽早熟悉系统,通过文档、系统介绍、实际操作等方式,使测试人员在进场前熟悉系统,理清复杂流程,明确检测内容,设计详细的测试用例,并适当增加测试人员,保障测试全面、细致。

(2)提前准备测试环境和测试数据,设计性能测试场景,沟通测试方法,并要求被检测机构事先完成自测,保障系统质量。

(3)提前熟悉风控系统实现流程,分析与功能之间的交叉关系,在测试时与功能配合。

(4)就检测内容与被检测机构进行沟通,了解当前系统安全设计和部署情况,对于一些可能影响整个实施进度的情况,例如设备缺失等提前确认,尽早准备。

(5)提前了解系统的部署情况,要求被检测机构提交详细的网络拓扑图,并确定好被测方熟悉系统部署的管理员。

(7)由于本系统测试为标准符合性测试,测试依据以《非金融机构支付服务业务系统检测规范(互联网支付部分)》为主,因此,需要就检测内容与被检测机构进行沟通,使被检测机构对检测内容的理解没有偏差。

四、检测技术及方法

在本项目中,我们重点采用了场景法、边界值法进行系统功能测试,采用负载压力测试工具实现性能测试。

下面结合具体关键点测试案例,来分析本系统的测试方法。

1、转账流程测试

常规情况下,支付系统为客户提供正常转账流程,但本系统对客户进行了细分,包括个人会员、电子协议商户、纸质协议商户,对不同类型的客户间转账设置了不同的处理规则,如表1所示。

转账类型
个人会员
转入个人会员
个人会员转入
电子协议商户
个人会员转入
纸质协议商户
电子协议商户
转入个人会员
电子协议商户
转入电子协议商户
电子协议商户
转入纸质协议商户
纸质协议商户
转入个人会员
纸质协议商户
转入电子协议商户
纸质协议商户
转入纸质协议商户

表1 转账对应关系表

此外,还存在转出账户处于异常状态、转出账户余额不足、转入账户处于异常状态、转账金额超过交易限额、转账支付撤销等异常情况,如图2所示。

图2 该系统转账流程

综合以上情况,整个转账过程包含很多事件, 将登录作为起始事件,登录后的不同操作会进一步触发不同的事件,这些事件在被触发时形成了不同的场景,因此我们可以采用场景法,将正常的转账过程作为基本流,将特殊情况和异常情况的处理过程作为备份流,根据确定的基本流和备份流形成不同场景并设计相应的测试用例,最后通过执行测试用例完成测试。

2、退款流程测试

退款业务属于异常交易处理范畴,本系统提供的退款方式较多包括单笔退款、批量退款、多次退款、人工退款等,此外由于退款还涉及手续费返还,分成结算、查询统计等业务,退款流程较复杂,对于边界值处理的准确性得要求较高。因此,对于测试来讲,设计好的测试用例对于退款业务测试尤为重要。本次测试采用等价类法、边界值法相结合的方法,按照退款计算设计方案将其分类,分为自动退款和人工退款,然后再细分为单笔退款和批量退款,同时考虑单次退款金额略小于原交易额、单次退款金额等于原交易额、单次退款金额略超过原交易额、多次退款金额略小于原交易额、多次退款金额等于原交易额、多次退款金额略超过原交易额,分别设计测试用例,执行时还需重点查看手续费返还、分成结算、状态查询统计等的正确性。

3、风险监控测试

风险监控测试重点验证系统对账户及交易风险防范的能力及相关管理制度。鉴于本系统具有独立的风控系统,在测试时主要采用系统验证、文档审核与访谈相结合,考核相关管理制度是否完善,并模拟钓鱼、套现、欺诈、大额交易、洗钱、盗用等不同类型的账户管理风险和风险交易,考核系统的风险防范及预警能力。

4、性能测试

本系统性能测试包括并发测试、大数据量测试及系统自恢复能力测试。测试点较多,数据量大,需求指标要求较高,因此在测试前被检测机构尽量构建与真实环境相同配置、数据规模满足检测规范要求的压力测试环境。测试时采用了自动化性能测试工具,创建压力测试程序、构建压力测试模型,对被测试系统实施自动化压力测试,并对测试过程中系统各关注点进行监控,最后形成压力测试结果分析报告。

5、安全测评

系统安全性检测针对系统安全不同层面的不同内容,主要采用访谈、现场检查、自动化工具测试、文档审核相结合的方法进行考查。针对本项目服务器等相关设备较多的特点,测试前充分了解系统部署情况,熟悉网络设备、网络架构以及网络安全产品策略、服务器策略、审计及日志管理方式、应用安全保护设施、数据加密及存储方式等,要求被测方准备好相关制度和文档,并针对不同考查点,制定相应详细的访谈表、检查表及测试表。

五、结束语

测试过程中发现了系统功能缺失、实现错误、风险管理制度不完善、安全设备不到位、文档与系统存在部分不一致等问题,经过整改和回归测试,系统已满足检测规范要求。


相关文章

微服务测试之单元测试
一篇图文带你了解白盒测试用例设计方法
全面的质量保障体系之回归测试策略
人工智能自动化测试探索
相关文档

自动化接口测试实践之路
jenkins持续集成测试
性能测试诊断分析与优化
性能测试实例
相关课程

持续集成测试最佳实践
自动化测试体系建设与最佳实践
测试架构的构建与应用实践
DevOps时代的测试技术与最佳实践



LoadRunner性能测试基础
软件测试结果分析和质量报告
面向对象软件测试技术研究
设计测试用例的四条原则
功能测试中故障模型的建立
性能测试综述
更多...   


性能测试方法与技术
测试过程与团队管理
LoadRunner进行性能测试
WEB应用的软件测试
手机软件测试
白盒测试方法与技术


某博彩行业 数据库自动化测试
IT服务商 Web安全测试
IT服务商 自动化测试框架
海航股份 单元测试、重构
测试需求分析与测试用例分析
互联网web测试方法与实践
基于Selenium的Web自动化测试
更多...