軟件測試——構造 NextDate 問題的弱一般的等價類測試用例
問題
構造 NextDate 問題的弱一般的等價類測試用例。
- NextDate 問題:NextDate() 是整型變量 month, day 和 year 的函數,輸入 1812-2012 年期間的某一日期的 month, day 和 year 的值,輸出這一天的下一天的日期的 month, day 和 year 值。
概念
弱一般等價類測試用例覆蓋:針對單缺陷,只覆蓋有效等價類。
解答
三個變量的取值範圍
- C1: 1 ≤ month ≤ 12
- C2: 1 ≤ day ≤ 31
- C3: 1812 ≤ year ≤ 2012
可以劃分爲以下等價類集合
- M1 = {month: month has 30 days}
- M2 = {month: month has 31 days except December}
- M3 = {month: month is December}
- M4 = {month: month is February}
- D1 = {day: 1 ≤ day ≤ 27}
- D2 = {day: day = 28}
- D3 = {day: day = 29}
- D4 = {day: day = 30}
- D5 = {day: day = 31}
- Y1 = {year: year is a leap year}
- Y2 = {year: year is a common year}
可劃分爲10個弱一般等價類(除去了無效的等價類),爲其設計測試用例如下表格所示
- R1 = {M1, {D1, D2, D3}, {Y1, Y2}}
- R2 = {M1, D4, {Y1, Y2}}
- R3 = {M2, {D1, D2, D3, D4}, {Y1, Y2}}
- R4 = {M2, D5, {Y1, Y2}}
- R5 = {M3, {D1, D2, D3, D4}, {Y1, Y2}}
- R6 = {M3, D5, {Y1, Y2}}
- R7 = {M4, D1, {Y1, Y2}}
- R8 = {M4, D2, Y1}
- R9 = {M4, D2, Y2}
- R10 = {M4, D3, Y1}
弱一般等價測試用例
測試用例 | year | month | day | 期待輸出 |
---|---|---|---|---|
WN1 | 2009 | 04 | 25 | 2009/04/26 |
WN2 | 2009 | 04 | 30 | 2009/05/01 |
WN3 | 2009 | 03 | 25 | 2009/03/26 |
WN4 | 2009 | 03 | 7 | 2009/04/01 |
WN5 | 2009 | 12 | 25 | 2009/12/26 |
WN6 | 2009 | 12 | 31 | 2010/01/01 |
WN7 | 2009 | 02 | 25 | 2009/02/26 |
WN8 | 2008 | 02 | 28 | 2008/02/29 |
WN9 | 2009 | 02 | 28 | 2009/03/01 |
WN10 | 2008 | 02 | 29 | 2008/03/01 |