農林漁牧網

您現在的位置是:首頁 > 農業

測試阻礙交付,如何破解這一難題

2022-03-27由 砍柴網 發表于 農業

dev怎麼除錯程式

DevOps 的目標是以更快的方式交付軟體。如今,越來越多的企業正努力透過 DevOps 實踐提高生產力,加快釋出週期。然而在DevOps 實踐中,開發人員專注於功能建立,而業務領導者則專注於交付,測試的重要性常常被忽略。這就導致,雖然交付過程的其他方面得到了簡化和加速,測試卻成為了軟體交付的瓶頸。

軟體交付的最大阻礙

GitLab 曾經發起一項針對開發者和工程師的調查。調查發現,有 52% 的受訪者認為,與開發過程的其他部分相比,測試造成的延遲更多。

DevOps Review 也得出了相同的結論,63% 的受訪者表示,“測試”是導致軟體延遲交付的第一大因素。該調查主要針對實施 DevOps 企業的 IT 部門領導者。第二大阻礙軟體交付的因素是“計劃”,不過只有 32% 的受訪者如此認為,遠遠低於站隊“測試”的人群。

測試阻礙交付,如何破解這一難題

軟體生產過程中的主要障礙在哪裡?

為什麼測試是一個如此可怕的瓶頸? 測試諮詢公司 Tricentis 的創始人 Wolfgang Platz 經過調查後,總結了以下原因:

絕大多數測試(超過 80%)仍然是手動執行的——在大型企業中甚至更多。

正在構建、維護和執行的測試用例中,大約 67% 是多餘的,對工作沒有任何價值。

在具有重要測試自動化的企業中,測試人員將 17% 的時間用於處理誤報,另外 14% 的時間用於額外的維護任務。

超過一半的測試人員每週花費 5 到 15 個小時處理測試資料(資料的平均等待時間約為2 周)。

84% 的測試經常因測試環境訪問受限而延遲,測試環境的平均等待時間為32天。

從開始到結束——包括計劃、實施和測試,執行迴歸測試套件平均需要 16。5 天,但敏捷衝刺平均需要兩週時間。

現在,被測應用程式平均與 52 個相關係統互動——這意味著單個端到端事務可以跨越從微服務和 API 到各種移動和瀏覽器介面、打包應用程式(SAP、Salesforce、Oracle、ServiceNow…… )、自定義/遺留應用程式和大型機。

如何破解測試難題?

隨著軟體釋出變得越來越頻繁,採用傳統的測試方式已經跟不上開發節奏。企業應該怎麼做,才能確保,測試不是軟體交付的瓶頸,而是更快的催化劑。

Forrester 的一項研究發現,成功實踐 DevOps/敏捷開發的企業,有一些共同點,比如透過自動化端到端功能測試等方式將軟體測試轉變為持續測試。還有很關鍵的一點是,它們會對關鍵測試和 QA 流程,如測試用例設計、功能測試、測試資料管理等,進行高度自動化。

這些企業證實了,有效、連續、自動化的測試方式要遵循這幾大要點:

(1)儘早介入測試

測試或軟體 QA,一直以來都是軟體交付難題的最後一部分。在釋出週期結束時測試和發現錯誤是常態。但這帶來了問題,因為間隔了一段時間後,開發人員可能不記得問題出現的背景,修復這些缺陷、改變設計和重新開發功能會導致更多的時間花在重新測試和迴歸負載上,造成開發效率低下。因此,在軟體開發的的各個階段,越早進行測試,就能越早發現錯誤並且修復它們。測試帶來的反饋還可以幫助開發流程向前推進。

(2)測試用例自動化

在 PractiTest 和 Tea-Time with Testers 最近的一項調查中,軟體測試團隊發現,過去已經足夠好的手動流程已經跟不上交付步伐。儘管 85% 的受訪者表示他們的公司使用自動化,但只有 19% 的受訪者在超過 50% 的測試用例中使用自動化。

如果出現測試任務耗時、重複、停機時間長,人工測試容易出現錯誤,需求、測試或任務風險低、穩定等情況,測試用例應該自動化。

不過要注意,在測試用例自動化過程中,單元測試應該放在首位,其次是整合測試和功能測試。因為單元測試是最快的測試方法,更容易除錯,修復成本很低,因此把單元測試作為自動化的最高優先順序。而整合測試主要測試介面或模組,能夠提供反饋,確保一切都按預期工作,放在第二位。

(3)迴歸測試自動化

迴歸測試意味著軟體測試可以驗證最近的更改——無論是程式還是程式碼——沒有對軟體的現有功能產生負面影響。利用測試自動化和持續測試工具來完成迴歸測試,可以讓團隊專注於新功能以及創新。在流程的早期揭示缺陷,可以降低風險以及開發人員修復它們所需的時間。

很多的迴歸測試自動化工具都可以跨 Web、移動、桌面、大型機、ERP、相關模擬器等進行測試,可以輕鬆新增或更新測試用例,快速執行端到端迴歸測試,縮短測試周期、滿足最後期限和減少所需資源,同時提高軟體可靠性,為公司帶來巨大優勢。

(4)做好測試資料管理

測試資料很重要,因為整個測試套件(包括手動測試和自動化測試)中的各種測試都需要測試資料。良好的測試資料可讓驗證常見或高價值使用者轉化歷程、測試邊緣用例、重現缺陷以及模擬錯誤。由於測試自動化可以更快、更頻繁地執行測試,因此團隊還必須擁有工具來管理所建立的大量資料。

工具或平臺必不可少

利用特定的工具實現測試自動化是必不可少的。這個工具可以是一個簡單的測試框架,比如 Jest,也可以是一個特殊的軟體框架,比如 Selenium,甚至可以是一整個平臺——它可以幫助你完成你所想要做的一切。

一個好的工具會告訴你,自動化測試並沒有那麼難。近期,飛算髮布了飛算SoFlu全自動測試平臺,該平臺有三大功能特性:

1。測試生命週期管理。它提供測試用例管理、測試用例評審、測試計劃跟蹤和測試報告生成等測試生命週期管理相關功能;

2。測試資料管理。全自動測試平臺基於測試指令碼與測試資料分離的思路,方便研發測試協同、方便自動化測試中的測試資料使用,支援 UI、介面等自動化工具快速可重複地使用;

3。精準迴歸測試。它在專案測試時,可以自動識別所有變動的介面,自動查詢介面關聯的所有測試用例,進行精準迴歸測試。

曾經,飛算雲智總裁陳定瑋對測試耗時長深有感觸:“以前,我們公司流傳過一句話:開發多久,測試就要多久。如果開發三個月,那麼測試就要三個月。這樣,半年就過去了。因此,整個成本非常高。並且產品、開發和測試人員的思維模式和視角不同,溝通難度不小,最終搞得大家怨聲載道。“

現在,他帶領團隊開發的自動化測試平臺幾乎解決了測試中遇到的大部分問題。

比如,在進行效能則試前,必須先做好效能測試的搭建工作,一般包括硬體環境、軟體環境及網路環境,這往往需要配置和開發工程師來協助完成。而在飛算SoFlu全自動測試平臺,僅需要一個測試人員,即使是一個新手,也完全可以搞定,因為資源池具備支援虛擬機器模式,測試人員可以自己搭建虛擬機器環境,在平臺上透過選擇虛擬機器的型別來對介面進行效能測試。

測試是軟體開發生命週期的重要組成部分,測試“託後腿”折射出來的,可能是整個開發過程的管理問題。

飛算也看到了這一點,因此,不僅開發了全自動測試平臺,還推出了全自動開發平臺,未來還將推出全自動運維平臺,它們將共同組成飛算 SoFlu 全自動軟體工程平臺。透過飛算 SoFlu ,可以管理從需求、研發、測試、部署、上線到運維的整個軟體生命週期,真正實現了軟體工程開發、測試、運維全流程自動化。