第三次作业+105032014101
被測代碼鏈接:http://www.cnblogs.com/ypzeng/p/6626269.html
1、修正流程圖
?
2、測試用例設計
| 覆蓋方式 | 用例編號 | 輸入 | 期望輸出 | 實際輸出 | 是否通過 | 時間 | ||
| a | b | c | ||||||
| 語句覆蓋 | 001 | 3 | 4 | 5 | 直角三角形 | 直角三角形 | 是 | 2017.03.29 |
| 語句覆蓋 | 002 | 12 | 19 | 20 | 一般三角形 | 一般三角形 | 是 | 2017.03.29 |
| 判定覆蓋 | 003 | 101 | 66 | 78 | 邊值不存在 | 邊值不存在 | 是 | 2017.03.29 |
| 判定覆蓋 | 004 | 60 | 11 | 12 | 不構成三角形 | 一般三角形 | 否 | 2017.03.29 |
| 判定覆蓋 | 005 | 66 | 66 | 66 | 等邊三角形 | 等邊三角形 | 是 | 2017.03.29 |
| 判定覆蓋 | 006 | 66 | 77 | 77 | 等腰三角形 | 等腰三角形 | 是 | 2017.03.29 |
| 判定覆蓋 | 007 | 13 | 14 | 15 | 一般三角形 | 一般三角形 | 是 | 2017.03.29 |
| 判定覆蓋 | 008 | 5 | 8 | 13 | 直角三角形 | 直角三角形 | 是 | 2017.03.29 |
| 條件覆蓋 | 009 | 10 | 15 | 50 | 不構成三角形 | 一般三角形 | 否 | 2017.03.29 |
| 條件覆蓋 | 010 | 10 | 10 | 10 | 等邊三角形 | 等邊三角形 | 是 | 2017.03.29 |
| 條件覆蓋 | 011 | 13 | 14 | 15 | 一般三角形 | 一般三角形 | 是 | 2017.03.29 |
| 條件覆蓋 | 012 | 101 | 101 | 101 | 邊值不存在 | 邊值不存在 | 是 | 2017.03.29 |
| 判定/條件覆蓋 | 013 | 0 | 101 | 101 | 邊值不存在 | 邊值不存在 | 是 | 2017.03.29 |
| 判定/條件覆蓋 | 014 | 20 | 15 | 60 | 不構成三角形 | 一般三角形 | 否 | 2017.03.29 |
| 判定/條件覆蓋 | 015 | 33 | 33 | 33 | 等邊三角形 | 等邊三角形 | 是 | 2017.03.29 |
| 判定/條件覆蓋 | 016 | 3 | 3 | 5 | 等腰三角形 | 等腰三角形 | 是 | 2017.03.29 |
| 判定/條件覆蓋 | 017 | 9 | 8 | 7 | 一般三角形 | 一般三角形 | 是 | 2017.03.29 |
| 判定/條件覆蓋 | 018 | 6 | 8 | 10 | 直角三角形 | 直角三角形 | 是 | 2017.03.29 |
| 組合覆蓋 | 019 | 5 | 5 | 5 | 等邊三角形 | 等邊三角形 | 是 | 2017.03.29 |
| 組合覆蓋 | 020 | 9 | 12 | 15 | 直角三角形 | 直角三角形 | 是 | 2017.03.29 |
| 組合覆蓋 | 021 | 101 | 102 | 89 | 邊值不存在 | 邊值不存在 | 是 | 2017.03.29 |
| 組合覆蓋 | 022 | 23 | 23 | 32 | 等腰三角形 | 等腰三角形 | 是 | 2017.03.29 |
| 路徑覆蓋 | 023 | 20 | 20 | 20 | 等邊三角形 | 等邊三角形 | 是 | 2017.03.29 |
| 路徑覆蓋 | 024 | 12 | 25 | 16 | 一般三角形 | 一般三角形 | 是 | 2017.03.29 |
| 路徑覆蓋 | 025 | 13 | 12 | 13 | 等腰三角形 | 等腰三角形 | 是 | 2017.03.29 |
| 路徑覆蓋 | 026 | 10 | 20 | 40 | 不構成三角形 | 一般三角形 | 否 | 2017.03.29 |
| 路徑覆蓋 | 027 | 23 | 0 | 56 | 邊值不存在 | 邊值不存在 | 是 | 2017.03.29 |
| 路徑覆蓋 | 028 | 7 | 24 | 25 | 直角三角形 | 直角三角形 | 是 | 2017.03.29 |
3、單元測試框架
import static org.junit.Assert.*;import org.junit.Before; import org.junit.Test;public class GetDataTest {@Beforepublic void setUp() throws Exception {}public String change(char c) {switch (c) {case '1':return "等邊三角形";case '2':return "等腰三角形";case '3':return "直角三角形";case '4':return "一般三角形";case '5':return "不構成三角形";default:break;}return null;}@Testpublic void testTriangle() {String s1 = change(GetData.triangle(3, 4, 5));assertEquals("直角三角形", s1);String s2 = change(GetData.triangle(12, 19, 20));assertEquals("一般三角形", s2);String s3 = change(GetData.triangle(60, 11, 12));assertEquals("不構成三角形", s3);String s4 = change(GetData.triangle(66, 66, 66));assertEquals("等邊三角形", s4);String s5 = change(GetData.triangle(66, 77, 77));assertEquals("等腰三角形", s5);}}?
4、測試結果
由圖可見,在第45行出現了錯誤。即輸入一組“不構成三角形”的數據得到的結果是“一般三角形”。
5、測試小結
(1)根據六種覆蓋方法編寫的測試用例可以檢測代碼中的每條分支和路徑,揭示隱藏在代碼中的錯誤,對代碼的測試會比較徹底,但無法檢測代碼中遺漏的路徑和數據敏感性錯誤。
(2)使用單元測試框架,測試框架為我們做的最基本的事情,就是允許我們按照某種更簡單的方式寫測試代碼,把每一個測試單元寫在一個測試方法里面,然后它會自動找出所有的測試方法,并且根據你的需要,運行所有的測試方法,或者是運行單個測試方法,或者是運行部分測試方法等等。而用main()方法調用,如果有很多類和方法,就可能要寫一堆代碼,寫起來累,運行起來也累。
(3)測試的目的是發現錯誤,至于找出錯誤的原因和錯誤發生的地方不是測試的任務,而是調試的任務。調試的目的是為了證明程序的正確,因此它必須不斷地排除錯誤。它們的出發點不一樣。前者是挑錯,是一種挑剔過程,屬于質盤保證活動。后者是排錯,是一種排除過程,是編碼活動的一部分。
轉載于:https://www.cnblogs.com/xwhisper/p/6640348.html
總結
以上是生活随笔為你收集整理的第三次作业+105032014101的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据挖掘之人工神经网络BP算法
- 下一篇: 蓝桥杯:安慰奶牛(最小生成树)