隨著互聯(lián)網(wǎng)紅利的逐漸消失,互聯(lián)網(wǎng)公司獲取新客戶的難度和成本越來越高,用戶增長的運營同學(xué)需要不斷嘗試不同的拉新策略,并根據(jù)用戶反饋及數(shù)據(jù)反饋快速調(diào)整,同時能夠快速跟進市場熱點,快速迭代產(chǎn)品功能。我們所在部門承接大量的金融業(yè)務(wù)(金白條、支付、小金庫、基金等)拉新獲客的訴求。為了在滿足快速交付業(yè)務(wù)需求不以犧牲產(chǎn)品質(zhì)量為代價,我們制定了用戶增長質(zhì)量門禁體系,通過規(guī)范化的質(zhì)量活動對需求交付的各個階段進行質(zhì)量準入和準出,步步為營,形成用戶增長產(chǎn)品需求交付質(zhì)量保證“七重門”。
TDD(Test-Driven Development)是敏捷測試的重要實踐,它強調(diào)在編寫代碼之前先編寫測試代碼,以此驅(qū)動代碼質(zhì)量的提升以及功能的覆蓋。結(jié)合當前平臺研發(fā)部質(zhì)量保證的現(xiàn)狀,測試用例絕大部分都是利用XMind編寫的文字描述形式的,若完全按照典型的TDD實踐進行落地,編寫測試代碼的成本較高,短時間內(nèi)難以看到效果,因此我們第一階段優(yōu)先實現(xiàn)了測試用例的前置,即測試用例的編寫和評審前置到設(shè)計評審或代碼開發(fā)之前,通過測試用例進一步明確功能需求、性能要求、異常流程、數(shù)據(jù)需求及驗收標準,并彌補需求評審環(huán)節(jié)可能遺漏的功能點和流程有欠缺的地方,提前預(yù)防缺陷,減少了在后期測試階段的返工和修復(fù)成本。通過在用戶增長、微電等領(lǐng)域多個項目的試點,各方均給與了正向的反饋,目前正在擴大試點范圍,目標是80%的需求實現(xiàn)用例前置。
單元測試是對軟件中的最小可測試單元(即代碼中的函數(shù)、方法、類等)進行獨立的測試。它的主要目的是驗證每個單元是否按照預(yù)期正確工作。單元測試具有以下幾個好處:
總之,單元測試是一種有效的軟件測試手段,它由開發(fā)人員編碼實現(xiàn)并執(zhí)行,充分體現(xiàn)了全民質(zhì)量保證的理念。在用戶增長的項目中,研發(fā)較為看中單元測試,在編碼的同時寫了大量的單測代碼,尤其是用戶增長研發(fā)團隊接入了ChatGPT,并聯(lián)合集團其他部以JoyCoder聯(lián)合項目組的形式,不斷迭代優(yōu)化,目前已經(jīng)可以快速自動生成較為規(guī)范的單元測試代碼,可以大大降低單元測試的工作量。
冒煙測試在產(chǎn)品質(zhì)量保障中起到了早期篩選問題、初步評估待交付需求質(zhì)量的作用。合格的冒煙測試能夠快速篩選問題、幫助團隊優(yōu)化資源和工作分配,并實現(xiàn)對產(chǎn)品質(zhì)量的初步評估,能夠促進團隊交付效率的提升。在用戶增長質(zhì)量保證的實踐中,我們一般通過行一組關(guān)鍵功能和核心流程的基本測試用例來驗證系統(tǒng)在最初階段是否適合進行更深入的測試,一般采用冒煙演示的方式,研發(fā)認為具備提測的條件之后,邀請測試同學(xué)一起現(xiàn)場進行冒煙用例的演示和走查。在我們的實踐中,一般會把總用例中30%左右的用例標記為為冒煙用例,一般都是主流程、核心功能的驗證點。不同的需求冒煙用例的比例可能差別較大,與需求的難易程度、涉及核心主流程的多少等有關(guān)系,一般情況下,研發(fā)和測試很容易就冒煙用例的內(nèi)容和比例達成共識。
在產(chǎn)品、項目和需求交付流程中,測試的執(zhí)行是產(chǎn)品質(zhì)量保障的第四道防線,也是確保軟件質(zhì)量的最關(guān)鍵步驟之一。通過有效的測試執(zhí)行,能夠?qū)a(chǎn)品缺陷盡早發(fā)現(xiàn),缺陷的類型包括且不限于:功能問題、用戶體驗問題、性能問題、安全漏洞、埋點規(guī)范、兼容性、風控防刷等等。測試執(zhí)行階段是測試同學(xué)工作時長最長的階段,也是其他角色最為熟悉的測試工作內(nèi)容。通常在該階段發(fā)現(xiàn)的需求缺陷能達到95%以上,一般情況下,在測試執(zhí)行階段的工作量占比總體研發(fā)工作的30%~50%,當然,不同的需求,測試工作量占比可能差別較大,尤其是回歸測試的比例,以及自動化測試在回歸測試中的占比,都直接影響測試執(zhí)行階段的工作量和時長。
產(chǎn)品驗證是確保軟件質(zhì)量的第五道防線,包括UAT、UI走查以及體驗驗收三部分。在需求準備上線之前,我們會邀請產(chǎn)品經(jīng)理在預(yù)發(fā)環(huán)境或測試環(huán)境對待交付功能進行驗證,此時,測試人員和產(chǎn)品經(jīng)理一同參與對產(chǎn)品的系統(tǒng)驗證,測試同學(xué)進行主流程演示或者產(chǎn)品經(jīng)理自主驗證功能、性能和用戶體驗是否滿足最初的需求和預(yù)期,同時驗證運營配置是否有問題。產(chǎn)品驗證的結(jié)果分為兩種情況:通過和不通過。對于通過的情況,我們可以開始進行最終的發(fā)布和交付工作。對于不通過的情況,我們第一時間反饋給開發(fā)團隊,以便及時修復(fù)和優(yōu)化問題。在產(chǎn)品驗收階段,基于產(chǎn)品設(shè)計和用戶視角,產(chǎn)品經(jīng)理可以提出各種觀點和意見,從而進一步完善產(chǎn)品。這種多元化的反饋和意見可以幫助團隊在上線前識別和解決潛在問題,雖然此時已經(jīng)處于需求交付的后期,但因系統(tǒng)還未面客,仍有一定的時間修復(fù)問題,這樣可以盡量避免問題逃逸到線上產(chǎn)生客訴。
另外,若涉及較多前端交互的需求,在產(chǎn)品驗證完需要邀請UI設(shè)計師進行UI走查以及用戶體驗同事進行體驗驗收。作為上線前用戶操作、用戶體驗方面的驗收,若因體驗存在缺陷導(dǎo)致驗收不通過,用戶體驗同事有權(quán)決定推遲上線,直至完成了優(yōu)化,或者各方就體驗問題達成了共識,可以先上線,并在大范圍投放之前完成優(yōu)化。
運營驗收主要是在需求上線后,邀請運營同學(xué)在線上進行最終的驗收,運營同學(xué)站在業(yè)務(wù)及用戶視角,驗證待交付功能是否與最初的預(yù)期一致,運營驗收階段是功能面客前的最后一道防線,基于對用戶的深刻洞察、敏銳的直覺以及對市場上同類功能的深入研究,運營同學(xué)在該階段經(jīng)常能發(fā)現(xiàn)一些大家容易忽略的問題或缺陷。同時,更重要的是,可以驗證后臺配置是否有問題、預(yù)算是否充足,并決定新舊功能的分流比例、缺陷是否在容忍范圍內(nèi)、是否需要報備客服,并確定投放后的運營策略、運營節(jié)奏及后續(xù)的產(chǎn)品迭代規(guī)劃。在該階段,偶爾會發(fā)生運營意見與產(chǎn)品意見、研發(fā)測試意見不一致的情況,因此,該階段也是一個互相說服、拉齊認知的重要階段。
隨著業(yè)務(wù)發(fā)展、微服務(wù)架構(gòu)、分布式架構(gòu)和虛擬化容器技術(shù)的廣泛普及,軟件架構(gòu)的復(fù)雜度在不斷提升,服務(wù)之間的依賴所帶來的不確定性也成指數(shù)級增長,在這樣的服務(wù)調(diào)用網(wǎng)中,任何一環(huán)出現(xiàn)的正常或者異常的變化,都有可能對其他服務(wù)造成類似蝴蝶效應(yīng)一般的影響。隨著用戶增長線上營銷活動、拉新工具、公共組件的不斷增加,整體鏈路增長以及數(shù)據(jù)流轉(zhuǎn)復(fù)雜,對整個系統(tǒng)的可用性、穩(wěn)定性挑戰(zhàn)也越來越大,所以非常有必要主動找出系統(tǒng)中的脆弱環(huán)節(jié),然后針對性地進行加固、防范,從而避免故障發(fā)生時所帶來的嚴重后果,進一步提升業(yè)務(wù)系統(tǒng)的高可用,提高業(yè)務(wù)系統(tǒng)應(yīng)急保障能力。近幾年,國內(nèi)外已經(jīng)發(fā)生了數(shù)次大規(guī)模的故障導(dǎo)致對海量用戶的服務(wù)長時間中斷,產(chǎn)生了巨大的負面影響。為有效減少因內(nèi)外部環(huán)境的故障對系統(tǒng)造成的影響,我們在日常工作中模擬各類故障,以檢驗對系統(tǒng)的影響及研測團隊的風險應(yīng)對能力,我們在用戶增長領(lǐng)域進行了兩類容災(zāi)演練:
混沌演練是一種通過有意引入系統(tǒng)隨機性、不穩(wěn)定性和故障來測試和改進系統(tǒng)可靠性的實踐方法,它旨在幫助組織識別和解決潛在的系統(tǒng)缺陷和性能問題,以減少系統(tǒng)故障和提高系統(tǒng)的容錯性。混沌演練的關(guān)鍵理念是“通過引入故障來發(fā)現(xiàn)故障”。通過有節(jié)制地引入不穩(wěn)定因素和故障場景,例如關(guān)閉某個服務(wù)、模擬網(wǎng)絡(luò)延遲、引發(fā)硬件故障等,混沌演練可以驗證系統(tǒng)的彈性、容錯能力和恢復(fù)能力。它能夠幫助我們發(fā)現(xiàn)隱藏的系統(tǒng)弱點,識別性能瓶頸和獨立失敗點,并提供改進系統(tǒng)穩(wěn)定性和可靠性的機會。
演練的場景包括運營商網(wǎng)絡(luò)斷網(wǎng)、京東云機房斷網(wǎng)、存儲設(shè)備斷網(wǎng)、網(wǎng)絡(luò)流量抖動、網(wǎng)絡(luò)流量丟包等,影響范圍可能更廣,因此需要提前梳理好演練內(nèi)容和應(yīng)急方案,具體包括根據(jù)不同場景梳理演練SOP、根據(jù)SOP設(shè)置演練模板、根據(jù)模板評估系統(tǒng)是否達到演練要求、根據(jù)演練要求升級改造系統(tǒng)、根據(jù)演練模板設(shè)計演練流程及checklist,確保不會因演練而影響線上系統(tǒng)。通過對演練過程、演練內(nèi)容、風險事項、應(yīng)對方案的梳理,做到萬一發(fā)生類似基礎(chǔ)性故障或網(wǎng)絡(luò)、數(shù)據(jù)庫切換的時候,有序執(zhí)行SOP操作,系統(tǒng)處于風險可控的狀態(tài)。截止目前,已經(jīng)完成了針對用戶增長領(lǐng)域掛獎、發(fā)獎、資金組件等三個核心應(yīng)用的數(shù)據(jù)庫、緩存切換演練,達到了預(yù)期效果。總結(jié)
本文介紹了用戶增長領(lǐng)域在快速交付產(chǎn)品的同時為保證交付質(zhì)量所設(shè)置的七道防線,每道防線都像一道門禁,只有滿足了準入要求,才能進入下一個階段,以此來規(guī)范各個階段的質(zhì)量活動,并作為質(zhì)量保證全流程的執(zhí)行標準。需要指出的是,在實際的質(zhì)量實踐中,不是形而上的、簡單粗暴的執(zhí)行以上質(zhì)量活動,我們會根據(jù)產(chǎn)品和業(yè)務(wù)需求的實際情況進行一定范圍的靈活調(diào)整或裁剪,在質(zhì)量和效率之間達到一個動態(tài)的、適度的平衡。
本文鏈接:http://www.tebozhan.com/showinfo-26-14340-0.html產(chǎn)品需求交付質(zhì)量保證的“七重門”
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 火山引擎實時、低延時擁塞控制算法的優(yōu)化實踐
下一篇: 23種軟件設(shè)計模式綜述