1)模組測試:
指把每個模組作為乙個單獨的實體來測試。目的是發現模組內部可能存在的差錯,保證每個模組作為乙個單元能正確執行,所以又稱單元測試。對多個模組的測試可以併發進行。在這個測試步驟中所發現的往往是編碼和詳細設計的錯誤。
2)整合測試:
是測試和組裝軟體的系統化技術,包括子系統測試和系統測試。子系統測試著重測試模組介面以保證協調與通訊;系統測試除發現設計和編碼的錯誤,還應驗證系統確實能提供需求說明書中指定的功能,且系統的動態特性也符合預定要求,因此在這個測試步驟中發現的往往是軟體設計中的錯誤,也可能發現需求說明中的錯誤。
1)主要檢測軟體的每乙個功能是否能夠正常使用,又稱功能測試。不考慮程式內部結構和特性的基礎上通過程式介面進行測試,檢查程式功能是否按照設計需求以及說明書的規定能夠正常開啟使用。主要用於測試過程的後期。
2)主要採用等價劃分、邊界值分析、錯誤推測設計測試方案。
·等價劃分
使用該方法首先需要劃分輸入資料的等價類,為此需要研究程式的功能說明,從而確定輸入資料的有效等價類和無效等價類。而後主要使用以下兩個步驟:設計乙個新的測試方案以盡可能多地覆蓋尚未被覆蓋的有效等價類,重複這一步驟直到所有有效等價類都被覆蓋為止;設計乙個新的測試方案,使它覆蓋且只覆蓋乙個尚未被覆蓋的無效等價類,重複這一步驟直到所有無效等價類都被覆蓋為止。
·邊界值劃分
使用該方法首先應確定邊界情況,通常應著重測試輸入等價類和輸出等價類的邊界。選取的測試資料應該剛好等於、剛剛小於和剛剛大於邊界值。通常總是與等價劃分聯合使用。
·錯誤推測
基本想法是列舉出程式中可能有的錯誤和易發生錯誤的特殊情況,並根據它們選擇測試方案。很大程度上靠直覺和經驗進行,還應仔細分析規格說明書,注意找出遺漏或省略部分,以便設計相應的測試方案,檢測程式設計師對這些部分的處理是否正確。
1)主要檢測軟體編碼過程中的錯誤,又稱結構測試。軟體程式被看作是乙個開啟的盒子,盒子裡有測試軟體的源程式,還能夠分析盒子內部結構,所以能夠全面地測試程式**結構。在測試過程的早期階段進行。
2)主要採用邏輯覆蓋和控制結構測試設計測試用例。
·邏輯覆蓋
是對一系列測試過程的總稱,這組測試過程逐漸進行越來越完整的通路測試。測試資料執行程式邏輯的程度從覆蓋源程式語句的詳盡程度分析,發現錯誤能力從弱到強大致有以下不同標準:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋。
·控制結構測試
以環形複雜度為基礎,匯出基本可執行路徑集合,以設計測試用例的方法,是根據程式的控制結構設計測試資料的技術。測試用例要保證程式的每個可執行語句至少執行一次。常用的有:基本路徑測試、條件測試、迴圈測試。
分析已知可得:
輸入條件
三個數均大於零(正數)
輸出條件
一般三角形
等腰三角形
三個數均為整數
等邊三角形
列出等價類並編號:
有效等價類
三邊均為正數 1
三邊均為整數 2
任意兩邊之和大於第三邊 3
任意兩邊之和大於第三邊且存在兩邊相等 4
任意兩邊之和大於第三邊且三邊相等 5
無效等價類
有一邊不大於零 6
有兩邊不大於零 7
三邊均不大於零 8
有一邊不為整數 9
有兩邊不為整數 10
三邊均不為整數 11
存在兩邊之和等於第三邊 12
存在兩邊之和小於第三邊 13
測試用例:
測試用例
覆蓋等價類號碼
預期輸出
覆蓋有效等價類 3
4 51、2、3
一般三角形 s=6 5
5 61、2、3、4
等腰三角形 s=12 3
3 31、2、3、4、5
等邊三角形 s=3.9
覆蓋無效等價類 -1
4 56
非法輸入 -1
0 57
非法輸入 -1
0 -2
8非法輸入
0.3 4
5 9非法輸入
0.30.4 5
10非法輸入
0.30.4
0.5 11
非法輸入 3
4 712
非法輸入 3
4 813
非法輸入
void func(int nposx, int nposy)
else
} // end of while
}
用例編號 路徑
輸入資料
預期結果 1
1-11
nposx = -3
nposy = 2
nposx = -3
nposy = 2 2
1-2-3-6-7-9-10-1-11
nposx = 1
nposy = -3
nposx = -1
nposy = -3 3
1-2-3-6-8-9-10-1-11
nposx = 3
nposy = -3
nposx = -1
nposy = -3 4
1-2-3-4-5-10-1-11
nposx = 3
nposy = -1
nposx = -2
nposy = -2
start
input (a, b, c)
if a> 5
then x = 10
else x = 1
end if
if b > 10
then y = 20
else y = 2
end if
if c > 15
then z = 30
else z = 3
end if
print (x, y, z)
stop
2)根據美國的一些統計數字可以推知每1000條指令中大約有5~20個錯誤,所以本題設程式約有25~100個錯誤。
3)由題可畫出如下流程圖:
在本題中語句覆蓋和路徑覆蓋可使用相同用例:
用例編號
輸入資料
預期輸出 1
a = 10
b = 15
c = 20
x = 10
y = 20
z = 30 2
a = 1
b = 2
c = 3
x = 1
y = 2
z = 3
名稱
語法
操作
browse
(瀏覽)
b(關鍵字)
系統搜尋給出的關鍵字,找出字母排序與此關鍵字相近的字。然後在螢幕上顯示約20個加了行號的字,與給出的關鍵字完全相同的字約在**
select
(選取)
s(螢幕上的行號)
系統建立乙個檔案儲存含有由行號指定的關鍵字的全部圖書的索引,這些索引都有編號(第乙個索引編號為1,第二個為2……以此類推)
display
(顯示)
d(索引號)
系統在螢幕上顯示與給定的索引號有關的資訊,這些資訊與通常在圖書館的目錄卡片上給出的資訊相同。這條命令接在browse/select或find命令後面用,以顯示檔案中的索引資訊
find
(查詢)
f(作者姓名)
系統搜尋指定的作者姓名,並在螢幕上顯示該作者的著作的索引號,同時把這些索引存入檔案
1)正常操作
編號輸入
預期輸出
1b(海)
約20個加了行號的字,「海」約在**
2b(海)s(3)
建立「海」瀏覽結果第三行相應索引檔案
3b(海)s(3)d(7)
顯示「海」瀏覽結果第三行索引號為7的圖書資訊
4f(hemingway)
顯示hemingway著作及索引號
5f(hemingway)d(1)
顯示hemingway著作索引號為1的圖書資訊
2)非正常操作
編號輸入
預期輸出
6b()
輸入為空,請重新輸入
7s()
8d()
9f()
10s(3)
未指定關鍵字,請先執行browse
11d(7)
未指定索引目錄,請先執行browse/select或find
12b(海)s(1000)
非法輸入,請重新輸入合法數字
13b(海)s(3)d(1000)
14f(hemingway)d(1000)
15b(海)s(v)
16b(海)s(3)d(v)
17f(hemingway)d(v)
初學者手寫作業,對問題敘述較為簡單淺顯,僅作為學習過程記錄。
歡迎指正與討論!
第七章作業
7.9 編乙個程式,用成員函式過載運算子 和 將兩個矩陣 這兩個矩陣均為2行3列 相加和相減,要求第乙個矩陣的值由建構函式設定,另乙個矩陣的值由鍵盤輸入。include using namespace std class matrix maritx maritx maritx maritx int ...
第七章作業
一.簡答題 1.清除浮動的方法有哪幾種?分別如何實現?答 1 浮動元素後面加空div 2 設定父元素的高度 3 父級新增overflow屬性 4 父級新增偽類 2.使用display inlink block或float布局頁面有什麼區別?需要注意什麼?答 1 display inline bloc...
第七章作業
1.清除浮動的方法 答案 clear 2.使用float和display有什麼區別 答案 浮動比較號調 3.答案 title 4.答案 title 分享名人名言,開始一段觸動心靈的智慧型之旅跳到內容 登入關於 名人名言 英文名言 english 心裡雜誌 心理書籍 專題活動 發表創造力 creati...