原創(chuàng)|使用教程|編輯:鄭恭琳|2021-01-13 09:43:19.650|閱讀 259 次
概述:API測試提供了許多可維護的自動化功能,可以擴展到性能和安全測試中,但是您的普通測試人員無法訪問。了解如何顯著減少與創(chuàng)建有意義的測試方案相關(guān)的時間。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
API測試提供了許多可維護的自動化功能,可以擴展到性能和安全測試中,但是您的普通測試人員無法訪問。了解如何顯著減少與創(chuàng)建有意義的測試方案相關(guān)的時間。
轉(zhuǎn)向微服務(wù)和API驅(qū)動的架構(gòu)正在推動整個行業(yè)的重大創(chuàng)新,但也使企業(yè)面臨隱患。人機界面(Web和移動UI)不再是主要業(yè)務(wù)風(fēng)險所在。相反,最大的漏洞隱藏在API的非人機界面中。
因此,API測試已成為越來越多的關(guān)注點,但是我們始終都在聽到“API測試又是什么,為什么我需要它?”
快速總結(jié)是,應(yīng)用程序編程接口(API)是應(yīng)用程序使用由定義的合同管理的公共接口彼此通信的方式。采用API測試的背后推動力是能夠以獨立于UI的穩(wěn)定方式測試應(yīng)用程序的業(yè)務(wù)邏輯。與僅在前端進行測試相比,API測試可以進行更全面的測試,例如,可以進行性能和安全性測試。行業(yè)分析家和敏捷專家(例如Martin Fowler和Mike Cohn)都認(rèn)為API測試是必經(jīng)之路。那是什么使我們退縮呢?
軟件團隊希望花費理想的時間,而不僅僅是測試和調(diào)試,以最大化成功項目的潛力。但是,傳統(tǒng)上,很難減少在測試和調(diào)試上花費的時間,因為在軟件生命周期的后期(包括發(fā)行后)發(fā)現(xiàn)了許多嚴(yán)重的錯誤和安全漏洞。
下圖說明了何時將缺陷引入到應(yīng)用程序中,以及時間安排對每個階段修復(fù)缺陷的成本的影響。您可以清楚地看到,后期缺陷的成本是巨大的——成本的增加來自多種因素(例如,診斷問題和確定根本原因所需的時間,參與該過程的人員數(shù)量,以及與缺陷修復(fù)相關(guān)的日益增加的復(fù)雜性(以及由此帶來的風(fēng)險)。
如果您想自己,“我以前見過”……您可能已經(jīng)知道了!1996年,Capers Jones發(fā)布了此圖表背后的研究報告,即使過去20年中軟件開發(fā)實踐發(fā)生了變化,但最新的研究報告仍然與今天相關(guān)。
那么我們是在哪里錯了?我們采用的質(zhì)量方法是錯誤的——我們需要查看上表,并尋找左移缺陷檢測并盡早發(fā)現(xiàn),更容易診斷和修復(fù)的缺陷的方法。深入的代碼分析之類的技術(shù)可以在編寫代碼后立即發(fā)現(xiàn)嵌入在代碼庫中的安全性和可靠性問題,但是為了能夠驗證運行時或功能行為,我們需要花時間在創(chuàng)建和維護自動化測試上,并且,在敏捷的世界中,我們需要這些測試一旦創(chuàng)建便要連續(xù)執(zhí)行,以使它們能夠在實現(xiàn)新功能后“左移”檢測并捕獲回歸。
花費時間和組織測試組合的理想方法通常表示為“測試金字塔”,如下所示,這是通過在開發(fā)時間軸上盡力推動盡可能多的測試工作來實現(xiàn)的。您從單元測試的基礎(chǔ)開始,在那里發(fā)現(xiàn)的錯誤很容易修復(fù),然后API,集成,組件測試以及系統(tǒng)和UI測試完善了金字塔的層次。
但是,盡管諸如測試驅(qū)動開發(fā)(TDD),早期單元測試以及軟件測試中的更多自動化之類的做法已成為主流,但軟件團隊仍在后期UI和系統(tǒng)測試上花費過多時間。我們經(jīng)常將當(dāng)前的情況描述為倒金字塔形(冰激凌)。但是,仔細研究一下數(shù)據(jù),我們發(fā)現(xiàn)該行業(yè)嚴(yán)重缺乏API測試,因此馬提尼杯更合適:
不幸的是,測試金字塔的中間層通常沒有使用,因為投資API測試具有明顯的優(yōu)勢。例如,可以在軟件開發(fā)生命周期的較早階段進行測試(只要有API合同/定義可用),就可以更輕松地實現(xiàn)自動化,并且從根本上來說,它們對于應(yīng)用程序UI/UX中傳入的更改不那么脆弱。
通過將API測試組織到常見的用例中,可以創(chuàng)建場景級別的測試,并且API測試的自動化為早期和場景驅(qū)動的性能和安全性測試鋪平了道路。最終,對API測試的投資使團隊能夠更好地管理變更并獲得現(xiàn)代開發(fā)方法所承諾的敏捷性。經(jīng)常進行早期測試,不喜歡什么?不幸的是,由于各種原因,團隊正在努力實現(xiàn)API測試。
越來越多地采用API測試的最大障礙是測試的實際創(chuàng)建。創(chuàng)建在API級別上起作用的有意義的測試并非易事,更不用說將它們串在一起以創(chuàng)建適當(dāng)?shù)臏y試方案了。在防止采用API測試方面,同樣重要的是開發(fā)人員和測試人員之間存在的知識鴻溝。API測試需要測試人員通常缺乏的知識和能力,并且經(jīng)理不想讓開發(fā)人員進行集成或API測試。
開發(fā)人員從金字塔的底部開始工作,并且對單位級別的工作很滿意。這是他們的代碼(至少是他們的職責(zé)范圍),單元測試似乎很自然地適合他們的工作流程。自動創(chuàng)建單元測試在此級別上提高了效率,并且軟件行業(yè)了解需要在這里進行全面測試。
另一方面,測試人員是在UI級別的金字塔頂端進行工作的,其中用例和界面直觀且易于映射到原始業(yè)務(wù)需求。他們對應(yīng)用程序的看法是從外面看的。
API測試位于這兩個角色之間,既需要有關(guān)接口設(shè)計的知識,又需要如何使用它們。測試人員通常無法在此級別上工作,將API視為代碼,并且開發(fā)人員了解接口和API時,他們通常對接口如何與其他子系統(tǒng)結(jié)合使用沒有完整的了解,因此將API測試視為功能測試,而不是其職責(zé)范圍。
直到最近,還缺少測試工具自動化來幫助縮小單元和系統(tǒng)測試,開發(fā)人員和測試人員之間的差距。為了幫助軟件行業(yè)更接近理想的測試金字塔并從我們今天看到的馬提尼杯中發(fā)展出來,我們將Smart API Test Generator引入了Parasoft SOAtest,這是我們易于使用和使用的功能測試自動化工具。
Smart API Test Generator是Google Chrome網(wǎng)絡(luò)瀏覽器的插件,可監(jiān)視手動測試并使用人工智能創(chuàng)建自動API方案測試,從而降低了采用API測試所需的技術(shù)技能,并幫助您構(gòu)建可擴展的API測試策略團隊和組織。它是這樣的:
智能API測試生成器會在您執(zhí)行手動測試時監(jiān)視后臺流量,并將其發(fā)送到其人工智能引擎,該引擎可識別API調(diào)用,發(fā)現(xiàn)模式,分析API調(diào)用之間的關(guān)系,并自動生成完整的,有意義的API測試方案,不只是一系列API測試步驟。
Smart API Test Generator使API測試更易于測試團隊使用,因為這些API測試方案是使用他們已經(jīng)在做的測試實踐創(chuàng)建的。與手動或什至自動UI測試不同,記錄的API活動可以幫助測試人員與開發(fā)人員更好地協(xié)作,其單一工件可以被兩個團隊輕松共享和理解,并且比復(fù)雜的UI測試更能診斷出缺陷的根本原因這需要組裝整個應(yīng)用程序。
另一方面,僅進行UI測試時,開發(fā)人員和測試人員往往會在通信和調(diào)試技術(shù)中保持孤立狀態(tài)——往往導(dǎo)致漫長的等待時間以及缺陷引入,缺陷檢測和缺陷解決之間的反復(fù)。
在UI測試期間記錄的API交互需要某種形式的組織成場景或用例。SOAtest Smart API Test Generator的人工智能通過基于不同API調(diào)用之間的關(guān)系創(chuàng)建方案來提供幫助。
如果沒有Smart API Test Generator的幫助,用戶將不得不花時間研究他們的測試用例,尋找模式,以及手動建立關(guān)系以形成每個測試方案。此外,Parasoft SOAtest提供了一種直觀的,由UI驅(qū)動的方法來描述斷言,從而使測試人員無需編寫任何代碼即可執(zhí)行復(fù)雜的斷言邏輯。否則,用戶將手工編寫每個斷言的代碼,他們可能會錯過一個斷言或?qū)⑵渲脼殄e誤。然后,可以使用可視化工具和工具輔助邏輯來擴展這些API測試,從而創(chuàng)建更大范圍的測試套件。
盡管軟件團隊承認(rèn)希望實現(xiàn)單元,API和UI測試的理想分布,但現(xiàn)實情況是,您的普通團隊正在完成單元測試的平均工作,并且仍然依賴后期UI和系統(tǒng)測試。API測試提供了開發(fā)人員和測試人員之間理想的通信機制,并具有高度可維護的自動化水平,可以擴展到性能和安全性測試中。
將這些測試左移并在軟件生命周期的較早時間執(zhí)行它們意味著及早發(fā)現(xiàn)關(guān)鍵的安全性和體系結(jié)構(gòu)缺陷,在這些缺陷中,它們更易于診斷且修復(fù)風(fēng)險較小。利用Parasoft SOAtest的Smart API Test Generator提供的自動化功能,API測試更加容易訪問,并且可以大大減少與創(chuàng)建有意義的測試方案相關(guān)的時間。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn