習題1
為以下流程圖所示的程序段設計一組測試用例,要求分別滿足語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合覆蓋和路徑覆蓋。
語句覆蓋
原則覆蓋程序中所有可執行的語句
設計的測試用例如下
編號 | 輸入項 | 執行語句 |
---|---|---|
① | {x=17,y=6} | 執行語句3 |
② | {x=1,y=-1} | 執行語句2 |
③ | {x=-1.y=-1} | 執行語句1 |
判定覆蓋
覆蓋所有的路徑
設計的測試用例如下
編號 | 輸入項 | 覆蓋的分支 |
---|---|---|
① | {x=9,y=11} | b->f |
② | {x=15,y=9} | y->e |
③ | {x=7,y=-1} | a->d |
④ | {x=-1,y=-1} | a->c |
條件覆蓋
判定的每個條件的可能值至少滿足一次
對取值進行標記
判定 | 條件 | 取值標記 (true) | 取值標記(false) |
---|---|---|---|
x>8 and y>5 | x > 8 | T1 | -T1 |
y>5 | T2 | -T2 | |
x>16 or y > 10 | x > 16 | T3 | -T3 |
y > 10 | T4 | -T4 | |
x > 0 or y > 0 | x > 0 | T5 | -T5 |
y > 0 | T6 | -T6 |
產生測試用例
原則 對產生的的判定中的每個原則都要滿足
測試用例 | 執行路徑 | 覆蓋條件 | 覆蓋分支 |
---|---|---|---|
{x=17, y=11} | b->f | T1 T2 T3 T4 | b分支 f分支 |
{x=15, y=6} | b->e | T1 T2 -T3 -T4 | b分支 e分支 |
{x=7,y=4} | a->d | -T1 -T2 T5 T6 | a分支 d分支 |
{x=-1, y=-1} | a->c | -T1 -T2 -T5 -T6 | a分支 c分支 |
判定條件覆蓋
將判定覆蓋和條件覆蓋結合,使得判定中的每個條件的所有取值至少滿足一次。同時每個判定的結果至少出現一次。將判定覆蓋和條件覆蓋相結合
結果如下;
測試用例 | 執行路徑 | 覆蓋條件 | 覆蓋分支 |
---|---|---|---|
{x=17, y=11} | b->f | T1 T2 T3 T4 | b分支 f分支 |
{x=15, y=6} | b->e | T1 T2 -T3 -T4 | b分支 e分支 |
{x=7,y=4} | a->d | -T1 -T2 T5 T6 | a分支 d分支 |
{x=-1, y=-1} | a->c | -T1 -T2 -T5 -T6 | a分支 c分支 |
組合覆蓋
每一個判定的所有可能的條件取值的組合
取值標記
判定 | 條件 | 取值標記 (true) | 取值標記(false) |
---|---|---|---|
x>8 and y>5 | x > 8 | T1 | -T1 |
y>5 | T2 | -T2 | |
x>16 or y > 10 | x > 16 | T3 | -T3 |
y > 10 | T4 | -T4 | |
x > 0 or y > 0 | x > 0 | T5 | -T5 |
y > 0 | T6 | -T6 |
取分支
序號 | 條件 | 取的分支 |
---|---|---|
① | T1 T2 | 第一個分支取真 |
② | T1 -T2 | 第一個分支取假 |
③ | -T1 T2 | 第一個分支取假 |
④ | -T1 -T2 | 第一個分支取假 |
⑤ | T3 T4 | 第二個分支取真 |
⑥ | T3 -T4 | 第二個分支取真 |
⑦ | -T3 T4 | 第二個分支取真 |
⑧ | -T3 -T4 | 第二個分支取假 |
⑨ | T5 T6 | 第三個分支取真 |
⑩ | T5 -T6 | 第三個分支取真 |
十一 | -T5 T6 | 第三個分支取真 |
十二 | -T5 -T6 | 第三個分支取假 |
生成測試用例
測試用例 | 覆蓋組合號 | 覆蓋的路徑 |
---|---|---|
{x=17,y=11} | 1 and 5 | b->f |
{x=17,y=9} | 1 and 6 | b -> f |
{x=15,y=11} | 1 and 7 | b -> f |
{x=9,y=6} | 1 and 8 | b -> e |
{x=9, y =4} | 2 and 9 | a -> d |
{x=7, y=-1} | 3 and 10 | a -> d |
{x=7,y=-1} | 4 and 11 | a -> d |
{x=-1, y =-1} | 4 and 12 | a -> c |
路徑覆蓋
要求路徑全部覆蓋
測試用例 | 覆蓋組合號 | 覆蓋的路徑 |
---|---|---|
{x=17,y=11} | 1 and 5 | b->f |
{x=9,y=6} | 1 and 8 | b -> e |
{x=9, y =4} | 2 and 9 | a -> d |
{x=-1, y =-1} | 4 and 12 | a -> c |
習題2
某城市電話號碼由三部分組成,分別是:
地區碼—— 空白或三位數字;
前 綴—— 非‘0’或‘1’開頭的三位數字;
后 綴—— 4位數字。
假定被測程序能接受一切符合上述規定的電話號碼, 拒絕所有不符合規定的電話號碼。
請選擇適當的黑盒測試方法,寫出選擇該方法的原因,並使用該方法的步驟,給出測試用例表。
選用的測試
准備選擇場景發進行測試,理由如下
- 該軟件是采用事件觸發用來控制流程
- 使用場景法較為簡單
- 該軟件邏輯清晰,備選分支不是很多
繪制場景圖
編寫測試用例
地區碼測試
編號 | 輸入 | 說明 |
---|---|---|
1 | 空 | 對應輸入地區碼為空 |
2 | 000 | 對應數字輸入3位數字地區碼 |
3 | www | 對應輸入非數字地區碼 |
前綴測試
編號 | 輸入 | 說明 |
---|---|---|
1 | 222 | 非0 1 開頭的三位數字 |
2 | 022 | 0開頭三位數字 |
3 | 122 | 1開頭三位數字 |
4 | 0222 | 0開頭非三位數字 |
5 | 1 | 1開頭的非三位數字 |
6 | 1w | 1開頭非數字內容 |
7 | 0w | 0開頭非數字內容 |
8 | 34324 | 非0 1 開頭的非三位數字 |
9 | w | 非0 1 開頭的非數字 |
后綴測試
編號 | 輸入 | 說明 |
---|---|---|
1 | 0000 | 4位后綴數字 |
2 | 0 | 非4位數字 |
3 | 空 | 非數字內容 |
www.iming.info