You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为信用卡验证方法创建JUnit测试:三类测试技术的用例划分咨询

边界值分析测试用例设计方案

边界值分析核心聚焦输入的临界值、边界前后的取值,针对卡号和过期日期分别设计:

信用卡卡号(Luhn算法相关)

主流信用卡卡号长度范围为13-19位,结合Luhn算法特性设计用例:

  • 13位有效卡号(Luhn验证通过):如4111111111111,验证应通过
  • 12位卡号(长度不足):无论是否符合Luhn规则,直接验证失败
  • 19位有效卡号(Luhn验证通过):如4917300800000000000,验证应通过
  • 20位卡号(长度超限):直接验证失败
  • 13位卡号临界Luhn失败:将上述13位有效卡号最后一位改为2(4111111111112),Luhn验证失败,整体验证失败
  • 空卡号:"",非法输入,验证失败
  • 全零13位卡号:"0000000000000",长度合法但Luhn验证失败,整体失败

过期日期(假设格式为MM/YY)

围绕有效期临界时间和格式边界设计用例:

  • 当前月份(已过期):若当前为2024年5月,输入05/24,验证失败
  • 当前月份下一月(刚生效):输入06/24,验证通过
  • 最小合法月份:01/25(年份为未来),验证通过
  • 最大合法月份:12/25,验证通过
  • 非法月份:00/25(月份为00)、13/25(月份为13),均验证失败
  • 最远未来年份:12/99(系统支持的最远年份),验证通过
  • 最近过期年份:12/23(当前为2024年),验证失败
  • 格式不合法:01/2(年份仅1位)、1/24(月份仅1位,若方法不支持单数字格式),验证失败

因果图法测试用例设计方案

因果图先梳理**输入条件(因)和输出结果(果)**的逻辑关系,再转化为测试用例:

输入条件(因)

  1. 卡号长度在13-19位(合法)
  2. 卡号通过Luhn算法验证
  3. 过期日期格式为MM/YY,月份01-12,年份为2位数字(合法)
  4. 过期日期未过期(年份≥当前年,同年则月份≥当前月)

输出结果(果)

  • 验证通过(Success)
  • 验证失败(Failure)

逻辑规则

只有四个条件全部满足时,才会返回验证通过;任意一个条件不满足,都返回失败。

测试用例组合

  1. 卡号长度合法+Luhn通过+日期格式合法+日期未过期 → 验证通过
  2. 卡号长度不合法+Luhn通过+日期格式合法+日期未过期 → 验证失败
  3. 卡号长度合法+Luhn不通过+日期格式合法+日期未过期 → 验证失败
  4. 卡号长度合法+Luhn通过+日期格式非法+日期未过期 → 验证失败
  5. 卡号长度合法+Luhn通过+日期格式合法+日期已过期 → 验证失败
  6. 卡号长度不合法+Luhn不通过+日期格式非法+日期已过期 → 验证失败(多条件不满足的极端场景)
  7. 卡号长度合法+Luhn通过+日期格式合法+日期刚好当月(已过期) → 验证失败
  8. 卡号长度合法+Luhn通过+日期格式合法+日期为下一月(刚生效) → 验证通过

JUnit落地示例

边界值用例可针对每个临界值单独编写测试方法:

@Test
void testValidMinLengthCard() {
    assertTrue(CreditCardValidator.validate("4111111111111", "06/25"));
}

@Test
void testInvalidShortCard() {
    assertFalse(CreditCardValidator.validate("411111111111", "06/25"));
}

因果图用例覆盖了所有逻辑分支,确保没有遗漏的判定场景

内容的提问来源于stack exchange,提问作者Adrian Floroiu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 00:50:24