DevOps 的目標(biāo)是以更快的方式交付軟件。如今,越來越多的企業(yè)正努力通過 DevOps 實(shí)踐提高生產(chǎn)力,加快發(fā)布周期。然而在DevOps 實(shí)踐中,開發(fā)人員專注于功能創(chuàng)建,而業(yè)務(wù)領(lǐng)導(dǎo)者則專注于交付,測(cè)試的重要性常常被忽略。這就導(dǎo)致,雖然交付過程的其他方面得到了簡(jiǎn)化和加速,測(cè)試卻成為了軟件交付的瓶頸。
軟件交付的最大阻礙
GitLab 曾經(jīng)發(fā)起一項(xiàng)針對(duì)開發(fā)者和工程師的調(diào)查。調(diào)查發(fā)現(xiàn),有 52% 的受訪者認(rèn)為,與開發(fā)過程的其他部分相比,測(cè)試造成的延遲更多。
DevOps Review 也得出了相同的結(jié)論,63% 的受訪者表示,“測(cè)試”是導(dǎo)致軟件延遲交付的第一大因素。該調(diào)查主要針對(duì)實(shí)施 DevOps 企業(yè)的 IT 部門領(lǐng)導(dǎo)者。第二大阻礙軟件交付的因素是“計(jì)劃”,不過只有 32% 的受訪者如此認(rèn)為,遠(yuǎn)遠(yuǎn)低于站隊(duì)“測(cè)試”的人群。
軟件生產(chǎn)過程中的主要障礙在哪里?
為什么測(cè)試是一個(gè)如此可怕的瓶頸? 測(cè)試咨詢公司 Tricentis 的創(chuàng)始人 Wolfgang Platz 經(jīng)過調(diào)查后,總結(jié)了以下原因:
絕大多數(shù)測(cè)試(超過 80%)仍然是手動(dòng)執(zhí)行的——在大型企業(yè)中甚至更多。
正在構(gòu)建、維護(hù)和執(zhí)行的測(cè)試用例中,大約 67% 是多余的,對(duì)工作沒有任何價(jià)值。
在具有重要測(cè)試自動(dòng)化的企業(yè)中,測(cè)試人員將 17% 的時(shí)間用于處理誤報(bào),另外 14% 的時(shí)間用于額外的維護(hù)任務(wù)。
超過一半的測(cè)試人員每周花費(fèi) 5 到 15 個(gè)小時(shí)處理測(cè)試數(shù)據(jù)(數(shù)據(jù)的平均等待時(shí)間約為2 周)。
84% 的測(cè)試經(jīng)常因測(cè)試環(huán)境訪問受限而延遲,測(cè)試環(huán)境的平均等待時(shí)間為32天。
從開始到結(jié)束——包括計(jì)劃、實(shí)施和測(cè)試,執(zhí)行回歸測(cè)試套件平均需要 16.5 天,但敏捷沖刺平均需要兩周時(shí)間。
現(xiàn)在,被測(cè)應(yīng)用程序平均與 52 個(gè)相關(guān)系統(tǒng)交互——這意味著單個(gè)端到端事務(wù)可以跨越從微服務(wù)和 API 到各種移動(dòng)和瀏覽器界面、打包應(yīng)用程序(SAP、Salesforce、Oracle、ServiceNow…… )、自定義/遺留應(yīng)用程序和大型機(jī)。
如何破解測(cè)試難題?
隨著軟件發(fā)布變得越來越頻繁,采用傳統(tǒng)的測(cè)試方式已經(jīng)跟不上開發(fā)節(jié)奏。企業(yè)應(yīng)該怎么做,才能確保,測(cè)試不是軟件交付的瓶頸,而是更快的催化劑。
Forrester 的一項(xiàng)研究發(fā)現(xiàn),成功實(shí)踐 DevOps/敏捷開發(fā)的企業(yè),有一些共同點(diǎn),比如通過自動(dòng)化端到端功能測(cè)試等方式將軟件測(cè)試轉(zhuǎn)變?yōu)槌掷m(xù)測(cè)試。還有很關(guān)鍵的一點(diǎn)是,它們會(huì)對(duì)關(guān)鍵測(cè)試和 QA 流程,如測(cè)試用例設(shè)計(jì)、功能測(cè)試、測(cè)試數(shù)據(jù)管理等,進(jìn)行高度自動(dòng)化。
這些企業(yè)證實(shí)了,有效、連續(xù)、自動(dòng)化的測(cè)試方式要遵循這幾大要點(diǎn):
(1)盡早介入測(cè)試
測(cè)試或軟件 QA,一直以來都是軟件交付難題的最后一部分。在發(fā)布周期結(jié)束時(shí)測(cè)試和發(fā)現(xiàn)錯(cuò)誤是常態(tài)。但這帶來了問題,因?yàn)殚g隔了一段時(shí)間后,開發(fā)人員可能不記得問題出現(xiàn)的背景,修復(fù)這些缺陷、改變?cè)O(shè)計(jì)和重新開發(fā)功能會(huì)導(dǎo)致更多的時(shí)間花在重新測(cè)試和回歸負(fù)載上,造成開發(fā)效率低下。因此,在軟件開發(fā)的的各個(gè)階段,越早進(jìn)行測(cè)試,就能越早發(fā)現(xiàn)錯(cuò)誤并且修復(fù)它們。測(cè)試帶來的反饋還可以幫助開發(fā)流程向前推進(jìn)。
(2)測(cè)試用例自動(dòng)化
在 PractiTest 和 Tea-Time with Testers 最近的一項(xiàng)調(diào)查中,軟件測(cè)試團(tuán)隊(duì)發(fā)現(xiàn),過去已經(jīng)足夠好的手動(dòng)流程已經(jīng)跟不上交付步伐。盡管 85% 的受訪者表示他們的公司使用自動(dòng)化,但只有 19% 的受訪者在超過 50% 的測(cè)試用例中使用自動(dòng)化。
如果出現(xiàn)測(cè)試任務(wù)耗時(shí)、重復(fù)、停機(jī)時(shí)間長,人工測(cè)試容易出現(xiàn)錯(cuò)誤,需求、測(cè)試或任務(wù)風(fēng)險(xiǎn)低、穩(wěn)定等情況,測(cè)試用例應(yīng)該自動(dòng)化。
不過要注意,在測(cè)試用例自動(dòng)化過程中,單元測(cè)試應(yīng)該放在首位,其次是集成測(cè)試和功能測(cè)試。因?yàn)閱卧獪y(cè)試是最快的測(cè)試方法,更容易調(diào)試,修復(fù)成本很低,因此把單元測(cè)試作為自動(dòng)化的最高優(yōu)先級(jí)。而集成測(cè)試主要測(cè)試接口或模塊,能夠提供反饋,確保一切都按預(yù)期工作,放在第二位。
(3)回歸測(cè)試自動(dòng)化
回歸測(cè)試意味著軟件測(cè)試可以驗(yàn)證最近的更改——無論是程序還是代碼——沒有對(duì)軟件的現(xiàn)有功能產(chǎn)生負(fù)面影響。利用測(cè)試自動(dòng)化和持續(xù)測(cè)試工具來完成回歸測(cè)試,可以讓團(tuán)隊(duì)專注于新功能以及創(chuàng)新。在流程的早期揭示缺陷,可以降低風(fēng)險(xiǎn)以及開發(fā)人員修復(fù)它們所需的時(shí)間。
很多的回歸測(cè)試自動(dòng)化工具都可以跨 Web、移動(dòng)、桌面、大型機(jī)、ERP、相關(guān)模擬器等進(jìn)行測(cè)試,可以輕松添加或更新測(cè)試用例,快速運(yùn)行端到端回歸測(cè)試,縮短測(cè)試周期、滿足最后期限和減少所需資源,同時(shí)提高軟件可靠性,為公司帶來巨大優(yōu)勢(shì)。
(4)做好測(cè)試數(shù)據(jù)管理
測(cè)試數(shù)據(jù)很重要,因?yàn)檎麄€(gè)測(cè)試套件(包括手動(dòng)測(cè)試和自動(dòng)化測(cè)試)中的各種測(cè)試都需要測(cè)試數(shù)據(jù)。良好的測(cè)試數(shù)據(jù)可讓驗(yàn)證常見或高價(jià)值用戶轉(zhuǎn)化歷程、測(cè)試邊緣用例、重現(xiàn)缺陷以及模擬錯(cuò)誤。由于測(cè)試自動(dòng)化可以更快、更頻繁地執(zhí)行測(cè)試,因此團(tuán)隊(duì)還必須擁有工具來管理所創(chuàng)建的大量數(shù)據(jù)。
工具或平臺(tái)必不可少
利用特定的工具實(shí)現(xiàn)測(cè)試自動(dòng)化是必不可少的。這個(gè)工具可以是一個(gè)簡(jiǎn)單的測(cè)試框架,比如 Jest,也可以是一個(gè)特殊的軟件框架,比如 Selenium,甚至可以是一整個(gè)平臺(tái)——它可以幫助你完成你所想要做的一切。
一個(gè)好的工具會(huì)告訴你,自動(dòng)化測(cè)試并沒有那么難。近期,飛算發(fā)布了飛算SoFlu全自動(dòng)測(cè)試平臺(tái),該平臺(tái)有三大功能特性:
1.測(cè)試生命周期管理。它提供測(cè)試用例管理、測(cè)試用例評(píng)審、測(cè)試計(jì)劃跟蹤和測(cè)試報(bào)告生成等測(cè)試生命周期管理相關(guān)功能;
2.測(cè)試數(shù)據(jù)管理。全自動(dòng)測(cè)試平臺(tái)基于測(cè)試腳本與測(cè)試數(shù)據(jù)分離的思路,方便研發(fā)測(cè)試協(xié)同、方便自動(dòng)化測(cè)試中的測(cè)試數(shù)據(jù)使用,支持 UI、接口等自動(dòng)化工具快速可重復(fù)地使用;
3.精準(zhǔn)回歸測(cè)試。它在項(xiàng)目測(cè)試時(shí),可以自動(dòng)識(shí)別所有變動(dòng)的接口,自動(dòng)查找接口關(guān)聯(lián)的所有測(cè)試用例,進(jìn)行精準(zhǔn)回歸測(cè)試。
曾經(jīng),飛算云智總裁陳定瑋對(duì)測(cè)試耗時(shí)長深有感觸:“以前,我們公司流傳過一句話:開發(fā)多久,測(cè)試就要多久。如果開發(fā)三個(gè)月,那么測(cè)試就要三個(gè)月。這樣,半年就過去了。因此,整個(gè)成本非常高。并且產(chǎn)品、開發(fā)和測(cè)試人員的思維模式和視角不同,溝通難度不小,最終搞得大家怨聲載道。"
現(xiàn)在,他帶領(lǐng)團(tuán)隊(duì)開發(fā)的自動(dòng)化測(cè)試平臺(tái)幾乎解決了測(cè)試中遇到的大部分問題。
比如,在進(jìn)行性能則試前,必須先做好性能測(cè)試的搭建工作,一般包括硬件環(huán)境、軟件環(huán)境及網(wǎng)絡(luò)環(huán)境,這往往需要配置和開發(fā)工程師來協(xié)助完成。而在飛算SoFlu全自動(dòng)測(cè)試平臺(tái),僅需要一個(gè)測(cè)試人員,即使是一個(gè)新手,也完全可以搞定,因?yàn)橘Y源池具備支持虛擬機(jī)模式,測(cè)試人員可以自己搭建虛擬機(jī)環(huán)境,在平臺(tái)上通過選擇虛擬機(jī)的類型來對(duì)接口進(jìn)行性能測(cè)試。
測(cè)試是軟件開發(fā)生命周期的重要組成部分,測(cè)試“托后腿”折射出來的,可能是整個(gè)開發(fā)過程的管理問題。
飛算也看到了這一點(diǎn),因此,不僅開發(fā)了全自動(dòng)測(cè)試平臺(tái),還推出了全自動(dòng)開發(fā)平臺(tái),未來還將推出全自動(dòng)運(yùn)維平臺(tái),它們將共同組成飛算 SoFlu 全自動(dòng)軟件工程平臺(tái)。通過飛算 SoFlu ,可以管理從需求、研發(fā)、測(cè)試、部署、上線到運(yùn)維的整個(gè)軟件生命周期,真正實(shí)現(xiàn)了軟件工程開發(fā)、測(cè)試、運(yùn)維全流程自動(dòng)化。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )