在軟體進行測試時,為了驗證軟體對外的介面服務是否可以正常提供服務及軟體在不同場景中執行路徑的安全性和可操作性,需要對介面進行測試。
介面測試(inte***ce testing)的目的是測試與系統相關聯的外部介面,測試的重點是檢查資料的互動,傳遞和控制管理過程,提供測試質量和測試覆蓋,更好地重新軟體缺陷和定位錯誤。
介面測試主要考慮的問題是模組介面和系統介面。
模組介面測試主要包括以下內容:
各個模組連線整合起來的時候,穿越模組介面的資料會不會丟失。
各個子功能組合起來,能否達到預期要求。
乙個模組的功能是否對另外乙個模組的功能產生不利的影響。
全域性資料結構是否有問題。
模組的積累誤差是否達到了不可介紹的程度。
系統環境的測試。
系統介面的測試主要包括以下內容:
交換機介面的測試,包括交換機與防火牆介面、交換機與磁碟陣列的介面,以及交換機與路由器介面的測試。
路由器與數據機的介面測試,包括路由器與單個數據機的介面,以及交換機與多個數據機的介面。
數據機與通訊平台介面的測試,包括數據機與通訊平台的ddn介面,數據機與通訊平台的isdn介面,數據機與通訊平台的x.25介面,以及數據機與通訊平台的fr(幀中繼)介面。
介面測試主要包括兩項內容:
介面邏輯測試是指根據業務邏輯、輸入引數、輸出值的描述,對正常輸入情況下所得的輸出值是否正確的測試,也就是測試對外提供的介面服務是否正常工作。
模組介面測試是為了保證資料的安全及程式在異常情況下的邏輯的正確性而進行的測試。 模組介面測試的主要包括以下四個方面:
空值(null)輸入,檢查模組介面對空值(null)的反應能力。
引數屬性的測試,輸入乙個未賦值的引數會出現的情況。
異常的測試,製造一些異常的測試場景,測試異常描述是否清晰。
引數的個數設計與模組介面引數的個數不一致時,檢查模組介面的反應能力。包括以下兩種情況:
介面測試的測試專案主要包括以下幾點:
1) 資料型別問題,包括:
2) 變數值問,包括:
3) 邏輯判斷問題,包括:
4) 檔案i/o問題,包括:
web的介面測試主要討論:伺服器介面和外部介面。
伺服器介面測試是測試瀏覽器與伺服器的介面。測試人員提交事務,然後檢視伺服器的記錄,並驗證在瀏覽器上所看到是操作是否正好是伺服器傳送的操作。
有些web系統有外部介面,測試的時候要使用web介面傳送一些事務資料,分別有效信用卡、無效信用卡和被盜信用卡進行驗證。 web應用伺服器還包括以下其他的測試:
由於平台伺服器是通過介面來與客戶端互動資料提供各種服務,因此伺服器測試工作首先需要進行的是介面測試工作。測試人員需要通過伺服器介面功能測試來確保介面功能實現正確,那麼其他測試人員進行客戶端與伺服器結合的系統測試過程中,就能夠排除由於伺服器介面缺陷所導致的客戶端問題,便於開發人員定位問題。以下便是個人的平台伺服器介面功能測試經驗總結:
根據伺服器的測試需求,介面測試範圍主要分為:
新增介面的測試;
新增業務功能介面測試;
整個伺服器的介面測試。
所需測試測試介面依次增多,在測試時間足夠的條件下,當然需要對所有介面進行測試用例的設計,但如果測試較短的情況下,則應該首先根據使用者的典型操作對測試介面進行優先順序劃分,對呼叫頻繁介面需要優先進行測試。
介面用於伺服器與客戶端的資料互動,客戶端通過網路協議傳遞的資料為伺服器介面的輸入資料,因此應該首先通過伺服器介面文件及客戶端資料約束文件進行互動資料的有效性檢查:
n 整數型資料位數
n 浮點型資料精度
n 字串資料範圍值
要求客戶端的整數型、浮點型、字串資料以及其最大值和最小值都能作為伺服器介面的有效輸入。這些工作在伺服器設計評審時就可以進行,以便確保不會出現客戶端上傳資料被伺服器自動進行截斷或四捨五入的操作。
以上策略只談到單個介面的測試方法,對於使用者來說,乙個操作可能會造成伺服器呼叫多個介面來進行完成,因此還需要從業務處理的角度,對各種業務操作所涉及的多個介面之間依賴呼叫進行測試。
介面依賴關係檢查主要是通過介面的輸出值為另一介面的輸入值來實現的,因此在進行介面測試之前,需要分析所測試介面的輸入值是通過客戶端還是其他介面輸出來獲取的,在設計測試用例時,加入介面的依賴關係說明以便於測試。
伺服器介面功能測試類似於單元測試,在設計測試用例時,側重點在於介面模組輸入/輸出項的正確性驗證,根據接伺服器介面處理方式,對各種介面進行分類:
第一類:條件判斷介面
這類介面在接收到請求資料後,會根據輸入引數進行條件判斷,然後返回相應結果碼,通常涉及條件判斷的介面有:使用者鑑權介面、公升級狀態上報、密碼修改/重置等介面。因此輸入/輸出項驗證的側重點主要集中在:
1)判斷條件的驗證
要對判斷條件進行驗證,則需要知道介面是根據哪些輸入項來進行判斷的
2)異常資料的響應
只考慮正常情況,而不考慮異常場景是無法保證介面功能執行正常,對於密碼重置介面,使用者id不存在、不合法,郵箱輸入格式錯誤、使用者郵箱資訊不存在或未啟用就是測試時需要考慮的異常場景,設計這類輸入值,並且檢查介面返回的響應碼,響應碼的正確才能保證客戶端根據異常情況來顯示相應的提示資訊。簡而言之,條件判斷的介面其測試策略就是根據判斷條件來設計各種輸入值來檢驗介面的功能。
第二類:資料查詢介面
除了象條件判斷介面一樣根據判斷項、請求引數等設計合法/不合法和正常/異常測試值之外,還需要結合資料庫來對查詢結果進行驗證:
是否根據正確的關聯資料表進行查詢;
驗證查詢結果是否從資料表中正確項中獲取,涉及到多表聯合查詢時,不同表中的相同項設計不同測試資料進行驗證;
修改查詢結果在資料表中對應項中的資料,使其為空值或客戶端相應項的範圍值的最大和最小值,檢視介面輸出是否正確。
第三類:邏輯運算介面
這類介面在收到請求資料之後,會進行一系列邏輯運算,然後根據處理結果更新資料庫中的資料,通常涉及邏輯運算的介面有:比賽成績同步、商品支付、各種資料包表等介面。
邏輯運算介面由於還涉及插入或更新資料庫操作,因此測試時還需要考慮資料庫特性,如資料精度問題,在mysql資料庫中,如果是浮點型資料,存入時會有精度誤差(131072.32插入float(10,2)型別的資料會變為131072.31),因此對於需要用於金額計算、資料統計、成績比較的資料,最好使用定點型。
最後伺服器介面的測試如果有足夠條件的話,還需要通過白盒測試來對介面**做進一步的測試,通過編寫關鍵**的測試樁,可以有效查詢將字元陣列當成字串使用造成的讀越界這類不易通過黑盒測試發現的bug。接下來的工作就是如何通過測試工具來執行伺服器介面功能測試。
C 學習(九)介面
介面定義了所有類繼承介面時應遵循的語法合同。介面定義了語法合同 是什麼 部分,派生類定義了語法合同 怎麼做 部分。介面定義了屬性 方法和事件,這些都是介面的成員。介面只包含了成員的宣告。成員的定義是派生類的責任。介面提供了派生類應遵循的標準結構。介面使得實現介面的類或結構在形式上保持一致。抽象類在某...
jmeter學習筆記(四) 介面測試
看了這篇jmeter技術貼後,試了一下,終於成功了,中間遇到的問題記錄一下。讀檔案中的請求資料及預期返回資料進行介面測試,對預期返回資料做了下處理 去空格和回車 使得和jmeter中的返回資料格式一致。string datalist new string 20 string content stri...
九 介面總結
1,介面和抽象類讓實現和定義實現分離 2.抽象類 抽象類用abstract修飾,可包含抽象方法,和普通方法,其中抽象方法只是宣告了存在乙個方法,但不知道具體怎麼做 抽象方法 方法只有宣告沒有方法體,使用abstract進行修飾,只是宣告了乙個方法 如果乙個類有1個或多個抽象方法,那麼該類一定是抽象類...