1. 程式人生 > >平臺化測試難度大?京東教你如何用無人測試實現產品質量效率雙提升

平臺化測試難度大?京東教你如何用無人測試實現產品質量效率雙提升

第一次 出了 回歸 會議 收集 cdp key-value 自動生成 團隊

本文內容節選自第六屆全球軟件案例研究峰會,時任京東B2B產品質量團隊負責人楊瑾老師分享《無人測試如何助力京東提升產品測試效率與質量》實錄,重點分享:無人測試,創新測試方法論,接口測試案例。(PPT+文稿)。

楊瑾老師擁有10年以上互聯網及傳統行業測試經驗,擅長自動化測試、業務質量測試、性能測試以及持續集成等多領域;行業內資深測試專家,京東測試技術開放日發起人。

編者按:2017年11月9-12日,第六屆全球軟件案例研究峰會在北京國家會議中心盛大開幕,現場解讀2017年「壹佰案例榜單」。時任京東B2B產品質量團隊負責人楊瑾老師分享的《無人測試如何助力京東提升產品測試效率與質量》實錄的案例分享。

【內容簡介】隨著業務的發展,系統平臺化勢在必行,但每一個改動都代表著大量的回歸工作,在這樣巨大的工作量下,人工測試不能夠保證測試百分百的成功。京東團隊通過創新測試方法論,實現了質量與效率的雙雙提升,直接省略測試環境的接口測試成本;通過自動化預發環境完成測試,預計提升測試效率60%以上。

1

實踐背景

隨著京東B2B業務發展進入高峰期,開發與維護成本也相應的提高了許多。需求的增長迫使研發團隊必須改變以前的系統架構,提高效率。

所以,平臺化勢在必行。

平臺化測試痛點

1.巨大回歸量

平臺化之前的系統架構簡單,每個系統有自己完整的交易流程。而現在要把十幾個B2B業務線的共性抽離出來重構。在這樣的變動後,回歸量無疑是十分巨大的。

而且出於成本控制和業務壓力兩個方面,團隊必須要做到在有限的資源下既支持平時業務需求測試,還要更好的保障平臺化的工作量。

2.牽一發動全身

以交易平臺為例,從下圖可以看出,交易平臺基礎服務眾多。測試前,我們首先要做策略設計。交易平臺的基礎服務,像MID、OC,分別做了查詢、下單、封裝、校驗、數據同步、搜索、分頁,如果測試重點放錯,就會變得十分復雜。

技術分享圖片

對上的業務系統和對下相同,都是以接口的方式反饋數據。我們在與研發溝通讀寫接口的關系時,發現在整個交易平臺接口的比例中,寫接口比例很少,且測試簡單。但讀接口測試步驟十分繁瑣,不僅數量大且必須要和以前的接口反饋的結果做對比。

3.牽涉細節太多

如下圖,上面為老系統測試接口,下面為新系統邏輯。

在新老系統重構時,老系統存錢單位是分,取時單位是元,重構時雖然將單位統一成了元,但是由於數據遷移過程中,接口層邏輯處理出了問題,導致新系統中取出的錢比實際高了10倍。

技術分享圖片

這樣的例子在平臺化過程中還有許多。大多是因為參與的人多,半途中臨時加進來的資源也很多,很難從頭到尾,方方面面的了解研發在每個過程中做了什麽事情。

這是團隊測試中遇到的一個難點。

2

解決方案

之前存在的問題總結下來為:

  • 功能回歸耗時過長,有漏測的可能。

  • 依賴人設計,編寫,維護以及過程間驅動。

解決方案前後

解決方案前:

1.團隊會先梳理平臺化過程中有多少個接口需要被測,明確測試對象。

2.測試人員開始做不同場景下的用例測試,設計不同參數保證場景反饋數據是正常的。

3.在工程裏用頁面測試工具,以設計好的用例來做接口測試,激活反饋結果。

4.將結果與老系統數據作對比,結果一樣可認為重構是成功的。

評價:

  • 對人的依賴太強,有漏測可能性:例如在重構過程中大量的業務線融合在一起,對於團隊來說比較陌生容易漏測,在用例設計時也會產生一定的風險。

  • 測試效率低,測試成本高:人工對比容易產生誤差且耗時長。

技術分享圖片

解決方案後:

1.團隊梳理平臺待測接口。

2.記錄用戶行為,日誌打標改造——可以減少由於測試人員業務不熟帶來的漏測可能性。

3.上線運行,產生大量數據。

4.從日誌中提取需要數據,如接口方法,入參等,作為測試用例——在這一步裏脫離了對測試人員的依賴,提升了用例質量和生成效率。

5.在工具裏進行對比。

6.人工復檢——因為機器檢查時可能會反饋出時間戳和無用的參數。

評價:質量與效率雙雙提升。

讀接口自動對比方案

1.研發日誌打標。

2.將數據放入京東大數據平臺。

3.工具在大數據平臺內按一定規則篩選數據。

4.將數據變成用例,入庫。

5.測試人員進行配置。

技術分享圖片

解決方案中關鍵點

1.對比的基準——還原系統線上的真實場景

研發在日誌裏面按一定規則生成來提供測試需要的數據,這樣做不僅可以提高測試效率,還可以激勵研發工作動力。

2.減少人工幹預

無人測試關鍵在於沒有人的幹預,但這並不會以犧牲質量或犧牲其他做為代價。

技術分享圖片

團隊會在多業務線應用內,做一些配置,配置後根據要求將數據同步到大數據平臺,隨後日誌會按照一定規則去提取相應的數據,打造測試用例。

3.自動對比

技術分享圖片

測試人員在這其中做了幾件簡單的事:開發比較簡單的平臺,實現了配置;應用的配置;環境的配置,規則跳過的配置。

典型問題

  • Value不一致

    技術分享圖片

  • 缺少Key

    技術分享圖片

  • 小數位差別影響對外 API

    技術分享圖片

  • KEY-VALUE不一致

    技術分享圖片

實踐效果

質量上的提升

在接口處即可攔截問題,有效阻止了上線以後的修復成本。也提高了團隊信心。

效率上的提升

  1. 零用例設計與編寫成本——用例來自於用戶真實操作場景,涉及全面且自動生成。

  2. 零測試環境執行成本——節省掉測試環境的測試時間。

  3. 零預發對比全自動化——對160萬以上用例訪問並對比返回的思路。

3

經驗總結

本方法重點聚焦於測試方法創新與過程改進。

技術分享圖片

經驗教訓:

錯誤數據太多,無法人工查看每一條錯誤數據,只能采樣抽查。

成功要素:

  • 測試要善於發現工作中的樂趣。

  • 在工作中善於思考與突破,針對團隊遇到的問題,有可落地的定制化解決方案。

  • 優良的團隊文化,多和研發溝通。

  • 有一定的測試開發能力。

  • 對現有的業務系統熟悉。

成功經驗總結:

  • 測試人員做好規則制定。

  • 工具開發以及與研發同步的規則。

  • 研發配合做相應的改造。

  • 盡早上線。

  • 團隊達成一致,認可。

4

未來展望

  1. 錯誤分類智能化,減少此環節人力投入。

  2. 加入代碼覆蓋率分析,可以更直觀看到執行後新老版本質量提升。

技術分享圖片

Q&A

Q: 什麽是日誌打標改造?自動化用例生成時自動化數據是怎麽生成的?

A: 日誌是知曉系統一切的,包括用戶在系統裏面的任何操作,但是它沒有記錄,原因是研發沒有打日誌。我們可以讓研發在調接口的時候讓日誌按一定的格式把接口、方法入參,按標準的輸出。

Q: 用例生成是相對滯後的,那如何保證新內容、新版本上線的質量?

A:用例第一次上線是不能用的,因為存在滯後,在第二次上線就可以用了,因為需要有上線運行的版本幫它收集日誌。在第一次上線時,只能人工比對。

以上內容來自楊瑾老師的分享。

平臺化測試難度大?京東教你如何用無人測試實現產品質量效率雙提升