6.接合边界值分析法和等价类划分法,针对不同月薪需要缴纳不同的个人所得税计算程序,设计测试用例。3500为起征点,结合边界值收入税收349903500035010.05399924.95400025400150.15499199.955002005501300.158499749.85850075085011000.2234993999.8235004000235015000.25434999999.7543500100004350112000.36349917999.763500180006350121000.38349927999.783500280008350132000.410349939999.61035004000010350145000.47.年、月、日分别有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,10MB:4,6,9,11MC:2MD:12日期:DA:1~27DB:28DC:29DD:30DE:31动作:R1:Erorr,NodataR2:日期后移R3:日期置1R4:月份后移R5:月份置1R6:年份后移判定表:序号12345678910111213条件Y------LYLYPYPY---MMAMAMBMBMBMCMCMCMCMCMCMDMDDDADEDADDDEDADBDCDBDCDDDADEDBDCDDDBDCDEDBDCDD动作R11111R21111R311111R41111R51R619.通过扩展有限状态机来描述表示堆栈算法,然后转化为状态树,然后设计测试用例覆盖独立的树根到树叶的路径EFSM:状态树:根据堆栈的状态以及动作可以写出以下状态表:输入状态InitPushPopDeleteTopInitialEmptyEmptyFilledErrorDeletedErrorFilledFilled(1)max-1Full(2)=max-1Empty(3)=1Filled(4)1&max-1ErrorFilled堆栈空开始堆栈删除堆栈有元素堆栈满压入栈弹出栈栈元素数量为1弹出栈(栈元素数大于1)弹出栈(栈元素小于max-1)堆栈满(不能放入元素)压入栈(当前栈元素数量为max-1)弹出栈FullFullFilledErrorFullDelete状态树:测试用例:对一个空栈弹顶元素init-pop(路径:initial-empty-error)对一个空栈查顶元素init-top(路径:initial-empty-error)对一个空栈进行删除init-delete(路径:initial-empty-deleted)向一个空栈放入元素InitialAmptyErrorErrorDeletedFilledErrorEmptyFilledFilledFullFullErrorFilledFullFilledInitTopPushDeletePopPopPushPushPopTopDeleteDeletePopPushTopinit-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)