軟件測(cè)試人員的挑戰(zhàn)與機(jī)遇

本文轉(zhuǎn)自【林子的空間

“我們公司的測(cè)試好多都轉(zhuǎn)業(yè)務(wù)或開(kāi)發(fā)了,還有的轉(zhuǎn)管理了,測(cè)試做不長(zhǎng)久...”

“現(xiàn)在好多公司已經(jīng)不招測(cè)試人員了,感覺(jué)測(cè)試沒(méi)有什么前途...”

“ThoughtWorks技術(shù)雷達(dá)上都是開(kāi)發(fā)相關(guān)的內(nèi)容,測(cè)試相關(guān)的內(nèi)容越來(lái)越少...”

軟件測(cè)試總是被看做沒(méi)有技術(shù)含量、沒(méi)有前途的工作,很多做軟件測(cè)試的朋友也比較迷茫,表示發(fā)展受限。在這個(gè)技術(shù)飛速發(fā)展的時(shí)代,各行各業(yè)都在實(shí)行數(shù)字化轉(zhuǎn)型,各種高新技術(shù)似乎離測(cè)試人員越來(lái)越遙遠(yuǎn)...

那么,測(cè)試人員真的是前途渺茫嗎?本文將根據(jù)ThoughtWorks最新發(fā)布的第20期技術(shù)雷達(dá)來(lái)分析當(dāng)前流行的技術(shù)給軟件測(cè)試人員帶來(lái)的影響是什么,有哪些機(jī)遇與挑戰(zhàn)。

技術(shù)雷達(dá)條目不完全總結(jié)

技術(shù)雷達(dá)上的內(nèi)容涵蓋有技術(shù)、平臺(tái)、工具和語(yǔ)言四個(gè)維度,我觀察到其中跟測(cè)試人員關(guān)系比較緊密的主要有以下幾個(gè)方面:

1. 支持快速、持續(xù)交付的基礎(chǔ)設(shè)施與DevOps實(shí)踐

質(zhì)量和速度是最關(guān)鍵需求,為了適應(yīng)各行各業(yè)對(duì)速度的要求,配套的支持快速、持續(xù)交付的基礎(chǔ)設(shè)施與DevOps實(shí)踐是成功之必備。技術(shù)雷達(dá)上與之相關(guān)的條目有很多,比如:Terraform生態(tài)系統(tǒng)和四個(gè)關(guān)鍵指標(biāo)等。

  • Terraform生態(tài)系統(tǒng)

Terraform是一種安全有效地構(gòu)建、更改和版本化基礎(chǔ)架構(gòu)的工具,可以管理現(xiàn)有和流行的服務(wù)提供商以及定制的內(nèi)部解決方案,正在迅速成為通過(guò)聲明式定義來(lái)創(chuàng)建和管理云基礎(chǔ)設(shè)施的首選工具。本期雷達(dá)Terraform相關(guān)的內(nèi)容重點(diǎn)包括Terratest(用于測(cè)試基礎(chǔ)設(shè)施代碼),以及GoCD的新提供商(可以使用Terraform配置GoCD)。

基礎(chǔ)設(shè)施不僅是Ops或者開(kāi)發(fā)人員需要關(guān)注的領(lǐng)域,作為測(cè)試人員,同樣需要加強(qiáng)這項(xiàng)知識(shí)的掌握:

  1. 了解了基礎(chǔ)設(shè)施知識(shí),結(jié)合已有的測(cè)試sense,測(cè)試人員可以和開(kāi)發(fā)或Ops一起測(cè)試基礎(chǔ)設(shè)施;
  2. 了解基礎(chǔ)設(shè)施特點(diǎn),可以指導(dǎo)測(cè)試的設(shè)計(jì),在測(cè)試的時(shí)候更有針對(duì)性的關(guān)注比較脆弱的節(jié)點(diǎn)、環(huán)節(jié),規(guī)避風(fēng)險(xiǎn),增強(qiáng)系統(tǒng)的反脆弱性;
  3. 利用基礎(chǔ)設(shè)施知識(shí),可以指導(dǎo)測(cè)試環(huán)境的搭建和維護(hù)、自動(dòng)化測(cè)試數(shù)據(jù)的準(zhǔn)備和管理等。
  • 四個(gè)關(guān)鍵指標(biāo)

埃森哲發(fā)布的DevOps報(bào)告指出組織績(jī)效跟軟件交付性能關(guān)系緊密,而衡量組織績(jī)效的四個(gè)關(guān)鍵指標(biāo)分別是前置時(shí)間、部署頻率、平均修復(fù)時(shí)間(MTTR)和變化失敗率。本期技術(shù)雷達(dá)采納了這項(xiàng)技術(shù)。

作為測(cè)試人員,我們需要了解每個(gè)指標(biāo)的真正含義,并且思考我們測(cè)試策略是否需要做某些調(diào)整來(lái)提供對(duì)應(yīng)的指標(biāo)值。比如說(shuō)為了提高部署頻率,可能不需要那么高的E2E自動(dòng)化測(cè)試覆蓋率,而是達(dá)到覆蓋效果和執(zhí)行效率最佳平衡的一個(gè)狀態(tài)即可。

2. 支持業(yè)務(wù)靈活擴(kuò)展的微服務(wù)架構(gòu)

引入微服務(wù)令我們受益匪淺,使用微服務(wù),團(tuán)隊(duì)可以擴(kuò)展那些獨(dú)立部署和維護(hù)的服務(wù)的交付,從而方便業(yè)務(wù)的靈活擴(kuò)展。微服務(wù)架構(gòu)正在逐漸被越來(lái)越多的企業(yè)采用。我們看到技術(shù)雷達(dá)上應(yīng)對(duì)微服務(wù)的相關(guān)條目有服務(wù)網(wǎng)格、混沌工程、API測(cè)試框架Karate等。

  • 服務(wù)網(wǎng)格(Service Mesh)

服務(wù)網(wǎng)格是一種安全、快速、可靠的運(yùn)行微服務(wù)生態(tài)系統(tǒng)的方式。這種方式為輕松地大規(guī)模采納微服務(wù)奠定了基礎(chǔ)。它提供了檢測(cè)、保障、跟蹤、監(jiān)控和故障處理功能。它提供的這些跨功能能力無(wú)需共享API網(wǎng)關(guān)等資產(chǎn)或?qū)⒑芏嘁蕾噹?kù)納入到每個(gè)服務(wù)中。

  • 混沌工程(Chaos Engineering)

混沌工程是對(duì)系統(tǒng)進(jìn)行試驗(yàn)的一門(mén)學(xué)科,旨在建立對(duì)系統(tǒng)抵抗生產(chǎn)環(huán)境中不確定條件的能力的信心。在去年,我們看到混沌工程從一個(gè)備受關(guān)注的 、想法,轉(zhuǎn)變成公認(rèn)的主流方法,來(lái)改善并保證分布式系統(tǒng)的彈性。主要用于以下幾類故障時(shí)增強(qiáng)系統(tǒng)的彈性:基礎(chǔ)設(shè)施故障、網(wǎng)絡(luò)故障和應(yīng)用程序失敗,對(duì)應(yīng)的工具有Gremlin和Chaos Toolkit等。

  • Karate

Karate是一款A(yù)PI測(cè)試框架,其特色在于,直接使用Gherkin來(lái)編寫(xiě)測(cè)試,無(wú)需依賴常用編程語(yǔ)言來(lái)實(shí)現(xiàn)測(cè)試行為。Karate是一個(gè)領(lǐng)域特定語(yǔ)言,用來(lái)描述基于HTTP的API測(cè)試。雖然該方法很有趣,可以為簡(jiǎn)單的測(cè)試創(chuàng)建非常易讀的規(guī)范,但用于匹配和驗(yàn)證負(fù)載的專用語(yǔ)言可能會(huì)變得語(yǔ)法晦澀、難以理解。從長(zhǎng)遠(yuǎn)來(lái)看,使用此風(fēng)格編寫(xiě)的復(fù)雜測(cè)試是否將可讀且可維護(hù),仍有待觀察。

微服務(wù)帶來(lái)靈活性的同時(shí),也帶來(lái)很多的復(fù)雜性和不確定因素,尤其是對(duì)質(zhì)量保障帶來(lái)了挑戰(zhàn),因此微服務(wù)系統(tǒng)的測(cè)試也備受關(guān)注。作為測(cè)試人員,只有了解了微服務(wù)架構(gòu)與服務(wù)網(wǎng)格的特點(diǎn)及其對(duì)測(cè)試的影響、混沌工程對(duì)質(zhì)量保障的幫助、API測(cè)試的框架選擇與測(cè)試優(yōu)化等,才能更好的做好微服務(wù)系統(tǒng)的測(cè)試。

3. 多樣化數(shù)據(jù)形態(tài)的支持

圖片來(lái)自網(wǎng)絡(luò)

隨著數(shù)據(jù)源的增加、數(shù)據(jù)規(guī)模的擴(kuò)大、數(shù)據(jù)種類越來(lái)越多,相應(yīng)的數(shù)據(jù)形態(tài)也呈現(xiàn)出多樣性,包括NoSQL、時(shí)間序列、像CockRoachDB和Spanner這樣提供全局一致性的SQL存儲(chǔ),以及提供聚合日志文件查詢功能的事件流。不再是關(guān)系型數(shù)據(jù)庫(kù)解決一切存儲(chǔ)的時(shí)代了,要考慮真實(shí)需求,采用合適的策略和工具。

數(shù)據(jù)形態(tài)的變化,必然對(duì)測(cè)試也提出不同的要求。作為測(cè)試人員,需要了解不同的數(shù)據(jù)規(guī)模、不同的存儲(chǔ)形態(tài)、不同的數(shù)據(jù)類型分別該如何驗(yàn)證、測(cè)試該如何設(shè)計(jì)、測(cè)試數(shù)據(jù)該如何準(zhǔn)備,還有數(shù)據(jù)安全、數(shù)據(jù)匿名化、數(shù)據(jù)分析等數(shù)據(jù)相關(guān)技術(shù)對(duì)測(cè)試的支持等。比如,對(duì)于大量數(shù)據(jù)處理的項(xiàng)目,測(cè)試人員需要了解數(shù)據(jù)處理的技術(shù)與處理邏輯,分別從功能層面驗(yàn)證處理邏輯的正確性,以及從非功能方面考慮大量數(shù)據(jù)處理的性能、數(shù)據(jù)處理的安全規(guī)約等。

4. 網(wǎng)絡(luò)安全始終是重中之重

網(wǎng)絡(luò)給我們生活帶來(lái)便利性的同時(shí),其安全性也是備受關(guān)注。2018年歐盟頒布了GDPR法令,使得眾多企業(yè)不得不緊急調(diào)整系統(tǒng)功能做好個(gè)人身份信息的保護(hù)工作。網(wǎng)絡(luò)安全始終是質(zhì)量保障的重中之重,絕對(duì)不容忽視。本期技術(shù)雷達(dá)推薦的安全相關(guān)條目有密碼即服務(wù)容器安全掃描、密鑰銷毀技術(shù)等。

  • 密碼即服務(wù)(Secrets as a service)

在構(gòu)建和運(yùn)維軟件的價(jià)值流中,密碼憑據(jù)在多個(gè)場(chǎng)合都需要使用:構(gòu)建流水線需要使用密碼來(lái)與容器注冊(cè)中心等安全基礎(chǔ)設(shè)施進(jìn)行交互,應(yīng)用程序需要使用API密鑰作為密碼憑據(jù)來(lái)獲得業(yè)務(wù)功能訪問(wèn)權(quán)限,而服務(wù)間通信則需要以證書(shū)和密鑰作為密碼憑據(jù)來(lái)保護(hù)其安全,這些密碼憑據(jù)不建議通過(guò)源代碼的方式管理,而是采用密碼即服務(wù)的技術(shù)來(lái)存儲(chǔ)和訪問(wèn)。利用這種技術(shù),可以使用Vault或AWS Key Management Service(KMS)等工具來(lái)讀寫(xiě)HTTPS端點(diǎn)上的密碼憑據(jù),同時(shí)實(shí)現(xiàn)精細(xì)的訪問(wèn)控制。

  • 密鑰銷毀技術(shù)(Crypto shredding)

密鑰銷毀是指主動(dòng)覆蓋或刪除用于保護(hù)敏感數(shù)據(jù)的加密密鑰,以保護(hù)敏感數(shù)據(jù)不被讀取。對(duì)于審計(jì)應(yīng)用程序或區(qū)塊鏈這樣不應(yīng)該或不能刪除歷史記錄的系統(tǒng)來(lái)說(shuō),密鑰銷毀技術(shù)對(duì)于隱私保護(hù)和GDPR合規(guī)非常有用。

  • 容器安全掃描(Container security scanning)

圍繞Docker的容器革命顯著減少了應(yīng)用在跨環(huán)境遷移時(shí)的阻力,并推動(dòng)持續(xù)交付和持續(xù)部署的采納。但尤其是后者,對(duì)于傳統(tǒng)的投產(chǎn)控制帶來(lái)了相當(dāng)大的漏洞。容器安全掃描技術(shù)是對(duì)該威脅載體的必要響應(yīng)。構(gòu)建流水線中的工具,會(huì)自動(dòng)檢查流水線中的容器是否存在已知漏洞。

作為測(cè)試人員,對(duì)于上面的安全相關(guān)技術(shù)可能不需要掌握的很深,但是需要了解有這樣的一些技術(shù),以及對(duì)應(yīng)的使用場(chǎng)景。這樣,才能對(duì)于系統(tǒng)整體的安全質(zhì)量有更好的把握。此外,測(cè)試人員需要了解相應(yīng)的安全測(cè)試技術(shù),需要關(guān)注業(yè)務(wù)方面的安全需求,了解不同領(lǐng)域的安全規(guī)范和要求,從需求階段做好威脅建模開(kāi)始,跟團(tuán)隊(duì)一起在軟件開(kāi)發(fā)生命周期做到安全內(nèi)建(Build Security in)。

5. 自動(dòng)化測(cè)試與線上質(zhì)量的關(guān)注

要快速交付,必然離不開(kāi)自動(dòng)化測(cè)試,而要做好自動(dòng)化測(cè)試,更是離不開(kāi)相應(yīng)工具的支持。本期技術(shù)雷達(dá)上列出的Cypress、TestCafePuppeteer被譽(yù)為后Selenium時(shí)代的Web UI測(cè)試的三駕馬車(chē),值得關(guān)注。這三個(gè)工具不同于WebDriver時(shí)代的自動(dòng)化測(cè)試工具,具有更加輕量級(jí)、更加穩(wěn)定、速度更快的優(yōu)點(diǎn)。

隨著技術(shù)架構(gòu)的演進(jìn)和業(yè)務(wù)領(lǐng)域的發(fā)展,軟件系統(tǒng)生態(tài)越來(lái)越復(fù)雜。過(guò)于重視預(yù)生產(chǎn)環(huán)境的測(cè)試,不僅不能很好的保證生產(chǎn)環(huán)境的質(zhì)量,而且影響交付速度。因此,我們要把質(zhì)量關(guān)注點(diǎn)拓寬到生產(chǎn)環(huán)境,做到測(cè)試右移。本期技術(shù)雷達(dá)列出的相關(guān)工具有:日志管理工具Humio,Honeycomb,以及前面提到的混沌工程相關(guān)條目等。

  • Humio

在日志管理領(lǐng)域,Humio是一款相對(duì)較新的工具。該工具完全從零開(kāi)始構(gòu)建,通過(guò)基于定制設(shè)計(jì)的時(shí)序數(shù)據(jù)庫(kù)的內(nèi)置查詢語(yǔ)言,在日志提取和查詢方面性能非常快。從提取、可視化和報(bào)警提醒的角度來(lái)看,該工具能夠與幾乎所有工具相集成。

  • Honeycomb

Honeycomb是一個(gè)可觀測(cè)性工具,它從生產(chǎn)環(huán)境中提取出豐富的數(shù)據(jù),并通過(guò)動(dòng)態(tài)采樣使其可管理。開(kāi)發(fā)人員可以記錄大量豐富的事件,并在之后決定如何劃分和關(guān)聯(lián)它們,這對(duì)于大型分布式系統(tǒng)的問(wèn)題診斷很有幫助。

作為測(cè)試人員,自動(dòng)化測(cè)試成為了必備技能,需要關(guān)注自動(dòng)化測(cè)試工具的發(fā)展,了解新工具的特點(diǎn)與適應(yīng)場(chǎng)景,更好的讓自動(dòng)化測(cè)試工作發(fā)揮最大的價(jià)值。另外,測(cè)試右移的思想也越來(lái)越被大家接受,需要測(cè)試人員更多的了解基礎(chǔ)設(shè)施相關(guān)技術(shù)、線上監(jiān)控技術(shù)等,跟Ops緊密的合作,做好QA in production。同時(shí),利用生產(chǎn)環(huán)境的數(shù)據(jù),為預(yù)生產(chǎn)環(huán)境的測(cè)試設(shè)計(jì)和數(shù)據(jù)準(zhǔn)備等提供幫助,構(gòu)建反脆弱的軟件系統(tǒng)。

6. 新興領(lǐng)域不容忽視

圖片來(lái)自網(wǎng)絡(luò)

最火熱的新興領(lǐng)域當(dāng)屬AI,這也是未來(lái)的發(fā)展方向。本期技術(shù)雷達(dá)上列出的有機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)訓(xùn)練等內(nèi)容,比如:機(jī)器學(xué)習(xí)持續(xù)交付模型、NLP的遷移學(xué)習(xí)fastai等。

另一個(gè)熱門(mén)新技術(shù)是區(qū)塊鏈,技術(shù)雷達(dá)上區(qū)塊鏈相關(guān)技術(shù)條目有智能合約超越以太坊的EVM和企業(yè)版以太坊Quorum等。

技術(shù)雷達(dá)上還提到一個(gè)新的內(nèi)容,那就是隨著社會(huì)對(duì)科技的依賴程度日益增長(zhǎng),建議軟件開(kāi)發(fā)團(tuán)隊(duì)在制定決策時(shí)必須考慮道德問(wèn)題,思考自己所構(gòu)建的軟件會(huì)在未來(lái)產(chǎn)生什么影響。相應(yīng)的工具有技術(shù)塔羅牌道德風(fēng)險(xiǎn)手冊(cè)。

作為測(cè)試人員,這些都是大家可以關(guān)注并深入了解的方向。新興領(lǐng)域必然會(huì)對(duì)測(cè)試有不同的要求,比如:關(guān)于AI的測(cè)試需要考慮兩個(gè)方面,一個(gè)是對(duì)于AI產(chǎn)品的測(cè)試,另一個(gè)是把AI技術(shù)運(yùn)用于測(cè)試中,比如自動(dòng)化測(cè)試的智能化、生產(chǎn)環(huán)境數(shù)據(jù)的智能分析等。另外,對(duì)于區(qū)塊鏈,需要考慮它對(duì)測(cè)試帶來(lái)什么挑戰(zhàn)、有什么樣不同的測(cè)試方法來(lái)支持;對(duì)于道德風(fēng)險(xiǎn)的把控,我們軟件測(cè)試人員又該注意些什么?能夠提供哪些支持呢?

寫(xiě)在最后

前面列的這幾項(xiàng),除了自動(dòng)化測(cè)試工具以外,其他的內(nèi)容通常被認(rèn)為跟測(cè)試人員沒(méi)多大關(guān)系。其實(shí),軟件測(cè)試已經(jīng)不再是那個(gè)簡(jiǎn)單的通過(guò)模擬用戶行為點(diǎn)擊去驗(yàn)證功能是否滿足的時(shí)代了,測(cè)試人員的眼光要放更開(kāi)闊一些,考慮更多的質(zhì)量相關(guān)因素。對(duì)于前面總結(jié)的這些項(xiàng)目,我認(rèn)為不是跟測(cè)試人員沒(méi)有關(guān)系,而是給測(cè)試人員帶來(lái)了新的挑戰(zhàn),提出了新的要求。同時(shí),機(jī)遇跟挑戰(zhàn)并存,這些挑戰(zhàn)同樣也給測(cè)試人員帶來(lái)了很多新的發(fā)展機(jī)會(huì)。

那么,在眾多機(jī)會(huì)面前,測(cè)試人員該如何把握呢?推薦大家可以根據(jù)T型能力模型去提升自己的能力。

圖片來(lái)自網(wǎng)絡(luò)

T的橫表示能力廣度,T的豎表示能力深度。前面提到的方方面面都屬于廣度,包括不同技術(shù)和不同業(yè)務(wù)領(lǐng)域的擴(kuò)展,而深度就是對(duì)于其中一個(gè)領(lǐng)域進(jìn)行深入的學(xué)習(xí)研究,發(fā)展對(duì)應(yīng)的測(cè)試技能。

廣大的測(cè)試朋友們可以結(jié)合自己的興趣特點(diǎn),找到最適合自己的那個(gè)領(lǐng)域,深入發(fā)展。了解足夠的相關(guān)知識(shí),通過(guò)實(shí)踐將知識(shí)轉(zhuǎn)換為經(jīng)驗(yàn),然后總結(jié)歸納、不斷鍛煉,以獲得利用經(jīng)驗(yàn)解決問(wèn)題的能力,擁有一技之長(zhǎng)。

同時(shí),要拓寬視野,了解更多領(lǐng)域的知識(shí),做到廣度和深度協(xié)調(diào)發(fā)展。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容