<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          玩轉(zhuǎn)手工測(cè)試之客戶(hù)端產(chǎn)品手工測(cè)試提效實(shí)踐

          共 7273字,需瀏覽 15分鐘

           ·

          2021-09-27 13:40

          導(dǎo)讀:本期內(nèi)容主要介紹:1.如何利用標(biāo)準(zhǔn)化和智能化思路提升手工測(cè)試效能;2.從業(yè)務(wù)現(xiàn)狀與挑戰(zhàn)出發(fā),介紹利用智能化思路重建手工測(cè)試的邏輯,以及智能化手工測(cè)試的落地實(shí)踐。

          全文7272字,預(yù)計(jì)閱讀時(shí)間 16分鐘。


          一、手工測(cè)試的主要挑戰(zhàn)


          首先我們來(lái)看一下百度內(nèi)部大型app手工測(cè)試的主要挑戰(zhàn):

          1、超復(fù)雜業(yè)務(wù)場(chǎng)景:隨著各種應(yīng)用的層出不窮和軟件需求的不斷迭代,軟件系統(tǒng)內(nèi)部邏輯越來(lái)越復(fù)雜,而外部操作會(huì)越來(lái)越“傻瓜”;通過(guò)傳統(tǒng)的手工黑盒測(cè)試很難進(jìn)行所有的邏輯覆蓋,為此,需要極高的人力投入才能完成復(fù)雜邏輯的用例分析和設(shè)計(jì),即使如此應(yīng)用也會(huì)時(shí)刻攜帶隱形的巨大質(zhì)量風(fēng)險(xiǎn);


          2、高頻迭代發(fā)布訴求:百度內(nèi)部的產(chǎn)品呈現(xiàn)出高頻迭代的趨勢(shì),需求方希望盡早地看到結(jié)果,并給予及時(shí)反饋,所以技術(shù)團(tuán)隊(duì)需要用“小步快跑”的姿勢(shì)來(lái)做產(chǎn)品,盡早地交付新版本;因此很多大型APP逐步切換到單周/雙周發(fā)布模式,對(duì)于測(cè)試來(lái)說(shuō)沒(méi)有固定的回歸測(cè)試時(shí)間,要求開(kāi)發(fā)完成后立即完成測(cè)試;


          3、測(cè)試/開(kāi)發(fā)比例增高:手工測(cè)試都是人工進(jìn)行的,它依賴(lài)的是人的算力,而隨著人力比的增高,以及軟件正確性驗(yàn)證的工作量,主要是組合路徑膨脹的問(wèn)題,人的算力是遠(yuǎn)遠(yuǎn)跟不上的;低效的手工測(cè)試,成為影響業(yè)務(wù)迭代的主要瓶頸;


          超復(fù)雜的測(cè)試場(chǎng)景,高頻的發(fā)布需求,超高的測(cè)試/開(kāi)發(fā)比例,迫使傳統(tǒng)的手工測(cè)試模式必須向智能化轉(zhuǎn)型,來(lái)解決效能瓶頸問(wèn)題。


          對(duì)于手工測(cè)試來(lái)講主要需要解決三個(gè)部分的問(wèn)題:

          第一步:測(cè)試輸入,如何快速生成標(biāo)準(zhǔn)且全面的測(cè)試用例—產(chǎn)生結(jié)構(gòu)化的用例數(shù)據(jù);

          第二步:測(cè)試執(zhí)行,如何快速識(shí)別風(fēng)險(xiǎn)精準(zhǔn)的選擇用例執(zhí)行—利用數(shù)據(jù)+算法指導(dǎo)測(cè)試行為;

          第三步:測(cè)試分析,如何評(píng)估項(xiàng)目質(zhì)量提升召回能力—通過(guò)風(fēng)險(xiǎn)評(píng)估進(jìn)一步召回可能忽略的風(fēng)險(xiǎn)。


          二、手工測(cè)試模式重建


          基于以上問(wèn)題,我們需要使用標(biāo)準(zhǔn)化和智能化的思路來(lái)重建手工測(cè)試,從根本上引手工測(cè)試從經(jīng)驗(yàn)型方法向技術(shù)型方法的轉(zhuǎn)型,實(shí)現(xiàn)提質(zhì)增效的目的;

          1. 測(cè)試輸入:標(biāo)準(zhǔn)化 -- 用例管理平臺(tái),快速生成標(biāo)準(zhǔn)化用例數(shù)據(jù);
          2. 測(cè)試執(zhí)行:智能化 -- 精準(zhǔn)測(cè)試系統(tǒng),智能用例推薦;
          3. 測(cè)試分析:智能化 -- 質(zhì)量風(fēng)險(xiǎn)評(píng)估模型,自動(dòng)感知風(fēng)險(xiǎn);
          4. 循環(huán)轉(zhuǎn)化:數(shù)字化 -- 歷史數(shù)據(jù)積累,轉(zhuǎn)化新的推薦&評(píng)估策略;


          為了實(shí)現(xiàn)與測(cè)試場(chǎng)景的結(jié)合,需要從需求評(píng)審到項(xiàng)目發(fā)布,多個(gè)環(huán)節(jié)進(jìn)行了標(biāo)準(zhǔn)化,自動(dòng)化,智能化的交付模式改造:

          1. 需求評(píng)審后,可以通過(guò)需求卡片一鍵跳轉(zhuǎn)用例管理平臺(tái)進(jìn)行用例編寫(xiě),同時(shí)實(shí)現(xiàn)用例和需求的自動(dòng)關(guān)聯(lián);
          2. 編寫(xiě)完成用例后,用例管理平臺(tái)根據(jù)需求所屬的版本進(jìn)行自動(dòng)歸檔;
          3. 研發(fā)同學(xué)開(kāi)發(fā)完成提交代碼后,根據(jù)story自動(dòng)推薦自測(cè)用例;研發(fā)同學(xué)根據(jù)推薦的用例進(jìn)行自測(cè)簽章;
          4. 隨后進(jìn)入story測(cè)試階段,測(cè)試同學(xué)根據(jù)簽章情況進(jìn)行驗(yàn)收測(cè)試;
          5. 集成測(cè)試階段,根據(jù)代碼風(fēng)險(xiǎn)進(jìn)行回歸用例精準(zhǔn)推薦;
          6. 從story測(cè)試到版本發(fā)布,質(zhì)量度模型根據(jù)各個(gè)階段的風(fēng)險(xiǎn)引入和風(fēng)險(xiǎn)移除情況,自動(dòng)輸出評(píng)估報(bào)告,提前感知項(xiàng)目風(fēng)險(xiǎn)。



          以上介紹的流程主要涉及兩塊,基于腦圖的用例管理平臺(tái)和基于白盒技術(shù)的智能測(cè)試平臺(tái);下面會(huì)對(duì)這兩部分展開(kāi)詳細(xì)的介紹。


          三、基于腦圖的用例管理方案

          3.1 總體設(shè)計(jì)



          基于腦圖用例的管理平臺(tái)方案的設(shè)計(jì)思路,有三個(gè)關(guān)鍵詞,分別是標(biāo)準(zhǔn)化,自動(dòng)化和智能化;

          • 標(biāo)準(zhǔn)化:建立標(biāo)準(zhǔn)用例管理方案,對(duì)用例完整生命周期進(jìn)行標(biāo)準(zhǔn)管控;平臺(tái)支持用例模板,分支復(fù)用,協(xié)同編輯等能力也可以實(shí)現(xiàn)快速的產(chǎn)出標(biāo)準(zhǔn)化的用例數(shù)據(jù);
          • 自動(dòng)化:從需求建立到上線(xiàn),建設(shè)完整的大前端迭代流程自動(dòng)流轉(zhuǎn)機(jī)制;支持自動(dòng)提測(cè)判斷,智能簽章過(guò)濾,自動(dòng)模板填充,回歸用例生成,用例智能淘汰和狀態(tài)自動(dòng)流轉(zhuǎn)等多種能力實(shí)現(xiàn)全流程自動(dòng)運(yùn)轉(zhuǎn);
          • 智能化:讓數(shù)據(jù)、算法做流程和測(cè)試行為的決策,為手工測(cè)試提質(zhì)增效;智能化目前具備的能力包括,實(shí)時(shí)代碼染色,用例智能推薦,風(fēng)險(xiǎn)智能評(píng)估等;


          3.2 用例生命周期管理


          現(xiàn)在我們針對(duì)用例管理平臺(tái)的核心能力,用例生命周期管理做詳細(xì)的介紹;用例管理平臺(tái)制訂了用例生命周期自動(dòng)流轉(zhuǎn)的機(jī)制,實(shí)現(xiàn)case標(biāo)準(zhǔn)化輸出,流程自動(dòng)化判斷,測(cè)試智能化指導(dǎo)的管理模式。


          首先,制訂了從用例新建到用例淘汰全生命周期的用例流轉(zhuǎn)方案;通過(guò)用例模板,用例復(fù)用,協(xié)同編輯等能力可以快速完成標(biāo)準(zhǔn)化用例數(shù)據(jù)的新建;在用例執(zhí)行過(guò)程中,可以根據(jù)影響面進(jìn)行用例推薦,執(zhí)行用例使同步完成在線(xiàn)簽章,提測(cè)狀態(tài)的自動(dòng)更新;用例分析環(huán)節(jié),可以自動(dòng)根據(jù)用例的優(yōu)先級(jí),執(zhí)行記錄,揭錯(cuò)能力,覆蓋能力進(jìn)行用例的優(yōu)選和用例的淘汰處理。


          另外,刻畫(huà)了story用例集合,回歸用例集合,冒煙用例結(jié)合,執(zhí)行用例集合和淘汰用例集合的管理機(jī)制,實(shí)現(xiàn)用例生命周期和業(yè)務(wù)用例集合的對(duì)應(yīng),快速實(shí)現(xiàn)業(yè)務(wù)場(chǎng)景的適配落地。

          同時(shí),我們保障了腦圖用例平臺(tái)的編輯體驗(yàn)和本地xmind做到完全的一致;在不增加業(yè)務(wù)成本的情況下,實(shí)現(xiàn)線(xiàn)上化的用例管理能力。



          通過(guò)腦圖用例管理平臺(tái)的用例生命周期管理能力,沉淀用例模板高效復(fù)用,提升用例編寫(xiě)速度;生命周期自留轉(zhuǎn)能力,降低用例維護(hù)成本;產(chǎn)出標(biāo)準(zhǔn)化的用例數(shù)據(jù),為后續(xù)智能化決策提供數(shù)據(jù)支持。


          3.3 一站式流程管控


          用例管理平臺(tái)第二個(gè)核心能力就是實(shí)現(xiàn)了一站式的流程管控能力;以用例數(shù)據(jù)為起點(diǎn),規(guī)范項(xiàng)目流程,打通研發(fā)流程各個(gè)平臺(tái),實(shí)現(xiàn)了狀態(tài)自動(dòng)流轉(zhuǎn),數(shù)據(jù)自動(dòng)關(guān)聯(lián);以用例數(shù)據(jù)為支撐,輸出用例狀態(tài)及數(shù)據(jù)查詢(xún)的能力,協(xié)同各平臺(tái)進(jìn)行項(xiàng)目高效流轉(zhuǎn)。


          首先,實(shí)現(xiàn)了用例管理平臺(tái)和全流程平臺(tái)的打通,通過(guò)一系列的插件和腳本,實(shí)現(xiàn)了用例數(shù)據(jù)和全流程平臺(tái)數(shù)據(jù)的關(guān)聯(lián);有了全流程的關(guān)聯(lián)數(shù)據(jù),就可以進(jìn)行迭代狀態(tài)的自動(dòng)的判斷和流轉(zhuǎn);隨后,制訂了開(kāi)發(fā)提測(cè)到測(cè)試發(fā)版整個(gè)流程的自運(yùn)轉(zhuǎn)機(jī)制,從需求開(kāi)始,通過(guò)需求管理平臺(tái)可以一鍵跳轉(zhuǎn)用例管理平臺(tái)進(jìn)行用例設(shè)計(jì),同時(shí)實(shí)現(xiàn)了需求和用例的關(guān)聯(lián);研發(fā)進(jìn)行代碼提交后,可以實(shí)現(xiàn)代碼,用例和需求得關(guān)聯(lián),有了這部分?jǐn)?shù)據(jù)后持續(xù)集成流水線(xiàn)就可以實(shí)現(xiàn)為研發(fā)自動(dòng)推薦自測(cè)case;提測(cè)平臺(tái)根據(jù)簽章情況進(jìn)行提測(cè)判斷;成功后,聯(lián)調(diào)平臺(tái)根據(jù)聯(lián)調(diào)用例進(jìn)行聯(lián)調(diào)判斷,最后進(jìn)入自動(dòng)化測(cè)試平臺(tái)針對(duì)變更執(zhí)行自動(dòng)的測(cè)試活動(dòng),執(zhí)行通過(guò)后,發(fā)版平臺(tái)根據(jù)全流程得數(shù)據(jù)特征判斷是否可以發(fā)布;具體流程如下圖所示:



          腦圖用例管理平臺(tái)的全流程自流轉(zhuǎn)能力,解決了項(xiàng)目流程約束靠口頭溝通,手工操作,難協(xié)同,效果差的一系列問(wèn)題;實(shí)現(xiàn)了迭代過(guò)程透明可靠地運(yùn)轉(zhuǎn)。


          3.4 收益情況


          業(yè)務(wù)規(guī)模:

          • 使用規(guī)模:公司級(jí)首個(gè)腦圖用例管理平臺(tái),接入100+業(yè)務(wù)線(xiàn),服務(wù)用戶(hù)1w+
          • 數(shù)據(jù)規(guī)模:累計(jì)迭代用例100W+,簽章率60%;


          流程支撐:

          • 新手工測(cè)試交付模式:規(guī)范項(xiàng)目流程,狀態(tài)自動(dòng)流轉(zhuǎn);用例智能管理,降低維護(hù)成本;產(chǎn)出標(biāo)準(zhǔn)化數(shù)據(jù),賦能智能測(cè)試;
          • 全流程數(shù)據(jù)打通關(guān)聯(lián):從需求到上線(xiàn),實(shí)現(xiàn)10+環(huán)節(jié)全流程數(shù)據(jù)關(guān)聯(lián),提供40個(gè)緯度數(shù)據(jù)分析服務(wù);


          四、于白盒技術(shù)的智能測(cè)試方案


          手工測(cè)試模式重建中,第二個(gè)關(guān)鍵組成部分-基于白盒技術(shù)的智能測(cè)試方案;該方案的主要目標(biāo)為:用例智能推薦,質(zhì)量自動(dòng)評(píng)估,全流程客觀(guān)數(shù)據(jù)指導(dǎo)。


          整個(gè)智能測(cè)試系統(tǒng)的架構(gòu)如下:


          第一部分:利用前置編譯器,對(duì)被測(cè)試應(yīng)用程序源碼靜態(tài)結(jié)構(gòu)進(jìn)行分析,并實(shí)現(xiàn)源碼插樁;然后將處理好的應(yīng)用程序放入測(cè)試環(huán)境運(yùn)行,測(cè)試工程師通過(guò)手工或自動(dòng)化的方式執(zhí)行測(cè)試用例,精準(zhǔn)測(cè)試系統(tǒng)進(jìn)行高速智能運(yùn)算,實(shí)時(shí)生成用例和代碼的雙向回溯數(shù)據(jù);


          第二部分:根據(jù)代碼的變更情況,利用用例和代碼雙向回溯數(shù)據(jù),結(jié)合業(yè)務(wù)需求使用不同的推薦策略進(jìn)行回歸用例的智能選取,有效的提升測(cè)試效率;


          第三部分:通過(guò)全流程采集的數(shù)據(jù)分析,結(jié)合風(fēng)險(xiǎn)引入和風(fēng)險(xiǎn)移出等多緯度指標(biāo)數(shù)據(jù),綜合判斷項(xiàng)目風(fēng)險(xiǎn),給出合理的測(cè)試指導(dǎo),降低badcase的發(fā)生,提升召回能力;


          在整個(gè)過(guò)程中,用例和代碼的雙向回溯是一切分析的基礎(chǔ),但是隨著版本代碼的更新,回溯數(shù)據(jù)需要進(jìn)行及時(shí)的更新,由于手工更新會(huì)耗費(fèi)大量的人工成本,因此我們?cè)O(shè)計(jì)了代碼diff分析工具,自動(dòng)生成更新數(shù)據(jù),降低重復(fù)錄制的成本。


          結(jié)合以上分析,我們整個(gè)智能測(cè)試系統(tǒng)由四個(gè)關(guān)鍵工具組成:

          1. 用例錄制工具(生成用例和代碼的映射庫(kù))
          2. 用例推薦工具(根據(jù)代碼風(fēng)險(xiǎn)和業(yè)務(wù)需求進(jìn)行用例選擇)
          3. 質(zhì)量評(píng)估工具(提供質(zhì)量風(fēng)險(xiǎn)的評(píng)估能力,降低badcase)
          4. 代碼diff分析工具(通過(guò)代碼變更檢測(cè)能力,進(jìn)行錄制和推薦case的判斷);



          下面對(duì)四個(gè)工具進(jìn)行詳細(xì)的介紹:


          4.1 用例錄制工具


          用例錄制工具的主要功能是對(duì)APP進(jìn)行插樁,支持自動(dòng)或手工的形式進(jìn)行用例錄制并采集用例和代碼之間的映射關(guān)系;目前用例錄制工具支持java,kotlin,oc,swift,flutter等NA端主流語(yǔ)言;Android端采用jacoco離線(xiàn)插樁,iOS端采用IR插樁。


          用例錄制工具的操作流程如下:首先需要對(duì)APP進(jìn)行插樁,然后在前端頁(yè)面選擇需要錄制的測(cè)試集,選擇安裝了插樁包的測(cè)試設(shè)備,然后打開(kāi)錄制開(kāi)關(guān),執(zhí)行用例步驟后,關(guān)閉錄制開(kāi)關(guān);客戶(hù)端會(huì)自動(dòng)上報(bào)覆蓋率文件(ec,gcda)到服務(wù)端,服務(wù)端針對(duì)不同的端類(lèi)型采取不同的解析方案,最后解析為”包名-類(lèi)名-方法名-參數(shù)列表”的形式進(jìn)行存儲(chǔ);至此就實(shí)現(xiàn)了用例和代碼的雙向映射。



          用例和代碼的映射庫(kù)是整個(gè)精準(zhǔn)推薦的基礎(chǔ),數(shù)據(jù)的準(zhǔn)確性非常重要;因此我們建設(shè)了全面的錄制和校驗(yàn)規(guī)范,保障數(shù)據(jù)的精準(zhǔn)。


          4.2 用例推薦工具


          用例推薦工具,支持多種推薦策略,適配不用業(yè)務(wù)需求;支持用例權(quán)重排序,高風(fēng)險(xiǎn)用例高優(yōu)執(zhí)行;回歸case自動(dòng)分配,降低維護(hù)成本。

          用例推薦流程如下:流水線(xiàn)自動(dòng)獲取變更代碼信息,然后業(yè)務(wù)線(xiàn)根據(jù)不同的業(yè)務(wù)訴求,選擇推薦策略,平臺(tái)自動(dòng)進(jìn)行用例推薦;推薦的用例針對(duì)人員匹配度,人均執(zhí)行用例數(shù)進(jìn)行分配,每個(gè)同學(xué)會(huì)收到一個(gè)需要執(zhí)行回歸用例的列表。



          整套精準(zhǔn)推薦方案上線(xiàn)一年左右,為了適配不同的業(yè)務(wù)訴求持續(xù)降低推薦比,我們不斷推進(jìn)用例推薦策略的迭代;一共經(jīng)歷了三個(gè)時(shí)期,權(quán)重排序--相關(guān)性推薦—風(fēng)險(xiǎn)推薦;共計(jì)孵化了四個(gè)推薦策略:用例排序,用例優(yōu)選,最大覆蓋率和底層方法過(guò)濾。



          • 用例排序:根據(jù)用例的風(fēng)險(xiǎn)權(quán)重進(jìn)行用例排序,按照排序結(jié)果進(jìn)行用例執(zhí)行,將風(fēng)險(xiǎn)最高的用例前置;用例排序主要解決是bug總是在回歸測(cè)最后一刻發(fā)現(xiàn),導(dǎo)致修復(fù)bug的風(fēng)險(xiǎn)非常高的問(wèn)題,做到風(fēng)險(xiǎn)前置。
          • 用例優(yōu)選:從排序中優(yōu)選出和本次變更代碼相關(guān)的用例,減少用例執(zhí)行的重復(fù)度;用例優(yōu)選策略,解決每次發(fā)版都要對(duì)全部用例進(jìn)行回歸的問(wèn)題,實(shí)現(xiàn)只進(jìn)行修改代碼相關(guān)用例的測(cè)試,用例執(zhí)行更加精準(zhǔn)高效。
          • 最大覆蓋率:在優(yōu)選用例的基礎(chǔ)上,保障覆蓋率不降低的情況下,對(duì)用例進(jìn)行選擇,篩選掉完全被包含的用例;例如用例A完全包含用例B,那么使用最大覆蓋率策略,會(huì)把用例B進(jìn)行剔除,進(jìn)一步壓縮推薦比;最大覆蓋率策略保證最小用例集合完成最高的代碼覆蓋。
          • 底層方法過(guò)濾:在優(yōu)選用例的基礎(chǔ)上,通過(guò)用例變更和公共方法集合的包含關(guān)系進(jìn)行用例選擇;主要應(yīng)用場(chǎng)景舉例,例如一個(gè)底層網(wǎng)絡(luò)庫(kù)方法的修改,如果按照相關(guān)性推薦會(huì)推薦出幾乎所有的用例,但是使用底層方法推薦,只是對(duì)這個(gè)底層方向選擇高覆蓋高風(fēng)險(xiǎn)的幾個(gè)用例進(jìn)行覆蓋。


          業(yè)務(wù)線(xiàn)可以根據(jù)自己的版本節(jié)奏,對(duì)質(zhì)量的要求以及改動(dòng)范圍進(jìn)行不同推薦策略的選擇。

          目前正在進(jìn)行基于風(fēng)險(xiǎn)推薦的探索,針對(duì)代碼風(fēng)險(xiǎn)進(jìn)行用例推薦;期望能達(dá)到僅把存在bug的用例進(jìn)行推薦,將推薦比降到最低,提升測(cè)試效率。


          4.3 質(zhì)量風(fēng)險(xiǎn)評(píng)估工具


          為避免整個(gè)智能推薦過(guò)程中的badcase發(fā)生,我們孵化了質(zhì)量風(fēng)險(xiǎn)評(píng)估工具,主要是從風(fēng)險(xiǎn)引入和風(fēng)險(xiǎn)移除角度進(jìn)行評(píng)估;通過(guò)智能評(píng)估能力決策流程流轉(zhuǎn),實(shí)現(xiàn)測(cè)試人力自動(dòng)分配,bug前置召回,交付流程無(wú)人值守,保質(zhì)提效。


          通過(guò)智能風(fēng)險(xiǎn)評(píng)估工具的上線(xiàn),整套智能測(cè)試系統(tǒng)實(shí)現(xiàn):測(cè)試前,識(shí)別風(fēng)險(xiǎn)進(jìn)行測(cè)試活動(dòng)和測(cè)試用的推薦;測(cè)試中,定向風(fēng)險(xiǎn)執(zhí)行,前置攔截;測(cè)試后,決策風(fēng)險(xiǎn),給出流轉(zhuǎn)建議。


          目前大前端的質(zhì)量評(píng)估模型涵蓋需求準(zhǔn)入,需求準(zhǔn)出,集成準(zhǔn)入,集成準(zhǔn)出,版本準(zhǔn)出等過(guò)個(gè)全流程環(huán)節(jié)的評(píng)估能力。



          五、代碼diff分析工具


          代碼diff分析工具主要是通過(guò)代碼特征識(shí)別,工程特性分析以及函數(shù)調(diào)用鏈分析能力,對(duì)代碼變更進(jìn)行檢測(cè),針對(duì)不同級(jí)別的變更,執(zhí)行不同的推薦或錄制策略;以實(shí)現(xiàn)推薦用例更加精準(zhǔn),用例錄制成本降低的目的。


          代碼變更檢測(cè)會(huì)針對(duì)例如增加空行,更換函數(shù)位置,try-catch容錯(cuò),判空處理等場(chǎng)景不需要進(jìn)行用例推薦和錄制的函數(shù)進(jìn)行識(shí)別;在推薦和錄制場(chǎng)景剔除,節(jié)約執(zhí)行和錄制成本。



          5.1 “手自一體”的高效解決方案:


          百度內(nèi)部很多業(yè)務(wù)都積累了大量的自動(dòng)化測(cè)試用例集,而啟動(dòng)一次全量的自動(dòng)化測(cè)試觸發(fā),使之大比率通過(guò),非常困難。QA同學(xué)常常需要投入很高的成本,把大量精力花在自動(dòng)化用例失敗排查上面,然而有效發(fā)現(xiàn) BUG 的概率依然很低。在反復(fù)排查無(wú)果、心神俱疲的情況下,很多業(yè)務(wù)幾乎對(duì)自動(dòng)化產(chǎn)生絕望之心,視之為雞肋,用之無(wú)用,棄之可惜,十分頭疼。


          如何讓自動(dòng)化用例發(fā)揮它們應(yīng)有的效用,讓 QA 工作不那么沉重呢?針對(duì)這一問(wèn)題, 進(jìn)行了手工精準(zhǔn)測(cè)試與自動(dòng)化測(cè)試無(wú)縫對(duì)接;通過(guò)自動(dòng)化手段降低測(cè)試執(zhí)行成本和用例錄制成本。

          主要過(guò)程如下,新的版本發(fā)布前,根據(jù)代碼變更進(jìn)行回歸分析,精準(zhǔn)測(cè)試系統(tǒng)進(jìn)行用例推薦,推薦的用例如果被自動(dòng)化覆蓋,自動(dòng)觸發(fā)自動(dòng)化平臺(tái)執(zhí)行;執(zhí)行過(guò)程中自動(dòng)采集更新用例和代碼的映射關(guān)系。



          通過(guò)自動(dòng)化手段降低用例執(zhí)行成本的方案很簡(jiǎn)單也容易理解,這里就不在贅述了;降低錄制成本方面,我們制定了較為詳細(xì)的方案,下面給大家詳細(xì)介紹一下。


          精準(zhǔn)測(cè)試的準(zhǔn)確性依賴(lài)于用例和代碼映射關(guān)系的準(zhǔn)確,因此需要在版本有代碼更新后,要持續(xù)更新用例和代碼的映射關(guān)系;每個(gè)版本都進(jìn)行更新,整個(gè)錄制成本是非常高的,因此我們制訂了用例錄制成本降低的方案。


          刻畫(huà)了用例錄制漏斗,對(duì)于需要錄制的用例集合,先經(jīng)過(guò)代碼diff分析工具的調(diào)用鏈分析能力,自動(dòng)完成代碼調(diào)用關(guān)系的更新;自動(dòng)更新集合的用例經(jīng)過(guò)自動(dòng)化平臺(tái)的自動(dòng)化錄制;自動(dòng)錄制集合在通過(guò)代碼diff分析工具的代碼變更級(jí)別判斷,將無(wú)需錄制的用例剔除;最后剩余的用例流轉(zhuǎn)到手工錄制用例集合(大概30%),可以降低錄制成本。



          5.2 智能測(cè)試的收益情況



          • 迭代周期:兩個(gè)月1個(gè)版本兩周1個(gè)版本單周發(fā)布
          • 回歸人天:15人天7人天3人天1人天
          • 用例推薦比:用例推薦比大版本穩(wěn)定在30%,小版本穩(wěn)定在10%以?xún)?nèi)
          • 迭代模式的改變:客戶(hù)端精準(zhǔn)測(cè)試體系貫穿從需求評(píng)審到項(xiàng)目上線(xiàn)整個(gè)軟件測(cè)試生命周期及迭代的各個(gè)階段,取得質(zhì)效收益;根據(jù)不同的質(zhì)量要求,優(yōu)先級(jí)順序、技術(shù)實(shí)現(xiàn)手段等,實(shí)現(xiàn)智能靈活的技術(shù)方案推薦、交付和應(yīng)變機(jī)制;通過(guò)與自動(dòng)化平臺(tái)的結(jié)合,最大化發(fā)揮自動(dòng)化用例效力的同時(shí),落地了手自一體的高效方案,降低推薦比和錄制成本;


          六、落地實(shí)踐案例


          通過(guò)上面的介紹,對(duì)于使用用例管理平臺(tái)進(jìn)行用例標(biāo)準(zhǔn)化管理和項(xiàng)目流程規(guī)范化管控,以及智能測(cè)試的實(shí)現(xiàn)思路有一定的了解;但是這套東西是如何應(yīng)用于業(yè)務(wù),為業(yè)務(wù)帶來(lái)質(zhì)效提升的呢,下面我們通過(guò)兩個(gè)案例來(lái)詳細(xì)介紹。


          6.1 大型APP,單周發(fā)布實(shí)踐


          百度內(nèi)部越來(lái)越多的業(yè)務(wù),推行了單周發(fā)版迭代模式;主要變更點(diǎn)是由之前的每四周發(fā)一版改為每周都能發(fā)布。

          單周發(fā)布的模式下,對(duì)于RD最大的痛點(diǎn)是從串行開(kāi)發(fā)的模式,變?yōu)椴⑿虚_(kāi)發(fā)模式(班車(chē)模式);這也大大提高了開(kāi)發(fā)過(guò)程中的分支管理成本,如何規(guī)范化管理分支,降低分支沖突,把控代碼質(zhì)量是需要解決的重點(diǎn);因此需要對(duì)分支管理進(jìn)行規(guī)范和優(yōu)化以適配班車(chē)模式的開(kāi)展。



          單周發(fā)布模式下,對(duì)測(cè)試最大的痛點(diǎn)是原有測(cè)試模式,回歸測(cè)試全人力投入,無(wú)法投入下版本新功能測(cè)試,導(dǎo)致班車(chē)模式無(wú)法開(kāi)展;因此通過(guò)端中臺(tái)技術(shù)驅(qū)動(dòng)測(cè)試模式改進(jìn),從用例編寫(xiě),提測(cè)準(zhǔn)入,兼容測(cè)試,集成測(cè)試,回歸測(cè)試全流程提效。



          在整個(gè)迭代流程中,用例管理平臺(tái)在用例編寫(xiě)階段,通過(guò)用例模板復(fù)用,提供了快速的用例生成能力;在提測(cè)階段,提供了便捷的用例簽章和狀態(tài)自動(dòng)流轉(zhuǎn)能力;在集成測(cè)試階段,智能測(cè)試系統(tǒng)提供了用例推薦和自動(dòng)回歸能力;并且通過(guò)全流程數(shù)據(jù)的積累和分析,可以提供測(cè)試指導(dǎo)和風(fēng)險(xiǎn)評(píng)估能力


          6.2 SDK項(xiàng)目,測(cè)試效率提升


          SDK形態(tài)的業(yè)務(wù),每次升級(jí)都要集成到多個(gè)宿主重復(fù)進(jìn)行全部功能的回歸,工作量非常龐大,嚴(yán)重影響測(cè)試效率;例如SDK的核心功能有1000條用例,該SDK集成5個(gè)宿主,那么原有方案要回歸5000條用例;因此我們需要通過(guò)智能化的思路對(duì)SDK項(xiàng)目進(jìn)行改造,解決SDK的測(cè)試效能瓶頸問(wèn)題。


          SDK的智能測(cè)試解決方案是對(duì)功能變動(dòng)范圍進(jìn)行判斷,針對(duì)不同的變動(dòng),采用不同的處理邏輯;主要方案是通過(guò)宿主端能力抽象,進(jìn)行宿主能力的自動(dòng)化校驗(yàn),解決多宿主依賴(lài)的問(wèn)題;通過(guò)SDK精準(zhǔn)測(cè)試的落地,解決所有用例都進(jìn)行回歸的問(wèn)題;針對(duì)特殊場(chǎng)景的case進(jìn)行推薦策略升級(jí),防止badcase的發(fā)生。



          SDK的升級(jí)場(chǎng)景有主要有三類(lèi):

          1. SDK內(nèi)部功能改動(dòng):這類(lèi)場(chǎng)景主要是宿主沒(méi)有任何變動(dòng),僅對(duì)SDK進(jìn)行配置升級(jí);針對(duì)這種場(chǎng)景的升級(jí),可直接通過(guò)SDK精準(zhǔn)測(cè)試推薦能力,進(jìn)行回歸用例選擇,提升回歸效率;
          2. SDK+宿主都有改動(dòng):這類(lèi)是最普遍存在的場(chǎng)景,SDK和宿主都有改動(dòng);需要除了sdk用例的精準(zhǔn)推薦外,對(duì)于變動(dòng)的宿主還要進(jìn)行端能力的自動(dòng)校驗(yàn);提升回歸效率的同時(shí),保障召回效果;
          3. 宿主內(nèi)部功能變動(dòng):這類(lèi)場(chǎng)景是SDK無(wú)新功能,單宿主有業(yè)務(wù)升級(jí);主要進(jìn)行宿主能力的自動(dòng)檢驗(yàn)回歸即可;


          七、總結(jié)


          回顧一下,這篇文章從手工測(cè)試的痛點(diǎn)問(wèn)題出發(fā),闡述了手工測(cè)試模式重建的思路及方案;并對(duì)該方案中兩個(gè)重點(diǎn)能力基于腦圖的用例管理平臺(tái)和基于白盒技術(shù)的智能測(cè)試中臺(tái)展開(kāi)詳細(xì)的介紹;最后使用兩個(gè)案例解釋了在不同業(yè)務(wù)場(chǎng)景下的落地過(guò)程;當(dāng)前該套方案已應(yīng)用于百度各大業(yè)務(wù)線(xiàn)的迭代流程中,根據(jù)不同的質(zhì)量要求,優(yōu)先級(jí)順序,技術(shù)實(shí)現(xiàn)手段等,實(shí)現(xiàn)智能靈活的用例管理,用例選擇和質(zhì)量評(píng)估方案;減少無(wú)數(shù)據(jù)支撐造成的內(nèi)耗。


          end


          瀏覽 45
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一级A片操逼 | 美女啊爽操叫 | 国产一级做a爰片久久 | 国产影视一区 | 国产婷婷色综合AV |