【軟體測試】——介面測試

程式設計師一凡發表於2020-12-26

現在很多公司都有做介面測試的要求,這時很多之前一直做功能測試的夥伴們就比較措手不及了,所以就需要來學習介面測試了,今天就給大家講解一下介面測試的知識。

一、介面測試的意義

1、什麼是介面測試呢?

介面測試是測試系統元件間介面的一種測試,介面測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的互動點聯絡,測試的重點是要檢查資料的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等。

2、那為什麼要做介面測試呢?

(1)舉個例子來說,就舉大家都很熟悉的淘寶網來說吧,在淘寶網不斷髮展歷史過程中,最先出現的是功能測試和效能測試,然後才是自動化測試,但測試技術發展到今天,淘寶網的架構已經不再是以前傳統的 MVC 結構了,整個系統架構不斷向著分散式、業務中心化和高可用性的方向發展,淘寶網現今的系統架構紛繁複雜,系統間的各種介面龐雜繁多,傳統的功能測試、效能測試和自動化測試已經難以滿足系統發展的需求,這時就迫切需要一種更加有效實用且可以持續進行的測試方式來保證整個系統架構的質量。

(2)介面測試就是在這種需求下應運而生,首先,隨著系統複雜程度的不斷上升,傳統的測試方法測試成本急劇增加,測試效率且大幅下降(資料模型推算,底層的一個bug能夠引發上層的 8 個左右bug,而且底層的bug很容易引起全網的當機;相反的介面測試能夠提供系統複雜度上升的情況下低成本高效率的解決方案。

(3)其次介面測試不同於傳統開發的單元測試,介面測試是站在使用者的角度對系統介面進行全面高效持續的檢測測試。

(4)最後介面測試是自動化並且持續整合的,這也是為什麼介面測試能夠低成本高效率的根源。

(5)總之介面測試是保證高複雜性系統質量的內在要求和低成本的經濟利益的驅動作用下的最佳解決方案,介面測試是一個完整的體系,也包括功能測試、效能測試

3)介面測試的適用範圍

(1)介面測試一般應用於多系統間互動開發,或者擁有多個子系統的應用系統開發的測試。 介面測試適用於為其他系統提供服務的底層框架系統和中心服務系統,主要測試這些系統對外部提供的介面,驗證其正確性和穩定性。介面測試同樣適用於一個上層系統中的服務層介面,越往上層,其測試的難度越大。介面測試在淘寶網的應用是一個自下而上的發展過程。

(2)介面測試實施在多系統多平臺的構架下,有著極為高效的成本收益比。介面測試天生為高複雜性的平臺帶來高效的缺陷檢測和質量監督能力。平臺越複雜,系統越龐大,做介面測試的效果就越明顯。

推薦軟體測試技術交流群:1079636098 一起學習成長

二、做介面測試的目的

1、介面測試的戰略方針

(1)介面測試的核心戰略在於:以保證系統的正確和穩定為核心,以持續整合為手段,提高測試效率,提升使用者體驗,降低產品研發成本為目的。

(2)核心:保證系統的穩定質量管理的目標是保證系統的正確和穩定,介面測試作為軟體質量管理的一部分也是能保證系統的正確和穩定的,更準確的說法是保證系統服務端的正確和穩定,一個系統的服務端,越接近底層,對系統的影響就越大,甚至有可能牽一髮而動全身,服務端的一個缺陷可能會引起客戶端的幾個甚至十幾個缺陷,更可怕的是服務端的缺陷有可能引起整個系統的崩潰,這對整個系統來說,損失將是不可估量的,因此服務端介面的質量將直接影響到系統的正確和穩定。

(3)手段:持續整合什麼是以持續整合為手段,關鍵在於“持續構建”、“業務”、“整合化”以及“文件體系”,我們需要讓被測程式碼進行持續構建整合,我們需要用業務化的思維去考慮介面定義的合理性,我們需要從效能、安全的角度去思考程式碼的正確性,我們還需要從整合化的角度去甄別介面間資料傳遞的正確性,我們更需要確定我們的測試範圍,也就是我們要測什麼、不要測什麼。

(3)目的:提高測試效率,提升使用者體驗,降低產品研發成本,介面測試要為程式碼的編寫保駕護航,增強開發人員和測試人員的自信,讓隱含的BUG提前暴露出來,要讓開發人員在第一時間修復 BUG,要讓功能測試人員和效能測試人員在測試的時候更加順手,最大限度減少底層 BUG 的出現數量,要讓產品研發的流程更加敏捷,要縮短產品的研發週期,最後在產品上線以後,要讓使用者用得更加順暢,同時也要讓使用者感覺產品服務零缺陷。

(4)另外在這個戰略過程中,我們需要幾類資源作為支撐,下面做簡單描述。 首先在這個戰略中最重要的一點是要強調團隊的重要性,特別是團隊中需要有合理的人力資源配置,在這個團隊中,需要全才,也需要專才,需要技術專家,也需要業務專家,既需要高效的執行者,也需要有效的管理者,任何人在這個團隊中都可以發揮重要作用。

(5)其次要充分重視文件的重要性,包括需求文件,開發技術方案,測試技術方案,測試用例文件等等,完善這些文件可以大大減少軟體工程週期中各個團隊配合障礙,也可以降低後期軟體維護成本。

(6)因此貫徹和落實介面測試的戰略可以最大程度地提高軟體質量的穩定性。

2、介面測試的各階段發展和目標

簡要講述一個介面測試團隊從建立初期到發展起來經歷了哪些階段,以及我們期望將來做成什麼樣子。

(1)摸索階段:一個全新的團隊在成立之初一般都會經歷一個比較長期的摸索過程,在這個階段內我們會嘗試不同的技術、框架和流程規範。直到在這些方面都找到了比較適合團隊自身特點的方案了, 那麼這個階段的目標就算是達到了。

(2)穩定提高階段: 摸索階段過後就應該會進入一個穩定提高期,經歷了摸索階段過後,團隊的技術、框架和流程規範都應該有了一個基本的定型。這個時候團隊的目標就是通過不同的專案實踐來不斷優化這些定型後的東西,最終總結出一套最佳方案出來。這套方案應該能夠成為其它專案測試活動的參照,甚至是依據標準。這個時候呢,我們會發現所有的專案都在有序、統一、高效、可靠的進行。

(3)擴大影響,組織共贏階段 :那麼到達上面這個目標之後是不是就是介面測試團隊的終點呢?顯然不是的,不要忘了,到目前為止,無論你在介面測試的工作上做得再好,那也僅僅只侷限在介面測試本身上而已,我們不應該滿足於此。通常來說介面測試團隊在整個質量保證團隊中佔據了眾多的核心技術人員。他們擅長使用各種技術來解決問題,甚至比開發團隊做得還還要好。擁有如此多的技術資源, 如果我們不懂得合理利用,那真的是一種很大的浪費。在做好介面測試本身的基礎上,我們還應該積極瞭解其它測試團隊面臨哪些問題,這些問題是不是可以利用技術手段來解決,如果可以,我們是否可以為他們實現一些實用的工具來幫助他們解決問題或者提高工作效率;我們自己的技術是否有需要分享給其它測試團隊,甚至是整個軟體團隊,以幫助他們更好地完成工作。總之,我們應該思考如何更有效、更合理地利用介面測試團隊的資源,來提高整個測試團隊的業績,這不僅會擴大介面測試團隊本身的影響力,還讓介面測試團隊成為整個部門的核心競爭力,同時它還能創造了一個共贏的局面。

(4)另一方面,在工作的流程上,各個測試角色是可以互補的,介面測試的設計、測試用例可以跟功能和效能測試共享,介面測試的報告可以作為功能測試的重要參考,讓其瞭解底層都經歷了哪些測試,哪裡是 bug 的密集區,哪裡相對安全一些。在功能測試工程師找到 bug 之後, 介面測試工程師可以用程式碼直接覆蓋這個 bug 產生的程式碼,使這個 bug 永遠不會出現第二次。 介面測試人員還可以直接繞過頁面,對底層系統進行效能和壓力的測試,在測試過程中各個角色之間的密切配合,也減少了測試的成本,提供系統全方位的質量保障。

願你我相遇,皆有所獲!

歡迎關注微信公眾號:程式設計師一凡

1.免費領取一份216頁軟體測試工程師面試寶典文件資料。
2.軟體測試學習路線以及相對應的視訊學習教程免費分享!

相關文章