轉(zhuǎn)帖|行業(yè)資訊|編輯:鄭恭琳|2020-06-15 13:59:34.247|閱讀 229 次
概述:測試工程師、性能測試人員和SRE著迷于在軟件交付的最后一步達到99.999%(有時甚至更高)的可靠性,這對客戶的影響最大。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Jason English為Parasoft撰寫的Intellyx BrainBlog
您是否曾經(jīng)有一位朋友因為牙齒的潔白而被強迫癥所困擾?他們?nèi)フ颐廊菅泪t(yī)進行激光美白,然后抱怨說不夠美白?最終,它們達到了漸近點,牙齒的表面無法反射99.9%的光線,因此,要獲得能夠提供99.999%潔白牙齒的治療,成本太高,而且是不可能的。
測試工程師、性能測試人員和SRE著迷于在軟件交付的最后一步達到99.999%(有時甚至更高)的可靠性,這對客戶的影響最大。
如果您也擁有有關(guān)應(yīng)用程序可靠性的OCD,那么您已經(jīng)計算出了數(shù)學(xué)知識,并意識到5 9相當(dāng)于每年總計約5.26分鐘的停機時間。您還意識到測試工程的成本和努力超過99.9%以確保99.999%的正常運行時間是不菲的。
在大多數(shù)情況下,將生產(chǎn)從3 9提升到5 9會比3 9吞噬更多的IT預(yù)算!
似乎世界上所有的生產(chǎn)前性能測試都不可能消除所有可能導(dǎo)致0.001%的停機時間的未知狀況。不管我們花多少錢。
但是,讓我們不必擔(dān)心您無法改進的一件事,一直到軟件交付的右側(cè)。不,不,不......無論如何,當(dāng)應(yīng)用程序完全烘焙后,在這里解決問題要花費很多。不能迷戀它。
只是一個小小的閃光點。沒有人是完美的。學(xué)會放松。
為什么不將生產(chǎn)暫時擱置一會,而在軟件生命周期開始時與DevTest團隊閑逛呢?
在軟件交付左側(cè)的此處,他們正在繪制地圖、編寫代碼并挑選組件。不在乎世界,不用擔(dān)心部署中可能發(fā)生什么未知的未知因素。
他們正在運行測試優(yōu)先的敏捷開發(fā),并且每個構(gòu)建都在運行大量結(jié)構(gòu)代碼檢查,并運行自動化的單元和回歸測試套件。他們在那種測試上向左移動。
他們也不必擔(dān)心自己所做決策的影響。當(dāng)將各種服務(wù)、軟件和基礎(chǔ)結(jié)構(gòu)組件集成到一個正在運行的應(yīng)用程序后面時,它們在負載下進行交互時會產(chǎn)生各種非功能性問題。
早期的設(shè)計和開發(fā)選擇可能會在以后提供壞消息,但是傳統(tǒng)上,非功能測試(NFT)和性能測試會在生產(chǎn)階段進行。
等等,如果您可以將NFT引入設(shè)計和開發(fā)呢?能否提供足夠的預(yù)警以防止最嚴(yán)重的錯誤?
非功能性問題很難在軟件的早期發(fā)現(xiàn),因為在現(xiàn)實中很難在實驗室中再現(xiàn)真實情況。
您可以在應(yīng)用程序界面或用戶授權(quán)過程上運行Selenium功能測試套件,或者運行一組API服務(wù)測試調(diào)用和數(shù)據(jù)集以驗證響應(yīng),或者對代碼運行一堆JUnit或NUnit測試。但是所有這些方法只能測試您期望在早期階段發(fā)現(xiàn)的問題。
為了更貼近現(xiàn)實世界,團隊可以選擇三種選擇。
1.插入功能測試以進行基準(zhǔn)測試。如果在CI/CD軟件管道中插入Selenium功能測試,并使用諸如之類的配套工具自動化它們,以監(jiān)視每次構(gòu)建的執(zhí)行時間,則可以為任何應(yīng)用程序、組件或服務(wù)捕獲一個相當(dāng)不錯的基準(zhǔn)。
如果響應(yīng)時間有某種偏差(無論出于何種原因),則構(gòu)建可以通知構(gòu)建平臺或開發(fā)人員某些異常(可能無法正常運行)導(dǎo)致特定組件的運行速度降低。
2.重用測試并在負載下重復(fù)。為什么要等到最后才使用需要近乎完成的UI調(diào)用的LoadRunner之類的工具,專門的測試技能以及較高的單座成本?
相反,如果您從Parasoft SOAtest之類的工具中進行了Selenium測試以及一些安全性檢查以及服務(wù)和集成測試,然后開始循環(huán)并重新運行它們,也許在數(shù)據(jù)或時序方面存在較高的頻率?您將獲得早期性能測試,向左移動。
在這里,您可以將Web樣式、UI調(diào)用、對API或事件隊列的非UI調(diào)用的不同組合結(jié)合起來,以進行混合性能測試,從而可以測試應(yīng)用程序目標(biāo)生態(tài)系統(tǒng)的多個層面,而無需等待完成的應(yīng)用程序。
3.隔離環(huán)境依賴性。向左移NFT的最后障礙是應(yīng)用程序?qū)嶋H存在的環(huán)境。現(xiàn)代應(yīng)用程序在充滿數(shù)據(jù)和服務(wù)依賴關(guān)系的世界中發(fā)揮作用。
在這里,可以使用服務(wù)虛擬化解決方案進行基于環(huán)境的測試,以便對實時應(yīng)用程序周圍的所有上游和下游依賴性進行檢測。這樣,您就可以模擬諸如銀行合作伙伴的系統(tǒng)、國家天氣或空中交通系統(tǒng)之類的東西,這些東西永遠都不會受到您的控制,也無法導(dǎo)入您自己的DevTest實驗室。
可以將依賴項作為虛擬服務(wù)進行偵聽并捕獲為虛擬服務(wù),就軟件測試而言,這些組件可以響應(yīng)“比真實情況要好”。
一家加拿大銀行使用了這三種技術(shù)的組合。他們自動執(zhí)行功能測試以獲取貸款應(yīng)用程序組件的基準(zhǔn),然后與其他一些測試一起重新運行該測試,以進行數(shù)據(jù)查詢和對第三方信貸服務(wù)的虛擬服務(wù)“模擬”的API調(diào)用。
他們很擔(dān)心。如果虛擬API服務(wù)響應(yīng)太慢——被測組件會發(fā)生什么?它做出了預(yù)期的響應(yīng),但是隨后測試團隊加快了該第三方響應(yīng)的虛擬服務(wù),使其在最短的時間內(nèi)完成。當(dāng)出現(xiàn)響應(yīng)速度太快時,出現(xiàn)了一個“競爭條件”,導(dǎo)致組件事務(wù)失敗!
在軟件中,只有一個完美的定義,但是失敗是無限的。
無論我們刷多少遍,我們都永遠不會有100%潔白的牙齒。無論我們進行多少測試,我們都永遠不會100%清除生產(chǎn)中的缺陷,在這些缺陷中,錯誤很難隔離且修復(fù)成本很高。
但是,通過適當(dāng)?shù)臏y試左移,包括非功能測試和性能測試,我們可以得到一個預(yù)警系統(tǒng),該系統(tǒng)可以消除許多這些新生問題,使它們沒有機會出現(xiàn)在性能實驗室中或失敗在客戶面前。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn