<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    2020年軟件測試趨勢報道:徹底實現持續測試(上)

    X0_0X2020-11-24 14:35:55

    看到國內外不少機構在總結:“2020年最好的持續測試工具”,比如:

    https://www.softwaretestinghelp.com/contin...
    https://www.katalon.com/resources-center/b...

    還有的機構或公司試圖給出“什么是持續測試?”的定義,比如:

    https://www.guru99.com/continuous-testing....
    https://www.tricentis.com/products/what-is...

    這說明,隨著敏捷開發和devops的推廣,持續測試這個概念確實越來越火。但同時也發現大家對于持續測試的理解并不一致,列舉的持續測試工具也五花八門。因此覺得有必要講一講“持續測試”這一2020年重要趨勢。

    什么是持續測試?

    持續測試的概念有廣義和狹義兩種理解。廣義上來說,持續交付是敏捷開發、DevOps的目標,為了實現這一目標,軟件測試就要盡早測、按需測、頻繁測,這體現的是軟件測試在敏捷和DevOps中采取的測試策略。持續測試就是從產品發布計劃開始,直到交付、運維,測試融于其中、并與開發形影不離,隨時暴露出產品的質量風險,隨時了解產品質量狀態,從而滿足持續交付對測試、質量管理所提出的新要求。從這個角度上來說,敏捷、DevOps中的一切測試活動都可以算成是持續測試,既包括測試左移,也包括測試右移;既包括持續集成中的測試活動,也包括持續集成之后、上線部署前的測試活動;既包括測試分析和設計,也包括測試執行和結果呈現/報告。


    圖1 敏捷、DevOps的目標:持續交付

    狹義的持續測試指的是一次軟件迭代開發中的主要測試活動,測試之所以會成為持續交付的瓶頸,就是因為沒能做到持續測試。設計評審、單元測試、用戶故事實現的驗證、集成測試等,也包含持續的新功能測試和持續的回歸測試,以及性能測試、安全性測試、兼容性測試等針對軟件質量屬性的專項測試,如圖2所示。


    圖2 Scrum 模式下的敏捷測試流程

    持續測試不等同于自動化測試,也包括手工測試,比如每次迭代中的新功能的測試采用手工(探索式測試)測試更快,因為人更靈活,更智能。再比如人工的需求評審、設計評審和代碼評審(Code Review)也必不可少,這些測試左移中的測試活動幫助團隊在早期預防缺陷,讓隨后的研發活動更順利。采用自動化的方式盡量提高回歸測試的覆蓋率也非常必要,以手工測試為主肯定不可持續,要么為了趕進度,測試不充分,漏測的缺陷會越來越多,產品質量越來越差,團隊會被技術債慢慢拖垮,越做越慢。要么為了測試充分,就需要大量時間,交付速度會受影響。兩種情況都會讓測試成為敏捷開發的瓶頸。采用自動化回歸測試與手工探索式測試相結合的方式,兩種測試都持續進行,才能達到質效合一。

    持續測試不等同于全面測試,即使自動化測試達到很高的覆蓋率,要想在每一個發布的版本上進行全面測試,也是件不可能的事情,首先是軟件測試無法窮盡每條業務路徑,其次也沒有必要,要想做得既快又好,不僅要做加法:盡可能提高自動化測試覆蓋率,讓測試左移,盡可能提高單元測試、API測試的覆蓋率,更要做減法,擁抱基于風險的測試策略,精準測試就是一個好例子,基于對代碼變更的分析和其它信息,選擇正確的測試范圍,既不多測,也不少測。

    持續測試不等同于持續測試工具化,持續測試需要優秀的測試工具鏈的支持,這個我們稍后會講,但持續測試不能只靠工具來實現,更重要的是如何從道、法、術、器各個層面讓持續交付變得無障礙。比如開發和測試的徹底融合,讓溝通協作變得無障礙;比如奧地利的軟件測試公司Tricentis提出的基于業務風險的測試分析方法,對產品需求根據業務風險進行量化,排序;再比如,我們可以運用各種測試設計方法以更少的測試用例覆蓋更多業務風險。

    持續測試是敏捷化、DevOps化的需要

    和持續集成、持續部署、持續運維一樣,持續測試同樣是保證企業面向敏捷和DevOps轉型成功的關鍵因素。敏捷開發和DevOps的目標是實現持續交付,而只有實現持續測試才可能實現持續交付。敏捷開發中的一切測試活動都屬于持續測試,甚至可以說,敏捷測試就是持續測試。

    在持續交付流水線中,相比持續集成、持續部署等,持續測試的建設相對落后,這也是為什么大家認為軟件測試是影響持續交付主要瓶頸。持續測試作為一個主題在國內被討論的還不多,但是在國外已經成為促進敏捷和DevOps轉型的焦點之一。展望軟件測試的未來,持續測試必定是未來幾年里最具確定性的趨勢之一。

    要說起來,持續測試也不是一個新的概念,只是目前所能實現的持續測試和理想中的持續測試還有一定差距,僅僅是測試自動化一項在實踐中就碰到很多問題,很多時候想快也快不起來,想連續也連續不起來,很多節點還需要靠手工完成,以便接續上后面的任務。因此,大家更加期待在不久的將來能夠實現真正的、徹底的持續測試。

    持續測試工具鏈

    持續測試工具鏈的作用是支持測試過程能夠平滑有序的進行,不僅支持各種類型的測試,而且針對對測試全過程的支持,充分體現測試的服務化,讓測試想測就測、有始有終,過程無障礙。

    持續測試對測試工具的需求包含三個層次:

    • 首先,測試工具可以支持各種類型(功能、性能、安全性…)的自動化測試。
    • 其次,從測試用例創建、測試執行到結果分析、測試報告生成,測試工具向著平臺化的方向發展,將自動化擴展到整個測試生命周期,并且提供功能、性能測試服務或提供與這類工具的集成,即持續測試平臺。
    • 第三,測試工具或平臺與DevOps工具鏈進行集成,這樣才能實現和持續構建、持續集成、持續部署融為一體的持續測試。

    這樣來說,持續測試工具包含的范圍很廣,只要符合這三個層次的任何一個都可以稱為持續測試工具。甚至DevOps工具鏈中和測試相關的工具/框架都可以算是持續測試工具。這也是為什么有人認為Jenkins、Jira、Docker這些工具也是DevOps的持續測試工具。

    用單一的工具/平臺支持所有的測試類型,全生命周期管理非常困難,我們應該關注的不是哪一個測試工具是持續測試工具,而是應該關注在持續測試工具鏈里有哪些優秀的測試工具。同時,測試工具本身也逐漸擴展到平臺化、DevOps化,這也是測試工具目前的趨勢。

    下面就來列舉一些測試工具中所包含的促進持續測試的趨勢和優秀實踐:

    先說說持續測試工具。API(接口測試)工具代替UI自動化測試工具成為焦點。對于有條件采用API或接口測試的產品和團隊,應該多開展接口測試,不僅覆蓋單個接口的測試,還覆蓋系統端到端的功能測試、性能測試。目前有的測試工具致力于針對API測試提供更完善的支持,為了完成API測試,我們常常需要使用Postman進行接口調試,使用WireMock等Mock工具來模擬接口響應數據,使用像Karate、Jmeter這類測試工具做接口自動化測試。這樣就需要維護不同的工具,而且工具之間維護數據一致性的工作量也比較大。

    這里介紹下API Fortress,這個工具(其實也是一個測試平臺,這里只介紹其對于API測試的支持)對于微服務架構的軟件系統提供了接口測試的持續測試解決方案。我們來看一下它提供了哪些功能,同時又怎樣解決了當前自動化測試的上述痛點:

    • 無代碼化的自動化測試,從Web UI界面點擊操作、規范文檔或錄制的流量中自動創建API功能測試的測試腳本。
    • 可以支持API的各種測試類型,包括單個API的功能測試,壓力測試,性能測試,以及API性能監控。
    • 在研發早期通過自帶的Mock功能隔離不穩定的API依賴對象對API進行測試。
    • 支持和多種CI/CD工具以及測試管理工具的集成,比如Jenkins、GitLab、axway(API管理工具)、Zephyr(測試用例管理工具)、Jira等。

    即使是UI自動化測試工具,很多UI測試工具也致力于提供模塊化、無代碼化的自動化測試,并且也開始把自身功能擴展到API測試。

    再說說持續測試平臺。測試管理平臺中有一些被定位為持續測試平臺,這里列舉兩個,

    • 一個是國內飛致云公司的開源持續測試平臺MeterSphere,覆蓋測試用例管理、測試計劃到測試執行、測試報告分析等;支持接口的自動化測試,兼容JMeter支持分布式性能測試。

    • 一個是Tricentis公司開發的持續測試平臺Tricentis Tosca。Tricentis 公司的測試自動化產品在Gartner 魔力四象限(Magic Quadrant)中處于“LEADERS”的位置,如圖3所示。


    圖3 測試自動化產品的Gartner 魔力四象限

    Tricentis Tosca支持以下功能:

    • 支持基于模型的UI和API自動化測試
    • 支持服務虛擬化:通過模擬第三方系統組件為自動化測試創造一個穩定的測試環境,并且覆蓋更多的異常測試場景
    • 支持基于風險的測試需求分析,這是這個平臺最具亮點之處。簡單來說,用戶可以在平臺界面上為每個產品需求(Epic、用戶故事)從兩個維度(用戶使用頻率和失效后的影響)進行評分,然后根據評分計算每個需求的風險權重和風險貢獻率。這會作為進一步進行測試用例設計,優化測試覆蓋率,按照風險權重確定測試優先級,以及評估測試結果進行軟件發布決策的基礎。

    接:2020年軟件測試趨勢報道:徹底實現持續測試(中)

    devops軟件測試計劃
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    看到國內外不少機構在總結:“2020年最好的持續測試工具”,比如: ...... 還有的機構或公司試圖給出“什么是持續測試?”的定義,比如: ....... 這說明,隨著敏捷開發和DevOps的推廣,持續測試這個概念確實越來越火...
    最近幾年隨著軟件供應鏈攻擊和數據安全事件的頻繁出現,企業面臨著重大的軟件供應鏈安全和數據泄露風險,這間接促使了越來越多的企業開始關注DevSecOps,并且期望借此來解決相關的安全風險。 在開始今天的分享之前,先簡單介紹一下DevSecOps的定義,這里主要采用援引于DoD(美國國防部)的一段定義,即DevSecOps實際上是一種旨在統一軟件開發、安全、運維運營的有組織的軟件工程文化和實踐。
    Munro補充說,企業應該調整心態,積極主動地為即將到來的法規做好準備。應該更好地跟蹤開源軟件2021年底爆發的Log4j安全危機在2022年持續了幾乎一整年,影響了全球數以萬計的組織。到2023年,防范此類威脅仍將是一個復雜的過程。網絡安全保險需求可能會繼續增加近年來,網絡安全保險已成為必需品,但保費卻有所增加。此外,組織還面臨著保險公司的更多審查,以確定風險領域。
    隨著科技的飛速發展,網絡空間的主權完整和安全也成為影響國際關系的重要因素,國家之間的競爭也在由物理空間逐漸轉向網絡空間,國內的網絡安全也面臨著越來越多的風險和挑戰。根據Gartner提供的數據表示,75%的安全攻擊是由軟件自身漏洞造成的,針對軟件漏洞的攻擊已成為黑客入侵的主要方式之一,而且攻擊者通過挖掘軟件代碼中的多個安全漏洞,形成攻擊鏈條的不法行為,對關系到國計民生的軟件系統帶來了重大安全隱患。
    人們還看到,一些安全主管因隱瞞數據泄露而被判入獄。他們還需要報告安全事件并制定應對計劃。Lehmann表示,企業開始加大力度跟蹤開源軟件,因為他們發現對他們使用的軟件的來源和質量進行未經驗證的信任會造成損害。Iqbal認為,一個良好的AppSec程序應該是軟件開發生命周期的一部分。2023年,防范這些威脅仍將是一個復雜的過程。
    上一篇文章“2020年軟件測試趨勢報道:徹底實現持續測試(中)”介紹了持續測試實現框架中的實現基礎(測試數據管理、DevOps工具鏈集成、服務虛擬化)和中間過程中的“基于風險的測試分析”。今天接著介紹實現框架中的其...
    “什么是持續測試”,它具有下列三個特點: 測試可以隨時開展起來,且具有連續性,平滑有序地打通整個測試過程,從測試左移到測試右移,從單元測試到端到端的系統測試,從靜態測試到動態測試,從測試分析到測試報告 測...
    2021年7月27日,由中國信息通信研究院(以下簡稱“中國信通院”)、中國通信標準化協會主辦的“2021年可信云大會”在京召開。中國信通院云計算與大數據研究所副所長栗蔚在會上正式發布《云計算白皮書》,這是中國信通院第七次發布云計算白皮書。白皮書對云計算產業發展的六大變革趨勢進行深入剖析。
    為適應敏捷開發模式,德邦證券于2018年開始構建DevOps體系,并配套研發了DevOps智能云平臺。
    近年來,隨著業務快速交付訴求的增加以及敏捷開發模式的流行,越來越多的企業都采用DevOps模式進行項目開發,DevOps越來越多地出現在各大商業銀行的重點工作中。2020年中國農業銀行建成了從需求、開發、測試到部署的端到端持續交付流水線,并通過了 DevOps 標準持續交付部分的3級評估。探索具有農行特色的DevOps建設之路,仍需在DevOps各個環節的不斷摸索與實踐,尤其在企業落地敏捷及Dev
    X0_0X
    暫無描述
      亚洲 欧美 自拍 唯美 另类