1. 程式人生 > >新手小白如何做好介面測試

新手小白如何做好介面測試

測試行業中,大多數人接觸的都是所謂的功能測試,也就是人為操作裝置的輸入輸出,在這樣的一個模式下,實際上有很多的細節的邏輯並無法覆蓋到,雖然表面看似沒有問題,但經常會發生所謂的不可重現錯誤、異常錯誤、出現錯亂的資料、甚至被外界攻擊的現象。從另一個角度說這樣測試僅僅滿足了基本功能需求,但實際上系統非常的脆弱,如果系統用於內部且有監管機制,那麼沒有人敢去惡意操作,但是如果放在網際網路中,那就像沒有保護的小雞一樣,輕鬆被老鷹叼走。

測試的初衷本身就不是單單驗證需求的正確性,還有另一個很重要的部分,也就是證明程式是有錯誤的,為了更好的防止可能造成損失的情況發生,引入介面測試,讓測試的細節、準確度、深度產生質的變化。

有人會說,功能測試後不是應該引入自動化測試和安全測試嗎,這個話題我們在文章後面慢慢說。

簡單介紹一下什麼是介面測試:

介面測試,正如其名,測試的主要物件是介面,是測試系統元件間介面的一種測試方法,主要用於檢測外部系統與被測系統之間以及內部各系統之間的互動點,其中會包括資料的互動、傳遞、關係等等。實際上介面測試也是功能測試中的一個環節,只是對於測試新手常常是忽略的狀態。其實說到這裡,懂的人自然懂,不懂的人還是不知道介面是什麼,繼續往下看。

介面實際上是無處不在的,要解決介面這個抽象的概念,首先分離兩個大概念,第一種是程式碼內部所謂的介面,程式碼A與程式碼B在組合的時候,必然需要定義一些名稱以及引數、型別,這種在測試中一般劃分在白盒測試中,也算是整合測試階段,需要與開發有類似的程式碼知識才能上手。而另一種介面,是系統與系統之間,通過網路資料的傳遞進行互動,此類測試屬於黑盒層面,也就是看不到程式碼,但可以通過各種手段將網路資料傳送到介面從而得到介面的響應資訊,達到測試的目標。第一種介面很抽象,或者可以算是完全程式碼層面的東西,作為測試很少會接觸,至少目前是這樣,所以這裡我們主要闡述第二種黑盒層面通過網路互動方式的介面,因為無處不在,即使你現在還在做最簡單的功能測試。

只要你測試的不是單機軟體,就離不開介面,就算是網頁從伺服器上讀一張圖,實際上也是通過HTTP介面地址去獲取圖片檔案,然後再介面上顯示,只是這種型別的靜態檔案介面沒有邏輯,確保圖片地址和檔案是匹配的即可。但程式動態介面則不一樣,會涉及到各種各樣的引數,即使同一個介面,也會因為介面傳遞的引數內容不同、使用者不同、許可權不同等等出現不一樣的情況。介面、引數就是一種程式的輸入,而介面返回的資訊就是一種程式的輸出,其實這也類似於在介面輸入測試用例一樣,但在介面中,用例的數量會大大提升,因為不受介面文字輸入限制、不受選擇內容限制,甚至還有很多介面上你根本看不到的東西。輸入項內容多了,自然用例也會複雜很多,除了滿足需求以外,還要根據介面的資料互動設計定製用例和預期結果,好的用例無非更能發現有深度的問題。

介面測試的方法有很多,比較常見的是通過一些介面測試工具來實現介面資料的傳遞,也有編寫程式碼來實現資料傳遞,以上都是可以在沒有客戶端介面的情況下做的,但需要對介面的實現比較熟悉。另外其實還有別的方式,比如在網路中將介面資料調包修改,或者以修改客戶端的方式達到某些目的,且非常真實有效,最終達到測試的目的,找出程式的錯誤。

至於自動化測試,實際上這個對質量本身是沒有影響的,機器沒有人類的AI,想讓機器發現錯誤,必然是已經發現過的錯誤了,那麼主要目的是迴歸測試,將重複的成本機器化來降低成本,並不能去發現更多的問題,甚至發現不了問題,如果使用頻率低,製作、維護成本大於人工直接操作,這就需要考慮該不該做了。

安全測試,相信剛入測試行業的人都對安全測試是一種渴望,但其高大上無法觸及。實際上大部分的安全都是利用介面層面來實現的,只是用例帶有一定特殊性,但千萬別想著把那些用例放在介面上輸入,那是完全無效的。想攻擊?不通過介面怎麼把惡意資料發到位呢,這就是滲透測試。當然安全測試還不止這些,但從介面層面實現的至少有一半以上。

這裡大家可以去雲層的課程裡學習本課程講會通過各個方向的測試技術,來幫助學員脫離點點點的噩夢,不再為測試無聊而煩惱,不再為發展而擔憂,全棧測試、高階測試、測試開發等高等級測試工程師就在眼前。主要知識點有Linux學習、監控、Web架構、Mysql資料庫、抓包工具Fiddler、發包工具Jmeter、自動化測試框架、專案綜合實戰、效能測試、安全測試、職業規劃指導。1-5年或更長軟體測試經驗,測試小白、初中級測試,無法跳出點點點的噩夢,如功能測試人員、業務測試人員、遊戲測試人員。**學習交流群:**903217991

注:加群要求

1、具有1-5工作經驗的,面對目前流行的技術不知從何下手,需要突破技術瓶頸的。

2、在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的。

3、如果沒有工作經驗,但基礎非常紮實,對軟體工作機制,常用設計思想,常用軟體框架掌握熟練的。

4、覺得自己很牛B,一般需求都能搞定。但是所學的知識點沒有系統化,很難在技術領域繼續突破的。

5.軟體開發高階大牛直播講解知識點,分享知識,多年工作經驗的梳理和總結,帶著大家全面、科學地建立自己的技術體系和技術認知!