華為云計算 云知識 “軟件質(zhì)量”,構(gòu)筑企業(yè)值得信賴的護城河
“軟件質(zhì)量”,構(gòu)筑企業(yè)值得信賴的護城河

【摘要】 引子質(zhì)量是產(chǎn)品的生命線,質(zhì)量問題不僅會導致企業(yè)財產(chǎn)損失,還可能引發(fā)業(yè)務中斷、客戶滿意度下降、企業(yè)品牌聲譽受損等負面影響。如何在軟件開發(fā)過程中全方位構(gòu)建產(chǎn)品質(zhì)量防護盾,是各行業(yè)保障產(chǎn)品高質(zhì)量的重要課題。 如何保障軟件質(zhì)量?保障高質(zhì)量的產(chǎn)品研發(fā),需要在軟件開發(fā)生命周期中實現(xiàn)有效的質(zhì)量管理與控制,讓缺陷在開發(fā)、測試、部署各階段無處遁形。從華為公司自身實踐來看,需要從代碼質(zhì)量、CI/CD流程質(zhì)量、持...

  • 引子

質(zhì)量是產(chǎn)品的生命線,質(zhì)量問題不僅會導致企業(yè)財產(chǎn)損失,還可能引發(fā)業(yè)務中斷、客戶滿意度下降、企業(yè)品牌聲譽受損等負面影響。如何在軟件開發(fā)過程中全方位構(gòu)建產(chǎn)品質(zhì)量防護盾,是各行業(yè)保障產(chǎn)品高質(zhì)量的重要課題。

  • 如何保障軟件質(zhì)量?

保障高質(zhì)量的產(chǎn)品研發(fā),需要在軟件開發(fā)生命周期中實現(xiàn)有效的質(zhì)量管理與控制,讓缺陷在開發(fā)、測試、部署各階段無處遁形。從華為公司自身實踐來看,需要從代碼質(zhì)量、CI/CD流程質(zhì)量、持續(xù)反饋與改進三個方面入手,構(gòu)建全流程質(zhì)量管理能力。

  • 代碼質(zhì)量如何保障?

首先,要對代碼進行檢視。《代碼大全》的研究結(jié)果顯示,各種研發(fā)活動中,代碼檢視的代碼檢測率高達60%,可以有效提前發(fā)現(xiàn)顯而易見的錯誤隨代碼上庫,提升代碼質(zhì)量,并且實現(xiàn)高級開發(fā)人員的知識傳遞,增強團隊意識。

其次,要建立代碼上庫流程。在軟件生命周期中,缺陷發(fā)現(xiàn)越早、修復越早,缺陷的影響和修復代價就越小。數(shù)據(jù)顯示,產(chǎn)品發(fā)布后每個缺陷的平均修復成本是驗證階段的6倍以上。為提前攔截產(chǎn)品缺陷,避免有缺陷的代碼合入主干,同時保證代碼符合不同企業(yè)的流程規(guī)范,靈活有效的門禁控制是必不可少的。

然后,作為門禁看護的重要步驟,要進行代碼檢查。軟件開發(fā)事前預防的成本遠低于事后補救。如果程序員在代碼編寫階段能夠及時修正軟件缺陷和安全隱患,避免缺陷流向后端,就可以有效提升產(chǎn)品質(zhì)量。

  1. 提前發(fā)現(xiàn)問題:代碼檢查能發(fā)現(xiàn)邏輯、語法錯誤和性能問題,預防系統(tǒng)崩潰。
  2. 提高代碼質(zhì)量與安全性:確保代碼符合標準,通過 自動化 檢查工具快速定位并修復問題,增強系統(tǒng)穩(wěn)定性和安全性。
  3. 持續(xù)集成與預防:作為CI/CD流程的一部分,代碼檢查有助于快速響應修復,同時積累經(jīng)驗預防未來問題,提升軟件長期穩(wěn)定性。

最后,要進行單元測試。單元測試是軟件開發(fā)過程中的一種重要測試方法,可以針對程序模塊進行測試從而檢驗其正確性。。

  1. 確保功能正確:單元測試驗證代碼單元功能,確保預期輸出,提高代碼質(zhì)量。
  2. 早期發(fā)現(xiàn)與自動化:早期發(fā)現(xiàn)問題,自動化回歸測試,支持持續(xù)集成,減少系統(tǒng)級問題。
  3. 促進維護與重構(gòu):增強代碼可維護性,支持重構(gòu),提高開發(fā)效率,提升用戶信心。
  • CI/CD流程質(zhì)量如何保障?

首先,要建立分層的質(zhì)量門禁措施。Policy As Code(策略即代碼)是一種通過代碼來定義和管理自動化策略的方法,基于代碼的自動化而不是依賴手動流程來管理策略,允許團隊更快地交付并減少人為配置錯誤的可能性,是一種提高軟件交付質(zhì)量的最佳實踐。      

其次,針對開源軟件要進行風險治理。據(jù)調(diào)查,全球超過90%的企業(yè)在其軟件開發(fā)過程中使用了開源軟件,開源軟件的風險直接影響到產(chǎn)品軟件。開源軟件使用面臨3大威脅:網(wǎng)絡(luò)安全,開源軟件供應鏈面臨持續(xù)漏洞/惡意代碼攻擊風險,過去三年針對軟件供應鏈的攻擊平均年增長高達742%;供應安全,部分場景下無法繼續(xù)參與或獲取開源軟件;合法合規(guī),違反開源License會引發(fā)相應法律糾紛或訴訟。除了使用軟件成分分析工具對軟件進行掃描,識別使用的開源軟件,進行風險治理,從前端開源軟件引入階段進行開源管控可以更有效的進行開源風險管理。同時要對開源軟件進行 漏洞掃描 。軟件漏洞不僅會帶來嚴重的安全隱患,還會給企業(yè)和用戶造成巨大的損失。

最后,通過灰度發(fā)布,企業(yè)可以在保持發(fā)布效率的同時降低潛在的負面影響。灰度發(fā)布模式包括藍綠發(fā)布、金絲雀發(fā)布、滾升發(fā)布等。同時整個發(fā)布過程可視化,通過發(fā)布單實時觀測微服務的健康情況,異常情況可一鍵回滾至舊版本;從而全方位保證發(fā)布的質(zhì)量和安全。

  • 如何通過測試持續(xù)改進軟件質(zhì)量?

首先,通過啟發(fā)式測試策略與設(shè)計,生成高質(zhì)量用例。及時識別并修正軟件中的缺陷至關(guān)重要,因為這些缺陷如果在產(chǎn)品推向市場后才被察覺,其修復成本將顯著上升。統(tǒng)計數(shù)據(jù)表明,修復市場發(fā)布后發(fā)現(xiàn)的缺陷的成本是產(chǎn)品測試階段的六倍。這不僅會加大企業(yè)的財務壓力,還可能損害產(chǎn)品形象和客戶滿意度。因此,增強測試的全面性,確保在產(chǎn)品發(fā)布前捕捉到所有潛在缺陷,是企業(yè)必須重點關(guān)注的戰(zhàn)略問題。

其次,第一時間攔截現(xiàn)網(wǎng)問題,實時看護運行態(tài)質(zhì)量。功能測試是質(zhì)量保證中的重要環(huán)節(jié),主要目的是驗證軟件的各項功能是否按設(shè)計要求正常運行。在功能測試的范疇內(nèi),冒煙測試是一種快速檢查關(guān)鍵功能是否正常工作的方法,通常用于盡早發(fā)現(xiàn)可能影響主要功能的嚴重缺陷,保障測試環(huán)境與現(xiàn)網(wǎng)環(huán)境部署的質(zhì)量。

然后,全面質(zhì)量度量與評估,讓質(zhì)量管理不開盲盒。科學的質(zhì)量管理離不開成熟的測試質(zhì)量評估模型和規(guī)范,讓產(chǎn)品質(zhì)量可視化、可度量,“讓質(zhì)量暴露在陽光下”,達成高質(zhì)量的目標。

最后,持續(xù)集成自動化測試,保障高質(zhì)量部署。出色的自動化測試可以提高測試效率、覆蓋率、降低成本,提供快速反饋,幫助開發(fā)團隊了解代碼更改的影響,快速定位問題并修復。自動化測試在持續(xù)集成環(huán)境中也是不可或缺的一部分,它可以在代碼每次提交后自動運行,確保新代碼不引入新的錯誤。

  • 華為云軟件質(zhì)量保障方案

華為云軟件開發(fā)生產(chǎn)線CodeArts是華為30年研發(fā)實踐的沉淀,其端到端質(zhì)量保障的流程與方法一直在華為研發(fā)團隊中打磨、精進,深入軟件開發(fā)各環(huán)節(jié),助力提升代碼質(zhì)量、DevOps流程質(zhì)量、產(chǎn)品質(zhì)量,為企業(yè)打造可持續(xù)改進的、保障高質(zhì)量產(chǎn)品的平臺,助力企業(yè)效率提升,業(yè)務無憂。以下幾個重點產(chǎn)品在軟件生命周期質(zhì)量管理中起到重要作用。

  • 代碼檢視

華為云CodeArts Repo提供多維度的代碼檢視能力,以合并請求為維度,提供分散式協(xié)同檢視,配合門禁系統(tǒng)保證檢視意見的閉環(huán),從局部層面確保在每次代碼入庫前的質(zhì)量;以倉庫為維度,提供團隊集中檢視,從全局層面對入庫后的代碼進行檢視,持續(xù)保證代碼質(zhì)量。其檢視功能支持多種角色協(xié)同配合,保證檢視意見能夠在不同的角色間靈活的流轉(zhuǎn),并且通過權(quán)限控制,確保檢視意見可跟蹤,有效閉環(huán)。

  • 代碼檢查

華為云CodeArts Check為用戶提供深度代碼檢查服務。從開發(fā)編碼、代碼合入、版本發(fā)布等多個研發(fā)階段提供代碼掃描服務,及時發(fā)現(xiàn)研發(fā)過程中出現(xiàn)的代碼問題或潛在風險。不僅提供了開箱即用的DevOps解決方案,還提供了友好的API接口,為CI/CD提供快速接入能力。

  • 測試計劃

華為云CodeArts TestPlan提供需求覆蓋率、需求通過率、用例執(zhí)行率、遺留缺陷指數(shù)等10多個質(zhì)量度量指標,支持按照功能、性能、可靠性等維度評估質(zhì)量,還支持按照需求、缺陷等維度評估,測試評估從天級縮短到小時級。同時還提供了分支和測試計劃兩級測試質(zhì)量看板和實時質(zhì)量報告,全方位、可視化呈現(xiàn)研發(fā)測試過程和結(jié)果數(shù)據(jù),支持產(chǎn)品研發(fā)階段隨時評估質(zhì)量,方便研發(fā)團隊及時、高效、準確的掌握產(chǎn)品質(zhì)量現(xiàn)狀,實時掌控產(chǎn)品的研發(fā)進度和風險。

  • 灰度發(fā)布

華為云灰度發(fā)布提供模板化管理,可將發(fā)布流程預置為模板,提升發(fā)布編排效率,規(guī)范發(fā)布流程;支持多場景灰度發(fā)布模式,包括藍綠發(fā)布、金絲雀發(fā)布、滾升發(fā)布等多種灰度策略編排。提供發(fā)布流程控制,將一次發(fā)布任務分解為多個步驟,發(fā)布與測試同步,通過監(jiān)控浸泡進行步驟流轉(zhuǎn),降低發(fā)布風險。同時整個發(fā)布過程可視化,通過發(fā)布單實時觀測微服務的健康情況,異常情況可一鍵回滾至舊版本,從而全方位保證發(fā)布的質(zhì)量和安全。

從數(shù)字世界邁向智能世界,軟件已經(jīng)成為企業(yè)越來越重要的資產(chǎn)。守護軟件質(zhì)量,也就是守護企業(yè)長期構(gòu)筑“值得信賴”的品牌。“軟件質(zhì)量”絕非一時興起,而應該在企業(yè)中形成“軟件質(zhì)量”文化,并將質(zhì)量保障相關(guān)的研發(fā)工具融入到企業(yè)軟件生產(chǎn)過程中,使其每時每刻發(fā)揮作用,才能真正將“軟件質(zhì)量”落地。