專案背景介紹
宜人蜂巢是領先的、智慧的、資料科學驅動的網際網路風控科技平臺。
通過最領先科技與大資料的智慧技術,準確預測借款人的信用、償還能力並實別欺詐、助力貸後風險管理等,從而將公平的信用擴充套件到更多的人。
目前查詢量超過6000萬次,體驗使用者超過3000萬,通過宜人蜂巢科技平臺的促成的放款額已突破1200億。
因此,宜人蜂巢自研的專案質量管控體系成為了平臺服務質量的重要保障。藉此,想跟大家分享下我們實踐中的一些經驗和收穫。
如何更快更好保證產品質量
在當今網際網路時代,產品致勝原則就是“快”,快速迭代、快速試錯,但大家經常忽略“快”的前提——質量保障,有質量保障的快才能達到“快”的目的。
作為網際網路QA,我們一直在孜孜不倦的探索【如何更快更好的保證產品質量?】
在傳統流程中,產品質量保障工作主要是由測試人員負責,這種組織和思維方式導致團隊各個角色間脫節,整體效率比較低下,具體表現在如下幾點:
- 團隊成員注意力沒有聚焦於團隊目標,而只是分散於個人工作目標。
- 開發人員、測試人員對於“完成”的理解不一致,導致產生了大量bug,進而增加了開發人員返工的工作量,也增加了團隊溝通成本。
- 團隊成員對如何完成團隊目標以及當前進度沒有清晰的瞭解。
- 開發、測試脫節,質量保證環節滯後,可能會導致質量風險不可控。
因此要在質量保障上做到“快”,必須有效的整合團隊,讓整個團隊都參與進來,質量保障不僅僅是測試人員的事情。
ATDD(驗收測試驅動開發)
ATDD正是解決這些痛點的最佳方案,那ATDD是什麼?能給我們帶來什麼?
定義:在ATDD活動中團隊需要就需求定義出期望的質量標準和驗收細則,以明確而且達成共識的驗收測試計劃(包含一系列測試場景)來驅動產品的程式碼開發和測試指令碼開發。
ATDD將測試作為主線貫穿專案始終,這樣的改變在多方面都帶來了積極的影響:
- 測試前置,在需求階段與開發人員一起“例項化需求”,定義出驗收標準,即測試用例。
- 定義驗收標準過程,其實是將團隊目標分解為個人任務過程,讓團隊目標能夠做到上通下達,使團隊成員可以清晰瞭解專案當前進度、何時完成以及如何幫助快速完成團隊目標。
- 在開發、測試過程中,有了明確的驗收標準,讓開發人員與測試人員對“完成”的理解達成一致,保證一次把事情做對,減少bug產生,減少返工、溝通成本。
在討論ATDD時,有一個誤區:ATDD一定是要基於自動化以及持續整合的。在我們看來ATDD是一種協同團隊工作的方法論,而實現自動化只是讓ATDD流程更有效率。
ATDD流程定製化及落地實施
基於我們對ATDD的理解,根據專案實際情況量身定製了一套QA流程
流程中我們強化了兩點:
1. 一次把事情作對:開發人員根據驗收標準進行程式設計開發,並在關鍵階段增加了自動檢測,驗證是否達到要求。
2. 提高bug反饋速度:
a. 開發人員自測:
針對介面用例,可以快速執行用例,開發人員一鍵執行用例,驗證程式是否符合驗收標準,將bug在源頭控制住。
針對無法自動化以及自動化執行速度較慢的用例,根據重要程度進行篩選。
b. 與Jira整合:
在bug資訊描述中增加用例資訊,如果是自動化執行用例,還增加用例執行日誌以及重新執行功能,方便開發人員定位、解決、驗證bug,提高效率。
工欲善其事必先利其器,要讓這個QA流程更有效的實施,需要一個定製化的工具來承載,為此我們使用SpringBoot開發了基於web的質量管控平臺。
重點功能介紹:
- 用例組:對用例進行分組,並通過資料驅動模式,將【測試資料】與【用例】結合起來,為一鍵批量執行用例打好基礎。
- 用例批量執行:實現了一鍵自動執行,實時反饋執行結果,主要通過以下幾個功能設計實現:
1、 變數系統,利用正規表示式、JSONpath等解析替換引數。
a) 從配置中取資料
b) 介面間的動態資料
c) 全域性變數:替換用例組中所有用例對應資料
2、 實時日誌:利用web socket技術,實時展示用例執行日誌
3、 用例結果自動對比:JSON格式資料,通過對比演算法,精準定位到不一致的欄位。
a) 業務資料量比較大且比較複雜,有許多相似的資料,人工對比都需要參照才能確定,針 對這種情況開發了智慧化對比演算法,通過先用關鍵字對資料進行分組,再對比相似度,結合遞迴實現。
- 持續部署:將Docker技術整合到質控平臺中,做到了一鍵部署,並收集部署日誌。
至此我們將定製化的QA流程通過質控平臺與實際工作緊密結合了起來:
1. 專案前期:
a) 在質控平臺建立版本計劃,填寫上線日期及發版內容
b) 測試人員與開發人員一起例項化需求,達成驗收標準,並將驗收標準錄入質控平臺,將驗收標準共享。
c) 測試人員將驗收標準作為任務配置到版本計劃中。
2. 開發階段
a) 開發人員參照驗收標準進行開發。
b) 開發人員完成功能開發,執行指定的驗收標準進行自測,通過實時日誌以及用例預期自動對比,快速反饋程式是否符合驗收標準。
3. 測試階段
a) 測試人員執行驗收標準進行驗收。
b) 測試人員進行探索式測試,補充驗收標準。
c) 發現bug時,通過測試平臺將用例資訊、日誌資訊帶入Jira。
質量數字化
通過質控平臺,沉澱了多維資料:用例資料、測試資料、用例執行日誌、任務資訊、bug資訊等,所以我們更進一步,利用這些資料,對專案進行整體把控、風險管理以及專案覆盤:
- 專案情況:統計用例執行情況、bug解決情況,使團隊成員實時瞭解當前專案進度,以及何時達成目標。
- 個人中心:實時統計團隊成員需要關注的用例、任務、bug資訊,一目瞭然,提醒及時處理,提高反饋速度。
- 測試報告:通過多維資料統計分析生成測試報告,反映專案整體質量狀況。
- 測試詳情統計:通過多維資料統計展示專案質量保障詳細過程,輔助團隊對專案覆盤,總結經驗,持續精進。
實踐效果
至此,我們通過引入ATDD,定製化QA流程,開發質控平臺將流程嵌入到實際工作,提供高度自動化以及利用多維資料將質量數字化,在實際應用中取得了非常理想的效果:
取得這樣理想的效果,得益於在實踐過程中實現了全員參與質量保障,讓團隊目標能夠上通下達,從而將團隊有效整合。
智慧化
在實踐過程中,我們初步發掘了資料給質量保障過程帶來的積極影響,未來,將在此次實踐基礎上,擴充套件資料來源,以資料為基礎,建立資料與質量的內在關聯,對專案生命週期、質量評估、測試策略等各個方面產生積極影響,實現質量保障智慧化,更好的完善我們的服務保障能力。
關於我們
宜人蜂巢於2013年由李善任先生(人稱麥哥或Michael),在宜人貸內部組建團隊併成功孵化的專案。通過8大維度——金融、電商、社交、保險、社保、行為、位置等約20種資料來源,千餘維度特徵,億級關係網路等,幫助企業做出更明智的信貸決策,以擴大公平和透明信貸的可用性。