软件接口测试是什么?怎么测?
軟件測試是一條超級長的跑道,最好分階段來跑:先入行,后精通。網(wǎng)上能看到很多軟件測試的帖子,但能夠準確分類詳細介紹的并不多。正好最近有時間,就把我所了解的軟件測試做一個小小總結,對你有幫助的話,記得點贊、收藏、關注偶~
一、軟件測試分類
在招聘網(wǎng)站上能夠看到很多軟件測試的崗位,但大部分崗位的名稱都是非?;\統(tǒng)的軟件測試,到底是做功能測試的,還是做接口測試的,還是做性能測試的,并不十分明晰。有些招聘明明在崗位描述里寫的是功能手工測試,面試的時候希望用7k的工資招聘一個資深測試開發(fā)人員,逗兒呢?
不吐槽了,先做一點介紹吧。軟件測試想必不用我做介紹了,就是通過一系列的手段和方法,通過或手工或工具來測試軟件里的錯誤(bug),要有“雞蛋里挑骨頭”的勇氣和細心。當然不能亂挑刺。
根據(jù)測試階段,可以將軟件測試分為單元測試(UT)、集成測試(IT)、系統(tǒng)測試(SY)、驗收測試(UAT,又可以分為alpha、beta、gamma測試)等。這種分類方法必須知道并且其中涉及的點是需要記憶的。
根據(jù)是否自動化,可以將軟件測試分為人工測試和自動化測試。像我們在招聘網(wǎng)站里看到的自動化測試就是這里的概念,通俗來說,就是用機器來代替人工進行測試,以提升效率。現(xiàn)在測試入行的門檻是在逐步抬高的,基本是家公司,不管招人來是干什么的,都希望候選人會自動化測試。
根據(jù)是否要運行程序,可以將軟件測試可以分為靜態(tài)測試和動態(tài)測試。靜態(tài)測試其實主要就是看一看文檔呀、頁面呀之類的,很重要,但是我們主要做的還是動態(tài)測試。
根據(jù)是否要對代碼進行測試,可以將軟件測試分為白盒測試和黑盒測試。直接對源代碼進行測試是為白盒測試,這塊一般是直接由開發(fā)人員來測試的。不對源代碼進行測試是為黑盒測試,又可以分為很多種類。對于測試人員來說,大部分進行的都是黑盒測試。
而接口測試是介于黑盒與白盒測試之中的一種測試,我們理解為是灰盒測試。因為接口要比手工測試(如點點點)更提前介入,更早地發(fā)現(xiàn)程序中可能存在的bug,從而補救成本比較低,所以很受重視。而且就點點點的功能測試來說,現(xiàn)在很多公司選擇外包,這也造就了很多外包測試公司。而接口測試因為涉及到公司的核心業(yè)務邏輯和數(shù)據(jù),很少有公司愿意把接口外包。
看到這里是不是感覺仍舊十分的迷惑,接口測試到底是干什么的呢?通俗點來說,接口測試和功能測試沒有什么太大的區(qū)別。只不過功能測試一般是要等程序上線以后,才能夠用手來點點點測試的。而接口測試也是測試軟件的功能,只不過是在沒有UI界面、在程序沒有上線之前就可以測試的。
二、接口測試是什么?
1、接口是什么?接口是從哪里來的?
在介紹接口測試是什么之前,讓我們先思考一個問題:什么是接口呢?舉個現(xiàn)實點的例子來說,USB和電腦連接的接口就是一個接口;人與人之間交流的語言也是一個接口。接口的目的是為了方便人與人之間的協(xié)同,以提高工作效率的一套標準與規(guī)范。就軟件測試來說,接口就是一套前端和后端在開發(fā)過程中都需要遵循的用以數(shù)據(jù)傳輸?shù)囊?guī)范與標準。
明確了標準,就可以將軟件開發(fā)的業(yè)務劃分成若干個部分,然后交由不同的專業(yè)人士去開發(fā)了。前端的歸前端,后端的歸后端。在提升效率的同時,也方便了以后的迭代升級和人員流動等場景需求。
好,那也就是說,所謂接口就是一套規(guī)范嗎?是的。其實有一個專業(yè)的名詞:API文檔。這個詞應該不算是太陌生吧,不管是不是搞軟件的,基本都聽說過它。這份文檔其實就是軟件開發(fā)過程中的一套標準,它里面規(guī)定了軟件的功能,以及每個功能的標準。當然,API文檔是由人來書寫的,它也不一定就是完美無缺的。
一般來說,API文檔是由公司里非常有經(jīng)驗的架構師大佬來編寫的,編寫的格式?jīng)]有通用的標準。不過有一種流行的風格,那就是restful風格。restful風格是一種軟件架構設計風格,但是并不是一套標準。所以如果你的公司所用的不是這種風格,也不必驚奇。
這種風格最大的好處就是流行,便于協(xié)同,其實也不是什么很厲害的東西,就是約定了一些方法、數(shù)據(jù)格式、狀態(tài)碼等。非常的簡單。
2、接口清單
有了API文檔有什么作用呢?------>找接口!前面說了,API文檔就是軟件開發(fā)的規(guī)范和標準,它里面包括了功能以及功能實現(xiàn)的標準。那么作為測試人員,就需要有能力從API文檔中將接口提煉出來,形成接口清單。
提煉的方法其實也比較簡單,這里還是以restful風格的API文檔來舉例吧。根據(jù)軟件功能模塊,可以分為N個層次,每個層次里又包括了若干個功能(接口),就可以提煉出N個層次、M個獨立的接口了。
可是這樣的接口是比較亂的,我們再根據(jù)restful風格中約定的get、post、put、delete四種方法進行分類,就可以在N個層次下將M個獨立的接口歸位四類。于是,一套脫胎于API文檔的接口清單就形成了。
可是,可是,我怎么知道它是一個接口呢?這就要提到接口的三要素了:url+方法+參數(shù)+返回值。在API文檔中,能夠找到這么一套東西的,就是一個接口。
3、接口測試是什么
接口測試就是根據(jù)接口清單,模擬客戶端向服務端發(fā)送請求數(shù)據(jù),并獲取響應數(shù)據(jù)后,查看響應數(shù)據(jù)是否符合預期的過程。
整個過程可以分為三個步驟:
第一步:模擬客戶端向服務端發(fā)送請求;
第二步:接受服務端返回的數(shù)據(jù);
第三步:查看返回數(shù)據(jù)是否符合預期。
必須要明確的一點是,接口測試的依據(jù)是接口清單,接口清單的依據(jù)是API文檔,API文檔的依據(jù)的項目需求文檔和原型圖。有了接口清單后,針對于每一個接口依次執(zhí)行上述三個步驟的過程就是接口測試。
那么是怎么執(zhí)行的呢?因為接口測試是在程序開發(fā)過程中進行的,是沒有完整的程序的,所以測試是需要用到工具的。不僅模擬客戶端向服務端發(fā)送請求是需要工具的,從服務端接受數(shù)據(jù)也是需要工具的,而且有時候驗證返回數(shù)據(jù)是否符合預期也是需要用到工具的。
這就不得不提到在接口測試中常用的如fiddler之類的抓包工具、postman、Jmeter等工具了。如果再涉及到接口自動化測試的話,還需要學習python、pytest、java等有關內容,這里先不介紹。對于小白來說,能夠先入門是最重要的。
4、接口測試的分類有哪些?
雖然接口測試已經(jīng)是一個比較小的分類了,但是它仍舊是可以細分的。一般來說,可以分為兩種:
web接口測試------>指基于BS架構的軟件測試
模塊接口測試------>指基于CS架構的軟件測試
在做接口測試的過程中,主要做的是web接口測試,即基于BS架構開發(fā)的軟件。至于說BS和CS架構是什么,這里就不介紹了,百度一下就可以找到很多答案了。
上面的分類方法我們知道即可,在工作中最常用的兩種接口測試,實際上是:單接口測試和關聯(lián)接口測試(多接口測試)。
顧名思義,單接口測試就是針對于接口清單里的某一個接口來進行測試,主要針對的是某一個點,而關聯(lián)接口測試(多接口測試)則是指針對于接口清單里的某幾個接口進行測試,主要針對的是某一業(yè)務邏輯。
測試的點不同,所需要學習了解的點就不同。單接口測試的目的是為了測試某個接口是不是完美地實現(xiàn)了需求,那么就需要測試到各種可能出現(xiàn)的情況,所以是對某一個接口進行大量同類用例的設計,這就是常說的數(shù)據(jù)驅動測試。
關聯(lián)接口測試的目的是為了測試某一業(yè)務邏輯是不是能正常實現(xiàn)的,所以基本上是建立在單個功能接口正常的前提下的,即一般不會填入逆向數(shù)據(jù)。在這個過程中,難點在于不同接口之間的數(shù)據(jù)傳遞。
以上這兩個點是接口測試執(zhí)行過程的重點,也是在學習使用postman和jmeter工具過程中的重點。我們以后再來介紹。
三、軟件接口測試怎么測?
前面鋪墊了這么多,這里做一個簡單的小結,到底應該要怎么做接口測試呢?
第一步:根據(jù)API文檔提取接口清單;
第二步:根據(jù)接口清單,確定適用于單接口測試的接口。根據(jù)需求評審及業(yè)務邏輯,確定適用于關聯(lián)接口測試的接口類。
第三步:根據(jù)確定的單接口測試和關聯(lián)接口測試,搭建測試框架,設計測試用例。這里的重點是用postman或jmeter等工具搭建測試框架(重點是數(shù)據(jù)驅動和參數(shù)傳遞),并根據(jù)等價類法、正交表法等方法設計合理有效的測試用例。
第四步:執(zhí)行測試用例,并驗證結果是否符合預期。如果是bug,提交bug等。
到這里,軟件接口測試就結束了。當然,還有一些更細節(jié)的實現(xiàn)流程沒有介紹,比如說,用例設計的方法有哪些?postman如何使用?jmeter如何使用?軟件測試的基本理論有哪些?缺陷管理工具怎么用?接口測試自動化如何學習?等等、等等,我們之后的文章再來介紹。
下一篇文章:軟件接口測試工具Jmeter怎么使用安裝教程詳解(一)
最后感謝每一個認真閱讀我文章的人,看著粉絲一路的上漲和關注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:?
這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!
在我的QQ技術交流群里(技術交流和資源共享,廣告勿擾)
可以自助拿走,群號:310357728群里的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦
如果對你有一點點幫助,各位的「點贊」就是小編創(chuàng)作的最大動力,我們下篇文章見
🌻好文推薦
在小公司“混”了2年,我只認真做了5件事,如今順利拿到字節(jié) Offe
去了字節(jié)跳動,才知道年薪 30w 的測試工程師有這么多?
北京35歲程序員失業(yè),感嘆:編程估計沒戲了,想去賣點煎餅果子養(yǎng)家~?
29歲轉行軟件測試靠譜嗎?一個過來人的心路歷程送給迷茫的你
同樣是IT行業(yè),測試和開發(fā)薪資真就差這么大嗎??
?
總結
以上是生活随笔為你收集整理的软件接口测试是什么?怎么测?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql查询涵盖的时段_涵盖的主题
- 下一篇: matlab simulink锂离子电池