介面定義
介面泛指實體把自己提供給外界的一種抽象化物,用以由內部操作分離出外部溝通方法,使其能被修改內部而不影響外界其他實體與其互動的方式。
舉例:有各種各樣的介面,比如電視遙控器的操作介面上的各種按鈕 ,電腦上主機板的網絡卡,插槽,硬碟資料線插槽, 軟體選單,dos命令視窗,軟體api函式
注意:介面不關注內部具體實現---過程,而是關注功能實現---結果。
介面分類
根據介面的定義和特性,可以分為以下兩類:
1.外部介面
說明:說明資源實體本身同外界環境的互動方式。
介面分類:
(軟體產品為例說明)
1. 使用者介面----方便使用者與軟體產品互動方式,溝通方式。
常見說明示例:
外部介面的使用者介面部分按windows應用軟體使用者介面的規範來設計,介面設計風格與***環境保持一致,採用***以及對話方塊等方式作為使用者介面,便於使用者使用。
使用者介面分類
命令介面:軟體產品向使用者提供了命令介面供使用者使用或管理軟體產品。
圖形介面:使用者可通過滑鼠、選單和對話方塊來完成對軟體產品的相關操作。圖形使用者介面元素包括視窗、圖示、選單和對話方塊等
程式介面:軟體產品提供給軟體開發人員進行程式設計的介面,俗稱api。
2. 硬體介面----軟體產品與其它硬體資源之間的介面。
常見說明示例:
inter或其他系列的微型計算機,記憶體***g以上,硬碟***g以上。
3. 軟體介面----軟體產品同其它應用軟體/系統之間的介面。
常見說明示例:
本軟體執行於***軟體及以上版本上,整個環境需要執行在windows某某版本及更高版本並裝有***(依賴軟體)的作業系統之上。
4. 通訊介面---指定軟體產品採用的網路傳輸等通訊介面。
常見說明示例:
本軟體使用的***通訊協議。
2.內部介面
說明:說明軟體內部各個模組/系統元素之間的介面或規範,軟體各個模組間資料交換的格式等。
常用說明示例:軟體內部的介面是通過***來進行交換的。使用者使用***軟體……可以說軟體的各個模組之間主要通過***來進行關聯,傳送資料並交換資訊,從而降低軟體模組間的耦合程度。
介面測試
1.狹義定義
通常,我們軟體測試中所說的介面測試,是指外部介面中用於與外部系統互動介面及軟體系統內部模組/元件或子系統之間的內部介面測試。例如:
1、系統與系統之間的呼叫,比如銀行會提供介面供電子商務**呼叫,或者說,支付寶會提供介面給**呼叫
2、上層服務對下層服務的呼叫,比如service層會呼叫dao層的介面,而應用層又會呼叫服務層提供的介面
3、服務之間的呼叫,比如註冊使用者時,會先呼叫使用者查詢的服務,檢視該使用者是否已經註冊。
注意:1.不管是內部介面還是外部介面,表現形式一般是以api形式出現
2.**角度看介面
inte***ce 動物
class 狗 implements 動物 }
class 貓 implements 動物 }
這裡,叫() 就可以介面函式,反正我不管你叫()函式裡面是怎麼樣實現的,我只認介面叫()。如上,對貓和狗的叫聲不一樣,也就是說實現不一樣,但是介面一樣都是叫(),貓也好,狗也好,都呼叫叫()。如果不是採用介面形式,而是對貓採用貓叫(),對狗採用狗叫(),當外界環境變化,比如,來的是狐狸叫,那就要修改函式為狐狸叫(),那就麻煩了。
通常比較規範的介面文件都應該具備類似下圖中的特點:包含介面名,引數名,引數型別,引數含義說明,取值限制,是否可空等
關於介面測試 part 1" title="測試思想-整合測試 關於介面測試 part 1" border="0">
2.適用情況
介面測試一般以用於多系統間互動開發,或者擁有多個子系統的應用系統開發的測試。介面測試適用於為其他系統提供服務的底層框架系統和中心服務系統,主要測試這些系統對外部提供的介面,驗證其正確性和穩定性。介面測試同樣適用於乙個上層系統中的服務層介面。
3.介面測試和單元測試
介面測試和單元測試之間並無嚴格的界限劃分,根據介面的定義和特性,建議把介面測試同單元測試進行區別看待。個人理解兩者之間主要區別在於:
1.單 元測試從**角度對函式**的邏輯進行測試,考慮的是函式內部實現,邏輯結構,一般由開發人員執行,而介面測試則是站在使用者角度對函式介面定義進行的測 試,考慮的是資料的交換,傳遞和控制管理過程及系統間的相互邏輯依賴,一般由測試人員執行。可以把介面測試看成是功能黑盒測試,如下:
輸入介面引數值->api介面->檢視介面的輸出
2.乙個介面函式可能會包含多個單元模組,所以介面測試和單元測試並不是完全相同的。
3. 介面測試是要滿足需求的,有自己特定的業務定義,介面測試所依賴的也是需求說明書,做介面測試的時候,更多的需要從業務的角度去考慮如何測試這個介面
4. 介面測試可以看成是單元測試和整合測試中的一部分。
4.測試流程
需求評審->介面定義->用例設計->測試執行->結果分析
注:.介面一般是開發人員定義的
5.用例設計思想(舉例說明)
如上表,是某個介面說明文件中的乙個介面,課程檢索,其中「v1/lesson/testsrch/?」 為介面呼叫位址,此外,還給出了介面函式輸出(即server response)及返回值。
問:怎麼設計?
答:思路應該是這樣的
1.理解需求
客戶需求->業務需求->測試需求,對介面測試用例設計也不例外。拿到介面,首先要明白這個介面的主要功能是做啥用的,呼叫它可實現什麼業務。如上述,介面功能:課程檢索
2.理解介面引數
對每個引數都要明白它們各自的含義。除了介面文件上簡單的說明,還必須理解它真正的作用。按我個人觀點,要想更好的理解介面引數,則應該多站在操作流程(或業務流程)及場景上進行考慮,盡量把對應運算元據或輸入步驟對映到介面函式。
舉例:緊接著如果有匹配資料的記錄則在列表中顯示,然後如果頁面超過一頁,列表下方會出現提供翻頁操作,並顯示當前處於第幾頁,如圖
說明:實際中往往沒有提供產品demo或者需求說明書,這個時候就要結合我們個人的經驗或者生活經歷來思考了,如果有更好了。
好了,回過頭來看介面引數,這時就很清晰了
pageindex int 當前頁碼,那上圖來說,我們知道它有個很重要的作用就是翻頁
pagesize int 每頁數量,上圖雖然沒提供頁面容量設定,但是實際也隱藏了每個頁面展示的記錄條數
3.關注介面輸出
僅關注介面引數的輸入還不夠,還應該關注介面的輸出,特別是輸出結果不唯一的時候:如下課程檢索輸出。
4.尋找測試點
記住,一、主要是基於步驟2(輸入)、步驟3(輸出)的
根據步驟挖掘測試點和測試資料
舉例:測試點:查詢內容k(型別》中文,英文大小寫,數字,特殊符;長度》是否字數限制;是否可為空》不輸入,即」」;查詢內容存在;查詢內容不存在)
測試點:頁面展示記錄數設定(預設;限制每頁展示記錄數;翻頁至不存在頁面)
二、其次依據介面引數本身
1、型別->能否傳遞型別不符的引數值;
個數->能否不傳遞某些引數;
型別->能否傳遞型別不同的引數,比如要求是int,你傳入string型別的或者要求string型別的,你要求傳入int
型別值》能否傳遞超過引數型別能容納的值,比如有符號int的範圍是-32768~32767,而無符號0~65535,那傳遞個65536會咋樣呢?
注意:1、一和二中有些是交叉的,他們的關係是互補關係
2、要知道測試是不能窮盡的,要時間成本投入的,如果每個引數每種情況都要細緻測的話是要花很多時間的。所以,要折中考慮,考慮測試資料是否意義,適當的取捨,特別是時間有限的情況下。
5.根據測試點設計用例
這個和功能設計用例一樣。合理安排優先順序,先設計常規用例,典型操作流程,典型業務場景用例,然後設計異常容錯等用例。
6.測試方法
功能測試用例設計方法都適用
關於介面測試
關於介面測試 by 授客 qq 1033553122 介面定義 介面泛指實體把自己提供給外界的一種抽象化物,用以由內部操作分離出外部溝通方法,使其能被修改內部而不影響外界其他實體與其互動的方式。舉例 有各種各樣的介面,比如電視遙控器的操作介面上的各種按鈕 電腦上主機板的網絡卡,插槽,硬碟資料線插槽,...
關於介面測試
介面定義 介面泛指實體把自己提供給外界的一種抽象化物,用以由內部操作分離出外部溝通方法,使其能被修改內部而不影響外界其他實體與其互動的方式。介面測試 通常,我們所說的介面測試,是外部介面與各外部系統之間的互動測試以及軟體系統內部各模組 元件之間的內部介面測試 介面測試適用於為其他系統提供服務的系統,...
測試思想 整合測試 關於介面測試 Part 1
關於介面測試 by 授客 qq 1033553122 介面定義 介面泛指實體把自己提供給外界的一種抽象化物,用以由內部操作分離出外部溝通方法,使其能被修改內部而不影響外界其他實體與其互動的方式。舉例 有各種各樣的介面,比如電視遙控器的操作介面上的各種按鈕 電腦上主機板的網絡卡,插槽,硬碟資料線插槽,...