互联网金融P2P行业,近三年来发展迅速,如火如荼。
据不完全统计,全国有3000+的企业。
“互联网+”企业,几乎每天都会碰到一些奇奇怪怪的bug,作为在互联网企业工作的测试人员,风险和压力都巨大。那么我们如何降低风险呢?
P2P主要的业务场景概括地说有6个,请看下图:
我的想法是做成生产者-消费者模式,类似一个生态系统,将不会对测试环境造成不良影响。
假设发标仅受这些输入参数的影响:
Parameters:
项目类型
[XX宝, XX贷, projectC, projectD]
期限单位
[天, 月]
还款方式
[到期还本付息, 按月付息到期还本, 月N日还息到期还本, 等额本息, 还款方式5]
道具
[coupon1, coupon2, coupon3, coupon4, coupon5]
下面我们先设计一下发标自动化测试用例吧:
如果考虑以上四个参数的各种组合影响,使用穷举法。将会有4*2*5*5=200。呵呵,如果是手工做功能测试的话,单是发200个标也要耗费不少的时间。
当然我们是理性的人,不是人傻时间多。我们可以使用ACTS工具,该工具很牛叉是NIST研究的产物,使用的是IPOG算法(当然也有其他替代的工具,如allpairs,PICT)。通过该工具我们可以得到最优的25个用例,如下:
Relations: Test Case# 项目类型 期限单位 还款方式 道具 0 XX贷 月 到期还本付息 coupon1 1 projectC 天 到期还本付息 coupon2 2 projectD 月 到期还本付息 coupon3 3 XX宝 天 到期还本付息 coupon4 4 XX贷 天 到期还本付息 coupon5 5 projectC 月 按月付息到期还本 coupon1 6 projectD 天 按月付息到期还本 coupon2 7 XX宝 月 按月付息到期还本 coupon3 8 XX贷 月 按月付息到期还本 coupon4 9 projectC 月 按月付息到期还本 coupon5 10 projectD 天 月N日还息到期还本 coupon1 11 XX宝 月 月N日还息到期还本 coupon2 12 XX贷 天 月N日还息到期还本 coupon3 13 projectC 月 月N日还息到期还本 coupon4 14 projectD 月 月N日还息到期还本 coupon5 15 XX宝 天 等额本息 coupon1 16 XX贷 月 等额本息 coupon2 17 projectC 天 等额本息 coupon3 18 projectD 月 等额本息 coupon4 19 XX宝 月 等额本息 coupon5 20 XX贷 天 还款方式5 coupon1 21 projectC 月 还款方式5 coupon2 22 projectD 天 还款方式5 coupon3 23 XX宝 月 还款方式5 coupon4 24 XX宝 月 还款方式5 coupon5 我们通过多种方式发布这25个项目,如果是在ui上,建议使用selenium,将这25个项目信息录入到csv。测试脚本读取csv,可以每日不停的发项目,发布后记录下项目id。
现在生产者有了,是时候考虑消费者了。如果生产者生产出来的是项目,那么消费者就是我们的投资客户。
为了更好的一一对应,我们就制造出25个投资客户。步骤是:
注册->绑定邮箱->实名认证->充值-》发放道具
准备数据的过程也很简单。
客户 道具 甲子 coupon1 乙丑 coupon2 丙寅 coupon3 丁卯 coupon4 戊辰 coupon5 己巳 coupon1 庚午 coupon2 辛未 coupon3 壬申 coupon4 癸酉 coupon5 甲戌 coupon1 乙亥 coupon2 丙子 coupon3 丁丑 coupon4 戊寅 coupon5 己卯 coupon1 庚辰 coupon2 辛巳 coupon3 壬午 coupon4 癸未 coupon5 甲申 coupon1 乙酉 coupon2 丙戌 coupon3 丁亥 coupon4 戊子 coupon5
最后,这25个投资用户与25个项目对号入座,意思就是用户甲子使用道具投资XX贷的这个项目,过程中我们将检验各种流水,得出一个这样的测试结果:
TestResult Case# 项目类型 期限单位 还款方式 道具 客户 测试结果 0 XX贷 月 到期还本付息 coupon1 甲子 √ 1 projectC 天 到期还本付息 coupon2 乙丑 √ 2 projectD 月 到期还本付息 coupon3 丙寅 √ 3 XX宝 天 到期还本付息 coupon4 丁卯 √ 4 XX贷 天 到期还本付息 coupon5 戊辰 √ 5 projectC 月 按月付息到期还本 coupon1 己巳 √ 6 projectD 天 按月付息到期还本 coupon2 庚午 √ 7 XX宝 月 按月付息到期还本 coupon3 辛未 √ 8 XX贷 月 按月付息到期还本 coupon4 壬申 √ 9 projectC 月 按月付息到期还本 coupon5 癸酉 √ 10 projectD 天 月N日还息到期还本 coupon1 甲戌 √ 11 XX宝 月 月N日还息到期还本 coupon2 乙亥 √ 12 XX贷 天 月N日还息到期还本 coupon3 丙子 √ 13 projectC 月 月N日还息到期还本 coupon4 丁丑 √ 14 projectD 月 月N日还息到期还本 coupon5 戊寅 √ 15 XX宝 天 等额本息 coupon1 己卯 √ 16 XX贷 月 等额本息 coupon2 庚辰 √ 17 projectC 天 等额本息 coupon3 辛巳 √ 18 projectD 月 等额本息 coupon4 壬午 √ 19 XX宝 月 等额本息 coupon5 癸未 √ 20 XX贷 天 还款方式5 coupon1 甲申 √ 21 projectC 月 还款方式5 coupon2 乙酉 √ 22 projectD 天 还款方式5 coupon3 丙戌 √ 23 XX宝 月 还款方式5 coupon4 丁亥 √ 24 XX宝 月 还款方式5 coupon5 戊子 √
这样的话,每一次发布,我们都可以做到覆盖这几个流程了
那么,剩下的就是还款和提现了。
还款通常要做成作业服务,当然测试环境还是得实现,不可能某个项目的期限是30天,要等到30天后才还款,所以还款的参数需要可控到还款日期(业务发生日期)和操作时间。
提现就更简单了。