3500为起征点,结合边界值 收入 税收 3499 0 3500 0 3501 0。05 3999 24.95 4000 25 4001 50.1 5499 199.9 5500 200 5501 300.15 8499 749。85 8500 750 8501 1000.2 23499 3999。8 23500 4000 23501 5000。25 43499 9999。75 43500 10000 43501 12000.3 63499 17999。7 63500 18000 63501 21000。3 83499 27999.7 83500 28000 83501 32000.4 103499 39999.6 103500 40000 103501 45000.4
7。年、月、日分别有Y、M和D来存储响应的值,现在要测试NextData(Y, M, D)函数,用判定表方法来设计相应的测试用例。
NextData(Y,M,D)为下一天的函数,由于1,3,5,7,8,10,12月都有31天,其中12月31日下一天又为下一年,能被4整除的闰年的2月有29天,平年的2月有28天,所以条件分为以下几个等价类.
条件:
年份: 月份: 日期:
LY:闰年
PY:平年
MA:1,3,5,7,8,10 MB:4,6,9,11 MC:2 MD:12 DA:1~27 DB:28 DC:29 DD:30 DE:31
动作:
R1:Erorr,No data R2:日期后移 R3:日期置1 R4:月份后移 R5:月份置1 R6:年份后移
判定表:
序号 条件 Y M D 1 2 3 — MB DA 4 — MB DD 5 - MB DE 6 - MC DA 7 LY MC DB 8 LY MC DC 9 PY MC DB 10 PY MC DC 11 12 13 — — MA MA DA DE - - — MC MD MD DD DA DE DB DC DD R1 R2 动作 R3 R4 R5 R6
1 1 1 DB DC 1 1 1 1 1 1 1 1 1 1 1 DE DB DC DD 1 1 1 1 1 9.通过扩展有限状态机来描述表示堆栈算法,然后转化为状态树,然后设计测试用例覆盖独立的树根到树叶的路径
EFSM: 弹出栈(栈元素数大于1) 弹出栈(栈元素小于 max-1) 开始堆栈 压入栈 有元素 堆栈空 弹出栈 栈元素 数量为1 删除堆栈
状态树:
根据堆栈的状态以及动作可以写出以下状态表:
输入 状态 Initial Empty Filled Init Empty Push Filled Filled(1) Error 对一个空栈弹顶元素 init—pop(路径:initial—empty—error) 对一个空栈查顶元素 init—top(路径:initial—empty-error) 对一个空栈进行删除 init—delete(路径:initial—empty-deleted) 向一个空栈放入元素 init—push—pop(路径:initial-empty—filled) 对一个有元素的栈进行压入栈操作 init—push-push(路径:initial—empty—filled-filled) 对一个有max-1个元素的栈进行压入栈操作 init—push—push(路径:initial-empty-filled—full) 对一个有一个元素的栈进行弹栈操作 init-push—pop(路径:initial-empty—filled-empty) 对一个有元素的栈进行查顶操作 init—push—top(路径:initial—empty—filled-filled) 对一个有元素的栈进行删除操作 init—push—delete(路径:initial-empty-filled-error) 对满栈进行查顶操作 init—push—push-top(路径:initial-empty—filled-full—full) 对满栈进行压栈操作 init-push—push-push(路径:initial-empty—filled—full-full) 对满栈进行弹栈操作 init—push—push-pop(路径:initial-empty-filled-full—filled) 对满栈进行删除操作 init-push-push—delete(路径:initial—empty-filled-full—erorr) 因篇幅问题不能全部显示,请点此查看更多更全内容