【转】有支付功能的产品如何测试
带有支付功能的产品在测试时,一般要格外的小心谨慎,将边界值分析、等价类划分、错误推测、因果图等各种测试方法进行结合,整理出尽可能全面的测试案例,对该支付功能及其相关功能进行测试,以确保整个支付流程以及涉及到支付流程的其他流程在任何情况下都能正常进行。
总结测试思路如下:
1. 从金额上:
包括正常金额的支付,最小值的支付,最大值的支付,错误金额的输入(包括超限的金额、格式错误的金额、不允许使用的货币等等);
2. 从流程上:
包括正常完成支付的流程,支付中断后继续支付的流程,支付中断后结束支付的流程,支付中断结束支付后再次支付的流程,单订单支付的流程,多订单合并支付的流程等等;
首先,应该进行完整的正常流程的测试,如果正常流程都还没有走通,何谈异常情况测试、特殊情况测试呢?在正常流程的测试中,要对各种情况进行合理的组合,比如
1) 不同的购买方式:一件商品为一个订单的支付、多件商品为一个订单的支付、每单一件商品多订单组合的支付、每单多件商品多订单组合的支付;
2) 不同的支付币种:使用人民币支付、使用外币支付、使用人民币和外币组合支付;
3) 不同的付款人:用户ID自己支付、由他人代付、为他人代付;
4) 不同的支付方式:银行借记卡支付、银行信用卡支付、支付宝支付、微信支付、手机支付等。
其次,在正常流程测试通过的情况下,还需要进行特殊情况的测试:
1) 在支付过程中发生了中断,支付没有完成,之后继续支付至支付成功的情况;
2) 在支付过程中发生了中断,支付没有完成,之后不再支付取消订单的情况;
3) 在支付过程中发生了中断,支付没有完成,结束支付后,再次支付至支付成功的情况。
最后,还要进行异常情况的测试:
1) 在支付过程中交易端支付成功,银行或第三方支付平台未扣款;
2) 交易端支付失败,商品未购买成功,但银行或第三方支付平台已扣款;
3) 交易端支付成功,银行或第三方支付平台也已扣款,但显示购买失败;
4) 交易端支付失败,银行或第三方支付平台未扣款,但显示购买成功等。
3. 从使用的设备上:
包括PC端的支付、笔记本电脑的支付、平板电脑的支付、手机端的支付等;
4. 从支付接口上:
包括POSE终端机支付、银行卡网银支付、支付宝支付、微信支付、手机支付等;
5. 从产品容错性上:
包括支付失败后如何补单或者退单、如何退款等;
容错性是支付类产品的一个重要功能,如果没有容错功能,那么这个产品可以说只完成了一半,因为不论是用户使用时的误操作等人为问题,或者是系统高并发时引起的性能问题,又或者是其他各种异常情况引起的问题,都有可能随时发生,如果产品设计开发时缺少了容错方面的考虑,那么这个产品一经使用,很快就会出现问题,引起用户或者产品方的损失。
我们对于容错性的测试,就是要综合考虑在出现各种问题和异常情况时,产品的处理方式和处理结果,对其进行测试。
其实前面在做金额、流程等方面的测试时,已经涉及到了一些容错性方面的测试,而容错性测试本身也是结合在各方面的测试中的:
首先,是用户在使用过程中的人为操作问题,如
1) 输入问题:如,用户输入了不合法的金额,选择了不允许使用的币种,使用了不允许的语言文字等;
2) 操作问题:如,表单提交之后不支付,支付过程中中止支付,支付成功之后取消订单等;
其次,是支付环境问题,如:
1) 用户环境问题:如用户宕机,网络中断等;
2) 支付系统问题:服务器宕机、系统崩溃等;
第三,用户、支付系统、银行或第三方支付系统的交互问题:
1) 交易端支付成功,银行或第三方支付平台未扣款,或已扣款却显示购买失败,系统是否能及时报错或事后补救;
2) 交易端支付失败,商品未购买成功,但银行或第三方支付平台已扣款,或未扣款却显示购买成功,系统是否能及时报错或事后补救。
支付产品必须考虑上述各种错误或异常情况,在这些情况发生时,能够及时发出报错提示并且阻止交易继续进行或者在事后能够及时作出反馈和补救。
6. 从后台的账务处理上:
成功订单的账务处理、失败订单的账务处理、退款订单的账务处理、差错账处理等等。
在做完了前面的金额、流程、设备接口等方面的测试后,还有一项非常重要的测试,就是后台的账务处理方面的测试。
账务处理的测试可以说是测试工作中的“压轴”,因为无论支付系统在前面的工作中完成的多么完美,都需要账务处理模块来进行清、结算工作,只有做完了清、结算,一项订单才能算真正完成。
账务处理测试对于支付系统测试的重要性毋庸置疑,如果账务处理有问题,整个支付系统就会完全失去意义并且带来重大资金损失。
那么,账务处理方面的测试又包括些什么呢?
1.正常完成的订单的账务处理的测试:
正常完成的订单,指通过正常流程完成的订单,如:下单---支付---付款---订单完成。这一类的订单账务处理的测试按正常方式测试即可,测试订单完成后是否能正常完成账务处理,订单金额、付款方及账号、收款方及账号、付款金额、收款金额、以及会计分录是否正确。后期还要检查实际资金到账后的资金自动入账情况。
2.非正常完成的订单的账务处理的测试:
非正常完成的订单,包括发生退款、交易过程中出现问题等异常情况导致的订单没有正常完成的情况。在生产上,当然是正常完成的订单占绝大多数,发生退款或交易出现异常情况的订单占比很小,但是,在测试过程中正好相反,我们对正常情况的测试量,要远小于对异常情况的测试,这是为了避免上线后系统对可能出现的各种问题缺少处理机制而造成的损失。非正常完成的订单的账务处理主要涉及到差错账的处理,它比正常情况更加复杂,甚至还会涉及到系统处理与人工处理相结合的情况。
1)退款订单的账务处理的测试:
退款订单的账务处理测试要考虑系统是否有退款接口,如果有退款接口,则可由系统直接通过退款接口进行退款,则账务处理也会自动完成,测试人员要检查订单金额、付款方及账号、收款方及账号、退款方账号、退款入账账号、订单金额、收款金额、退款金额以及会计分录是否正确;如果没有退款接口,则生产中一般由财务人员进行人工退款,这种非系统处理的情况则不需要进行过多的测试了。
2)漏单、补单的账务处理
除了退款,还会出现因为支付系统问题、付款方或者收款方银行数据返回延迟等多种问题造成的付款方银行已扣款收款方银行却未收到款,或者付款方账号未扣款但系统认为已收款等等异常情况,这些异常情况都会造成差错账导致账务不平衡,这里需要测试系统对这些情况的记录、报错、数据核对功能,只有系统正确记录、报错、核对,才能生成正确的数据,财务人员才能在后期根据系统数据进行账务处理。
总之,账务处理的测试既复杂又重要,需要测试人员对于财务知识有一定程度的了解,并且务必测试的深入、透彻,才能避免上线后出现重大生产事故。
【Quality】
Quality is the value to someone who matters。做测试,首先要找到这个someone是谁,以及这个 someone重视的 value是什么。

浙公网安备 33010602011771号