1. 功能测试方法与技术
第三方支付服务系统的功能测试目的是在测试环境下,从适合性和准确性两方面考虑,测试《检测规范》中规定的业务功能处理及相关要求,采用的测试方法为黑盒测试方法。
适合性方面建议采用功能分解的方法,将每一个功能加以分解,确保各个功能被全面地检测;准确性方面建议采用如等价类划分、边界值分析、猜错法、因果图等方法,确保功能测试的充分性。
● 等价类划分法
等价类划分法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。等价类划分有两种不同的情况:有效等价类和无效等价类。有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。无效等价类就是那些对程序的规格说明不合理的或无意义的输入数据所构成的集合。
● 边界值分析方法
边界值分析法是用于对输入或输出的边界值进行测试的一种黑盒测试方法。在功能测试中,针对功能说明中的输入输出域,进行边界值和极限值的设计和测试。使用边界值分析方法设计测试用例,首先,应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。其次,应选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
● 猜错法
采用逆向思维方式,结合以往测试经验和直觉设计软件在功能和流程上可能存在的各种错误,从而有针对性地设计测试用例的方法,进行容错性测试。基本思路是列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如,输入数据和输出数据为0的情况。
● 因果图方法
等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。如果在测试时必须考虑输入条件的各种组合,则可能的组合将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例设计,这就需要利用输入条件的逻辑模型,即因果图。
2. 风险监控测试方法
风险监控测试主要验证支付服务业务系统的账户及交易风险,在实际测试中,我们采用的方法有以下几种:
● 检测非金融机构在相关风险管理制度中是否完整、明确地描述账户风险事件类型和相应的风险控制措施;
● 通过行为记录、日志检查、账户资金变更跟踪等手段进行风险分析;
● 检测对账户的人工操作是否保证处理过程中的职责分离;
● 检测非金融机构在相关风险管理制度中是否明确定义各类交易监控和交易审核规则;
● 通过实际交易或查看交易监控与交易审核规则,以及相关记录验证交易监控与交易审核的实时性;
● 通过报表查询测试交易记录的正确性;
● 通过检测交易监控系统对风险交易和异常交易的识别,检测其对异常事件的预警能力;
● 检测风险管理体系中是否支持人工对规则进行维护。
3. 性能测试策略与方法
与其他应用系统的性能测试一样,规范的第三方支付系统性能测试同样需要经历测试准备、测试实施和测试总结等过程。
● 性能需求分析
因各家非金融机构支付服务系统的用户规模不同,所以央行并未对第三方支付系统性能检测环境和性能指标进行硬性规定,性能指标的确认依据主要来自于系统需求文档中对性能的约定或用户性能需求的调研。
性能需求的主要调查内容包括:系统实际使用的用户数量、正常情况下系统的平均使用用户数、高峰时段的在线用户量、可预期生命周期内系统的用户增长情况、一年的业务量及日交易量、压力解除后系统自恢复时间要求等。
● 性能测试策略
根据非金融机构支付服务系统的业务特点,对其性能的测试大致可分为两类:一类是包含数据写操作和数据查询操作的并发测试性能(如:支付、交易明细查询等);另一类是大数据量处理性能(如:日终批处理等)。
并发测试策略的主要内容应包括:并发用户数、性能指标要求(包括响应时间、系统资源占用)等;对大数据量计算性能测试策略的制定过程中,需要关注的是对批处理交易数据量的要求。
● 性能测试点选取分析
按照央行的定义,第三方支付服务包含互联网支付、预付卡的发行与受理、银行卡收单、移动支付等,而无论采用哪种支付方式,四种支付平台实质上都是买卖双方交易过程中的“中间件”,它的核心功能就是通过提供的支付网关为交易双方提供支付、充值等交易服务,并记录双方的交易数据。对其测试点的选择可以典型交易、复杂业务流程、频繁的用户操作、大数据量处理等为总体指导原则,围绕支付、交易管理、资金结算、对账处理等核心业务进行选取。
在互联网络支付系统中,我们将重点选取支付、交易明细查询等操作进行测试;预付卡部分重点选取联机消费、联机余额查询等操作进行测试,脱机交易类来说重点选取脱机消费文件处理等操作进行测试;银行卡收单部分重点选取消费、日终批处理等操作进行测试;远程移动支付部分重点选取支付、交易明细查询等操作进行测试;近场移动支付部分中对于联机交易类来说重点选取联机消费、联机余额查询等操作进行测试,脱机交易类来说重点选取脱机消费文件处理等操作进行测试。
● 性能测试方法
第三方支付系统性能测试可以选择常见的商用性能测试软件进行,但需要注意的是由于交易过程通常需要调用银行接口与协约银行进行数据交换,因此在测试脚本编辑过程中需要用模拟接口来替换真实的银行接口来测试支付平台的真实性能。预付卡和银行卡收单其交易数据的来源均为POS机,平台的整体结构如图1所示。性能测试中只能用开发的工具或编制的脚本来模拟发送报文到POS前置服务器进行并发测试,具体可通过Socket协议编写报文发送脚本的过程进行实现。