<code id="ebytu"><sup id="ebytu"><track id="ebytu"></track></sup></code>
    <td id="ebytu"><option id="ebytu"></option></td>
    <pre id="ebytu"><label id="ebytu"><menu id="ebytu"></menu></label></pre>
    <acronym id="ebytu"><label id="ebytu"><xmp id="ebytu"></xmp></label></acronym>
  1. <td id="ebytu"></td>

    <track id="ebytu"><ruby id="ebytu"></ruby></track>

            百度搜索關于無人值守的實踐與探索

            發表于:2022-12-15 09:41

            字體: | 上一篇 | 下一篇 | 我要投稿

             作者:劉道偉    來源:掘金

              導讀
              基于風險驅動的交付是百度實踐智能測試——感知智能階段非常重要的研究方向,基于風險驅動的交付,源于三個現狀:
              一、不是所有的項目都有風險,80%以上的項目無任何的關聯bug和線上問題。
              二、不是所有的測試任務都能夠揭錯,無效的質量行為(有bug發現的質量行為/所有質量行為)占比非常高。
              三、測試人員也有誤判的可能,漏測一直存在。
              通過以上三個現狀,可見如果能夠有方法逼近:測該測的項目、做該做的質量行為、評風險評得準,那么對測試效能和召回都有極大的幫助。
              接下來我們將持續刊登三篇文章,來揭秘百度實踐基于風險驅動的交付的冰山一角:
              1、百度搜索業務交付無人值守實踐與探索:從具體業務實踐的角度介紹風險評估在交付無人值守領域的關鍵作用。
              2、AI技術在基于風險測試模式轉型中的應用:從測試全過程的角度介紹各環節以風險思維+AI技術加持的各種應用場景。
              3、質量評估模型助力風險決策水平提升:從思路、方案和模型的角度介紹質量度模型的實現和挑戰。
              本文先介紹第一篇:百度搜索業務交付無人值守實踐與探索。
              01 引子
              提起交付無人值守概念,大部分人應該都比較陌生,出現下面這些疑問:
              什么是交付無人值守?
              怎么做到交付無人值守?
              交付無人值守能帶來哪些好處?
              本文就從以上幾方面入手,詳細介紹一下百度搜索業務在交付無人值守上一些探索及實踐。
              02 無人值守的源起
              在介紹無人值守之前,可以先了解下交付模式的發展歷程,如下圖所示,隨著工程能力的不斷發展,交付過程中的測試逐步從純手工測試變為半自動化測試或自動化測試。同時在互聯網行業敏捷開發模式持續發展,持續集成也隨之開展起來,通過將自動化測試工具集成到流水線中,質效工作逐步左移,大部分的需求研發人員可以通過流水線完成測試、上線工作。我們把這類研發人員不再需要通過測試人員手工測試,使用流水線即可完成全部測試過程的模式稱為研發自主測試,在搜索業務中,DevOps已成為最主要的交付模式,部分業務需求自主測試比例達到了90%以上。
              理想狀態下,既然大部分需求已實現自主測試,整個交付過程中應該是不需要耗費測試人員人力,但是理想很豐滿,現實卻很骨感。下圖是在自主測試模式下,測試人員的工作日常,可以看到在整體過程中測試人員工作量依然比較大:
              1)研發人員流水線執行測試失敗,需要測試人員進行問題排查、修復任務穩定性問題、定位是否與代碼有關、與研發反復溝通;
              2)研發流水線執行完成后,測試人員還需要確認研發的自主測試報告,分析需求風險,判斷是否可準入;
              3)交付過程中,存在很多環節需要研發人員和測試人員的溝通及手工操作,如需求的報備、拉分支、發布版本等工作。
              能否有技術手段,把交付過程中這些耗費測試人員大量人力的工作由機器替代呢?這就是我們今天要介紹的無人值守出發點。
              03 無人值守的方案
              在當前交付過程中,主要有以下幾個環節對測試人員的依賴程度較大:
              決策依賴人:CI代碼后需要執行哪些測試任務是靜態配置的或完全人工決策決定的。
              流程依賴人:交付各環節流程流轉依賴研發或測試人員,溝通交互成本高。
              結論依賴人:流水線無風險分析能力,測試任務無0/1化結論,準入準出的風險判斷依賴個人經驗。
              因此要實現無人值守必須要通過技術手段解決這三個依賴問題,一句話概括就是 “通過智能執行和風險評估能力,實現失敗智能運維,過程自動流轉,風險智能揭露,整個交付過程無需測試人員人工干預 ”。要真正實現這個目標,首先要滿足三個必要的條件:完備的測試能力、穩定的構建能力以及精準的評估能力,在這些能力的基礎上,建設數據采集、風險識別、風險控制、風險決策等智能化機制,最終實現全環節的無人化。
              由于篇幅所限,本文下面先重點介紹三個依賴的基礎能力。
              3.1 完備的測試能力
              完備的測試能力是無人值守的基礎,完備即要求流水線的測試任務是全面且有效的。
              怎么理解全面?不同類型業務對于測試任務的需求是不同的,全面就是具備對應的業務類型需要的各種測試任務,以百度的工程能力地圖服務端要求為例,全面的測試能力即要求下圖所示的服務端的各環節的測試任務都具備,可以根據業務的實際需求進行一些變化。
              全面測試能力的基礎上進一步是有效的,有很多情況下流水線雖然具備了某類型的測試任務,但是這個測試任務是不是能夠攔截問題還依賴測試任務的風險揭露能力,或者依賴測試人員對于測試報告的分析解讀能力。
              以搜索業務的DIFF測試類型為例,DIFF測試就是針對基線版本和測試版本,發送同樣的數據,對比返回的數據的字段的不同,判斷測試版本是否符合預期,已經是當前接口測試大數據測試中比較常見的方式。但是DIFF測試任務存在有效性問題,測試任務產出了diff的結果,可能是『噪音』導致的不穩定,可能是代碼變化的預期內的,也可能是bug導致的非預期結果,這個風險的判斷完全依賴研發和測試的人工分析。因此要提升DIFF測試有效性要解決噪音干擾的隨機diff問題和diff結果0/1分析問題,隨機diff的消除通過后端mock、環境數據一致性、隨機diff智能識別與過濾策略等機制解決,本文不詳細展開論述,重點介紹下diff測試的擬人化分析能力。
              擬人化分析就是把人工分析測試結果的能力轉化的自動化過程,因此要實現擬人化分析首先要清楚人在看到diff測試結果的時候是如何判斷的,經過實際調研發現,研發和測試人員在分析diff測試結果的時候,首先會看修改的代碼是否與產出的diff結果字段相關聯,如果是關聯比較大就認為是代碼導致的,接著會分析這些字段的業務影響面是否是需求內預期的以及影響面大小,如果是預期內的影響且風險可控即可認為通過,因此擬人化分析也從下面兩個方面進行判斷:
              1)根據白盒數據+模型+業務邏輯分析字段是否符合預期;
              2)根據結合業務的數據分析,評估字段影響面風險。
              這其中最重要的一點是如何將白盒數據與結果相關聯,目前主要采用了兩個手段,一個是比較常規的業務知識庫沉淀,通過對業務的知識的梳理及沉淀,將研發和測試的個人經驗轉化為可自動判斷的規則,如某些函數的變化可能引起某類的diff,優點是與業務關聯比較緊密,準確度更高,缺點是仍然過于依賴各個業務的人員的梳理,沉淀的效率較低,因此我們探索了第二個手段,通過任務執行的歷史數據,分析代碼變化與字段變化之間的關聯關系,離線的建設代碼及字段的關聯模型,在線階段通過模型判斷字段變化是否是代碼導致,再結合字段的業務風險判斷最終給出diff測試結論。
              通過上述一些手段,能夠大大的提升DIFF測試的有效性,也減少了DIFF測試的人工分析成本,類似的工作也在性能測試等其它場景開展,即通過技術手段提升測試任務的風險揭露能力和結果的分析能力,從而提升測試任務有效性。
              3.2 穩定的構建能力
              如果說完備的測試能力是實現無人值守的基礎,穩定的構建能力就是實現無人值守的保障。如果流水線構建頻繁失敗,就會導致在自主測試過程中,測試人員需要不停的進行失敗問題的定位,修復,以及與研發人員的反復的溝通,因此穩定的構建至關重要。如何建設的穩定的構建能力呢?其實可以用線上服務的穩定性建設作為參考,線上服務通常有研發、運維的各種穩定性及監控建設,穩定性能夠達到幾個9以上,但是線下服務的穩定性通常只有百分之八九十,那為什么不使用線上穩定性建設的標準來進行線下測試能力的建設呢,因此我們以線上運維的標準,全面提升了線下構建的穩定性,主要包含以下主要工作:
              基礎依賴治理:流水線穩定性離不開基礎依賴的穩定性,這些依賴包含機器、實例、測試代碼、測試數據、第三方服務等各個方面,因此要提升穩定性首先要治理這些依賴,如機器的統一管理,測試代碼和數據用線上代碼的標準管理,第三方服務的SLA保障及容災等措施。
              全環節的穩定性保障:全環節即預防、發現、定位、恢復、閉環各個環節均建設對應的穩定性能力,如在預防環節,針對構建需要的環境、數據等進行監控,如出現不可用或缺失等問題提前報警,避免測試任務構建時才發現導致失;定位環節規范錯誤碼,針對錯誤碼建設自動定位機制,如果定位問題能夠自動恢復即觸發自愈的策略自動觸發恢復手段,減少失敗的人為干預。
              構建數字化:通過對構建數據的數字化,實現構建的穩定性度量、刻畫、建議等工作。
              3.3 精準的評估能力
              有完備的測試能力和穩定的構建能力,交付的無人值守還有最后的環節需要解決:準入準出的風險如何判斷?傳統的流程上通常都是由人工評審測試報告的方式對風險進行把控,不僅耗費人力成本,而且判斷準確程度完全依賴個人的經驗,新人研發和測試同學經常會出現判斷錯誤導致漏測。如何實現自動的風險評估能力呢,我們采用了基于質量度模型及規則結合的方法建設評估能力,質量度模型就是將可能影響風險的數據都抽象為特征,通過人工標記的歷史數據訓練為模型,在準入準出階段通過調用質量度模型的結果給出風險得分,再結合基于業務的規則判斷進行綜合判斷風險,如果風險低則可以自動準入不再需要人工分析,如果風險為高,再引入人工。
              通常特征的包含交付過程中的各種數據如代碼白盒數據、研發人員畫像、研發過程數據、測試任務結果、覆蓋率等,如下圖所示通過特征的抽象、模型訓練、模型評估等過程最終實現精準的評估能力,評估能力的準確性依賴于質量度模型選取的特征豐富程度以及人工標記的數據的準確性。
              04 無人值守的收益
              通過測試能力的持續建設,搜索業務90%以上的需求都可通過研發自主測試完成,極大提升測試吞吐的能力。在自主測試的基礎上,通過上述的無人值守工作開展,需求無人值守比例已經達到40%以上,讓更多的測試人員的人力從日常的交付工作中釋放出來,投入到其它價值更高的工作中,也進一步降低了單需求的交付成本。
              本文內容不用于商業目的,如涉及知識產權問題,請權利人聯系51Testing小編(021-64471599-8017),我們將立即處理
            價值398元的測試課程免費贈送,填問卷領取吧!

            關注51Testing

            聯系我們

            快捷面板 站點地圖 聯系我們 廣告服務 關于我們 站長統計

            法律顧問:上海漕溪律師事務所 項棋律師
            版權所有 上海博為峰軟件技術股份有限公司 Copyright©51testing.com 2003-2022
            投訴及意見反饋:webmaster@51testing.com; 業務聯系:service@51testing.com 021-64471599-8017

            滬ICP備05003035號

            滬公網安備 31010102002173號

            亚洲春色校园小说_欧洲精品色在线观看视频_国产思思99RE99在线观看_天天躁日日躁狠狠躁日日躁

            <code id="ebytu"><sup id="ebytu"><track id="ebytu"></track></sup></code>
              <td id="ebytu"><option id="ebytu"></option></td>
              <pre id="ebytu"><label id="ebytu"><menu id="ebytu"></menu></label></pre>
              <acronym id="ebytu"><label id="ebytu"><xmp id="ebytu"></xmp></label></acronym>
            1. <td id="ebytu"></td>

              <track id="ebytu"><ruby id="ebytu"></ruby></track>