请用逻辑覆盖法中的语句覆盖、判定覆盖和条件覆盖分别对下面判断闰年的java代码段进行测试(画出流程图并写出测试用例表)。 public static boolean isLeap(int year){ boolean leap; if ((year % 4 == 0 && year % 100 != 0)|| (year % 400 == 0)) leap = true; else leap = false; return leap; }
时间: 2024-01-30 22:02:25 浏览: 397
首先画出判断闰年的java代码段的流程图如下:
```
+-------+ +-----+
| year%4|---------0---->|leap=|---+
+-------+ +-----+ |
| 1 |
v |
+--------+ yes +--------+ no |
|year%100|------->|year%400|---->+
+--------+ +--------+
| 1 | 0
v v
+------+ +------+
|leap=F| |leap=T|
+------+ +------+
```
接下来分别使用语句覆盖、判定覆盖和条件覆盖进行测试。
首先是语句覆盖,测试用例表如下:
| 测试用例编号 | 测试数据 | 预期结果 |
| ------------ | -------- | -------- |
| 1 | 2000 | true |
| 2 | 2020 | true |
| 3 | 1900 | false |
| 4 | 1700 | false |
接下来是判定覆盖,测试用例表如下:
| 测试用例编号 | 测试数据 | 预期结果 |
| ------------ | -------- | -------- |
| 1 | 2000 | true |
| 2 | 2020 | true |
| 3 | 1900 | false |
| 4 | 1700 | false |
| 5 | 2004 | true |
最后是条件覆盖,测试用例表如下:
| 测试用例编号 | 测试数据 | 预期结果 |
| ------------ | -------- | -------- |
| 1 | 2000 | true |
| 2 | 2020 | true |
| 3 | 1900 | false |
| 4 | 1700 | false |
| 5 | 2004 | true |
| 6 | 2001 | false |
| 7 | 2100 | false |
| 8 | 2400 | true |
解释一下,测试用例1-4是普通值测试,测试不同年份是否能正确判断是否为闰年。测试用例5是边界值测试,测试能否正确判断2004年是闰年。测试用例6和测试用例7是边界值测试,测试能否正确判断非闰年的情况。测试用例8是边界值测试,测试能否正确判断闰年的情况。
阅读全文