本文轉(zhuǎn)自【林子的空間】
“我們公司的測(cè)試好多都轉(zhuǎn)業(yè)務(wù)或開發(fā)了,還有的轉(zhuǎn)管理了膛堤,測(cè)試做不長久...”
“現(xiàn)在好多公司已經(jīng)不招測(cè)試人員了,感覺測(cè)試沒有什么前途...”
“ThoughtWorks技術(shù)雷達(dá)上都是開發(fā)相關(guān)的內(nèi)容,測(cè)試相關(guān)的內(nèi)容越來越少...”
軟件測(cè)試總是被看做沒有技術(shù)含量、沒有前途的工作请祖,很多做軟件測(cè)試的朋友也比較迷茫,表示發(fā)展受限脖祈。在這個(gè)技術(shù)飛速發(fā)展的時(shí)代肆捕,各行各業(yè)都在實(shí)行數(shù)字化轉(zhuǎn)型,各種高新技術(shù)似乎離測(cè)試人員越來越遙遠(yuǎn)...
那么盖高,測(cè)試人員真的是前途渺茫嗎慎陵?本文將根據(jù)ThoughtWorks最新發(fā)布的第20期技術(shù)雷達(dá)來分析當(dāng)前流行的技術(shù)給軟件測(cè)試人員帶來的影響是什么,有哪些機(jī)遇與挑戰(zhàn)或舞。
技術(shù)雷達(dá)上的內(nèi)容涵蓋有技術(shù)荆姆、平臺(tái)、工具和語言四個(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)部解決方案顿痪,正在迅速成為通過聲明式定義來創(chuàng)建和管理云基礎(chǔ)設(shè)施的首選工具。本期雷達(dá)Terraform相關(guān)的內(nèi)容重點(diǎn)包括Terratest(用于測(cè)試基礎(chǔ)設(shè)施代碼)油够,以及GoCD的新提供商(可以使用Terraform配置GoCD)蚁袭。
基礎(chǔ)設(shè)施不僅是Ops或者開發(fā)人員需要關(guān)注的領(lǐng)域,作為測(cè)試人員石咬,同樣需要加強(qiáng)這項(xiàng)知識(shí)的掌握:
- 了解了基礎(chǔ)設(shè)施知識(shí)揩悄,結(jié)合已有的測(cè)試sense,測(cè)試人員可以和開發(fā)或Ops一起測(cè)試基礎(chǔ)設(shè)施鬼悠;
- 了解基礎(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)的反脆弱性;
- 利用基礎(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)告指出組織績效跟軟件交付性能關(guān)系緊密晰韵,而衡量組織績效的四個(gè)關(guān)鍵指標(biāo)分別是前置時(shí)間发乔、部署頻率、平均修復(fù)時(shí)間(MTTR)和變化失敗率雪猪。本期技術(shù)雷達(dá)采納了這項(xiàng)技術(shù)栏尚。
作為測(cè)試人員,我們需要了解每個(gè)指標(biāo)的真正含義只恨,并且思考我們測(cè)試策略是否需要做某些調(diào)整來提供對(duì)應(yīng)的指標(biāo)值译仗。比如說為了提高部署頻率,可能不需要那么高的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)正在逐漸被越來越多的企業(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)控和故障處理功能。它提供的這些跨功能能力無需共享API網(wǎng)關(guān)等資產(chǎn)或?qū)⒑芏嘁蕾噹旒{入到每個(gè)服務(wù)中牛曹。
- 混沌工程(Chaos Engineering)
混沌工程是對(duì)系統(tǒng)進(jìn)行試驗(yàn)的一門學(xué)科佛点,旨在建立對(duì)系統(tǒng)抵抗生產(chǎn)環(huán)境中不確定條件的能力的信心醇滥。在去年黎比,我們看到混沌工程從一個(gè)備受關(guān)注的 超营、想法,轉(zhuǎn)變成公認(rèn)的主流方法阅虫,來改善并保證分布式系統(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來編寫測(cè)試吕座,無需依賴常用編程語言來實(shí)現(xiàn)測(cè)試行為。Karate是一個(gè)領(lǐng)域特定語言瘪板,用來描述基于HTTP的API測(cè)試吴趴。雖然該方法很有趣,可以為簡單的測(cè)試創(chuàng)建非常易讀的規(guī)范侮攀,但用于匹配和驗(yàn)證負(fù)載的專用語言可能會(huì)變得語法晦澀锣枝、難以理解。從長遠(yuǎn)來看兰英,使用此風(fēng)格編寫的復(fù)雜測(cè)試是否將可讀且可維護(hù)撇叁,仍有待觀察。
微服務(wù)帶來靈活性的同時(shí)畦贸,也帶來很多的復(fù)雜性和不確定因素陨闹,尤其是對(duì)質(zhì)量保障帶來了挑戰(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)的支持
隨著數(shù)據(jù)源的增加涵但、數(shù)據(jù)規(guī)模的擴(kuò)大杈绸、數(shù)據(jù)種類越來越多,相應(yīng)的數(shù)據(jù)形態(tài)也呈現(xiàn)出多樣性矮瘟,包括NoSQL瞳脓、時(shí)間序列、像CockRoachDB和Spanner這樣提供全局一致性的SQL存儲(chǔ)澈侠,以及提供聚合日志文件查詢功能的事件流劫侧。不再是關(guān)系型數(shù)據(jù)庫解決一切存儲(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ò)給我們生活帶來便利性的同時(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)建流水線需要使用密碼來與容器注冊(cè)中心等安全基礎(chǔ)設(shè)施進(jìn)行交互桦他,應(yīng)用程序需要使用API密鑰作為密碼憑據(jù)來獲得業(yè)務(wù)功能訪問權(quán)限,而服務(wù)間通信則需要以證書和密鑰作為密碼憑據(jù)來保護(hù)其安全谆棱,這些密碼憑據(jù)不建議通過源代碼的方式管理快压,而是采用密碼即服務(wù)的技術(shù)來存儲(chǔ)和訪問。利用這種技術(shù)垃瞧,可以使用Vault或AWS Key Management Service(KMS)等工具來讀寫HTTPS端點(diǎn)上的密碼憑據(jù)蔫劣,同時(shí)實(shí)現(xiàn)精細(xì)的訪問控制。
- 密鑰銷毀技術(shù)(Crypto shredding)
密鑰銷毀是指主動(dòng)覆蓋或刪除用于保護(hù)敏感數(shù)據(jù)的加密密鑰个从,以保護(hù)敏感數(shù)據(jù)不被讀取脉幢。對(duì)于審計(jì)應(yīng)用程序或區(qū)塊鏈這樣不應(yīng)該或不能刪除歷史記錄的系統(tǒng)來說歪沃,密鑰銷毀技術(shù)對(duì)于隱私保護(hù)和GDPR合規(guī)非常有用。
- 容器安全掃描(Container security scanning)
圍繞Docker的容器革命顯著減少了應(yīng)用在跨環(huán)境遷移時(shí)的阻力嫌松,并推動(dòng)持續(xù)交付和持續(xù)部署的采納沪曙。但尤其是后者,對(duì)于傳統(tǒng)的投產(chǎn)控制帶來了相當(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ī)范和要求,從需求階段做好威脅建模開始愉适,跟團(tuán)隊(duì)一起在軟件開發(fā)生命周期做到安全內(nèi)建(Build Security in)犯助。
5. 自動(dòng)化測(cè)試與線上質(zhì)量的關(guān)注
要快速交付,必然離不開自動(dòng)化測(cè)試维咸,而要做好自動(dòng)化測(cè)試剂买,更是離不開相應(yīng)工具的支持。本期技術(shù)雷達(dá)上列出的Cypress癌蓖、TestCafe和Puppeteer被譽(yù)為后Selenium時(shí)代的Web UI測(cè)試的三駕馬車瞬哼,值得關(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)越來越復(fù)雜。過于重視預(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ì)較新的工具秀姐。該工具完全從零開始構(gòu)建慈迈,通過基于定制設(shè)計(jì)的時(shí)序數(shù)據(jù)庫的內(nèi)置查詢語言,在日志提取和查詢方面性能非呈∮校快痒留。從提取、可視化和報(bào)警提醒的角度來看蠢沿,該工具能夠與幾乎所有工具相集成伸头。
- Honeycomb
Honeycomb是一個(gè)可觀測(cè)性工具,它從生產(chǎn)環(huán)境中提取出豐富的數(shù)據(jù)舷蟀,并通過動(dòng)態(tài)采樣使其可管理恤磷。開發(fā)人員可以記錄大量豐富的事件,并在之后決定如何劃分和關(guān)聯(lián)它們野宜,這對(duì)于大型分布式系統(tǒng)的問題診斷很有幫助扫步。
作為測(cè)試人員,自動(dòng)化測(cè)試成為了必備技能匈子,需要關(guān)注自動(dòng)化測(cè)試工具的發(fā)展锌妻,了解新工具的特點(diǎn)與適應(yīng)場(chǎng)景,更好的讓自動(dòng)化測(cè)試工作發(fā)揮最大的價(jià)值旬牲。另外仿粹,測(cè)試右移的思想也越來越被大家接受,需要測(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ǐng)域當(dāng)屬AI,這也是未來的發(fā)展方向昌罩。本期技術(shù)雷達(dá)上列出的有機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)訓(xùn)練等內(nèi)容哭懈,比如:機(jī)器學(xué)習(xí)持續(xù)交付模型、NLP的遷移學(xué)習(xí)和fastai等茎用。
另一個(gè)熱門新技術(shù)是區(qū)塊鏈遣总,技術(shù)雷達(dá)上區(qū)塊鏈相關(guān)技術(shù)條目有智能合約睬罗、超越以太坊的EVM和企業(yè)版以太坊Quorum等。
技術(shù)雷達(dá)上還提到一個(gè)新的內(nèi)容旭斥,那就是隨著社會(huì)對(duì)科技的依賴程度日益增長容达,建議軟件開發(fā)團(tuán)隊(duì)在制定決策時(shí)必須考慮道德問題,思考自己所構(gòu)建的軟件會(huì)在未來產(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è)試帶來什么挑戰(zhàn)削葱、有什么樣不同的測(cè)試方法來支持;對(duì)于道德風(fēng)險(xiǎn)的把控淳梦,我們軟件測(cè)試人員又該注意些什么析砸?能夠提供哪些支持呢?
寫在最后
前面列的這幾項(xiàng)爆袍,除了自動(dòng)化測(cè)試工具以外首繁,其他的內(nèi)容通常被認(rèn)為跟測(cè)試人員沒多大關(guān)系。其實(shí)陨囊,軟件測(cè)試已經(jīng)不再是那個(gè)簡單的通過模擬用戶行為點(diǎn)擊去驗(yàn)證功能是否滿足的時(shí)代了弦疮,測(cè)試人員的眼光要放更開闊一些,考慮更多的質(zhì)量相關(guān)因素蜘醋。對(duì)于前面總結(jié)的這些項(xiàng)目胁塞,我認(rèn)為不是跟測(cè)試人員沒有關(guān)系,而是給測(cè)試人員帶來了新的挑戰(zhàn)压语,提出了新的要求啸罢。同時(shí),機(jī)遇跟挑戰(zhàn)并存胎食,這些挑戰(zhàn)同樣也給測(cè)試人員帶來了很多新的發(fā)展機(jī)會(huì)扰才。
那么,在眾多機(jī)會(huì)面前厕怜,測(cè)試人員該如何把握呢训桶?推薦大家可以根據(jù)T型能力模型去提升自己的能力累驮。
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í),通過實(shí)踐將知識(shí)轉(zhuǎn)換為經(jīng)驗(yàn)赎败,然后總結(jié)歸納秕衙、不斷鍛煉,以獲得利用經(jīng)驗(yàn)解決問題的能力僵刮,擁有一技之長据忘。
同時(shí),要拓寬視野搞糕,了解更多領(lǐng)域的知識(shí)勇吊,做到廣度和深度協(xié)調(diào)發(fā)展。