给定一个用于扫描支付的二维码,如何编写测试用例?
二维码的本质是:
二维码本身就是一个URL,但它把URL和用户身份信息以二维码的形式转化成了二进制的0和1,其中黑色素块代表1,白色素块代表0,我们用手机扫码就可以获取二维码中的URL。
1.UI界面测试
二维码界面上的按钮和文字说明是否显示清晰、正确?
界面设计是否符合大众审美,是否人性化。
2.功能测试
用户能否成功生成支付的二维码或者二维码,二维码出现后屏幕能否转为亮屏模式,用户能否成功选择不同的支付方式,如“账户余额”、“花呗”、“信用卡”、“储蓄卡”等,用户扫码后能否收到支付成功的界面,界面能否正确显示用户支付的金额,包括支付信息,是否使用优惠等。
功能测试:扫码枪能否成功扫描用户手机中的二维码,扫码成功后能否收到款项,能否成功生成支付接口?支付宝后台、商户后台、用户手机之间能否成功传送支付结果信息。
付款金额场景:
1.付款金额可以为空、0或者负数吗?
2.付款金额最多可保留小数点后2位,精确到分。
3. 单笔交易最高金额
4. 每日最高限额
付款方式:
1.支付方式:余额、余额宝、花呗、信用卡、银行卡
2.付款顺序,默认付款顺序是什么(或者你自己设置的付款顺序)
3、当首笔付款余额不足时,可以默认使用第二笔付款吗,以此类推?
4. 不同的支付方式可能存在单笔交易限额,例如不同的银行卡可能存在不同的限额
支付密码:
当用户选择了支付方式并支付了金额之后,下一步就是输入交易密码。
1.密码支付、指纹支付、刷脸支付
2.密码正确,交易成功
3. 密码错误,交易失败

4. 交易失败后可以再次支付吗?
5. 用户取消付款
6. 用户不付款并让其过期
付款状态:
付款后,会出现付款状态
1. 支付失败,订单状态
2. 支付成功,订单状态
3.用户取消支付,进入订单状态
4.支付宝超时,订单状态
3.性能测试
包括压力测试、网络测试
压力测试:持续扫码,测试扫码支付功能在高压下表现如何。
网络测试:测试在不同网络环境、不同网络信号强度下,整个支付流程是否卡顿,以及容易出现卡顿点的位置。
可用性测试:(用户整个支付流程中,操作步骤是否简单便捷)
不同灯光、屏幕亮度下,扫码收款功能能否顺利完成?
用户操作的响应时间可以在多个用户同时扫码的情况下提高系统性能。
4.兼容性测试
测试二维码支付功能是否兼容不同的手机品牌和操作系统。
5.安全测试
如果二维码超出安全时间,能否自动更新为新的二维码?测试整个支付流程的安全机制是否能成功实现。
伪造支付请求、恶意篡改金额、恶意模拟第三方接口调用商户接口等等都是我们需要考虑到清楚的问题。
二维码是否有时间和数量的限制?如果使用了安全套接字层,测试加密是否正确,加密前后的信息是否完整。
6.接口测试
明确整个支付流程需要调用的接口,区分商户、第三方平台的接口、请求参数的方法,包括接口特定参数的加密、使用异常订单号模拟支付、服务器的检查等。