<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>

          全生命周期的質量度量 | IDCF

          共 2820字,需瀏覽 6分鐘

           ·

          2020-09-30 08:35


          來源:圓小豆的美夢工場

          作者:于曉南


          度量之殤



          # 沒有度量 #

          # 有度量,但無效 #

          #?有效度量,但無積極影響?#?

          #?有效度量,積極影響,但一量到底?#?


          質量度量建模



          沒有度量軟件質量是極個別的情況,大部分軟件還是有的。但度量的時機和選擇的方式是否合理有效,就需要打個問號了。
          理想的情況是:根據軟件所處的不同階段確定不同的度量目標,選取合適的度量方式,并根據所處階段的變化適時調整,周期性的度量軟件質量;每次度量的產出是形成有效的改進項,行動并觀察效果,持續(xù)的對軟件質量產生積極影響。
          度量目標的確定直接影響度量方式的選擇和度量效果的評估。在確定度量目標時,需要綜合考慮多種因素,如:軟件所處的不同階段,團隊整體對度量成本和收益的預期,度量實施的復雜度,度量效果評估的重要干系人偏好等。在綜合考慮多種因素后,確定適合軟件現階段的度量目標。
          舉個例子,當軟件處于0-1階段時,沒有歷史的度量數據參考,這時就不宜設置量化的度量目標,如減少前端缺陷、提升自動化測試覆蓋率。此時應設置定性的度量目標,如目標用戶訪談,團隊內反饋收集等。再比如,大量日活的移動端社交軟件,老板要求每個迭代提供詳細的缺陷報告和前端性能報表,此時就需要設置具體的量化指標來作為度量目標了。
          度量方式分為兩類,定量分析和定性分析。
          • 定量分析是從數量和頻率的角度解釋因果關系,強調的是數據頻率對結果的影響。
          • 定性分析是從意義和影響的角度解釋因果關系,強調的是復雜影響和價值判斷。兩者各有所長,且無法互相取代。
          在質量度量方面,定量分析更多的是數據分析,通過數據采集和分析來挖掘背后的意義。如缺陷數量和分布統(tǒng)計,不同服務的測試覆蓋率,持續(xù)集成各環(huán)節(jié)的構建效率等。而定性分析更多的是可以引發(fā)深度思考的活動,如真實用戶訪談,重大事故的根因分析,質量成熟度評估等。針對不同的度量目標,可以選取的度量方式組合也是不同的。
          #?度量關注趨勢,而非數值?#?
          常見度量方式是用測試環(huán)境產生缺陷的數量來評估測試效率和軟件質量,這屬于定量分析。這種方式的優(yōu)勢是簡單易操作,實施成本低。但劣勢也較為突出:首先是度量不準,我們認為缺陷之間是不具備可比性的,由于缺陷的嚴重程度和緊急程度不同,我們不能說一個重大缺陷等于若干個普通缺陷,因此缺陷數量的絕對值累計是不具備統(tǒng)計意義的;然后是容易引起爭議,針對開發(fā)和測試這兩種不同的角色來說,這個度量標準的意義是完全相反的。
          在這種度量背景下,測試的目標是破壞軟件,缺陷越多越能體現測試的價值,因此測試會絞盡腦汁多提Bug。而開發(fā)的目標是實現功能,Bug越多說明實現效率越低。這種度量方式很容易引發(fā)團隊的割裂、針對重大線上問題的追責、質量工作重點的偏離等現象,這是我們不愿意看到的。
          那么問題來了,如果不是為了統(tǒng)計缺陷數量,我們收集缺陷數據的意義何在?
          • 首先,相比于數量絕對值,我們更應該關注的是數量或分布的變化趨勢,比如:在某一時間段內缺陷提交量激增,我們則需要分析出缺陷激增的原因以避免潛在的風險;在大規(guī)模重構后,某后端服務的缺陷占比持續(xù)增長,我們則需要重點關注該服務,是否在重構時引入了不必要的改動,是否缺乏足夠的測試保證原有功能不被破壞。
          • 其次,我們在統(tǒng)計了不同缺陷維度后,形成缺陷分析報告,可以對團隊提出有意義的改進項,跟進執(zhí)行效果。
          • 再次,我們可以針對識別出的嚴重問題進行根因分析,找到某個痛點的有效解決方法,使度量真正的對質量產生積極的影響。
          舉個根因分析的例子:
          在上面的討論中,度量方式既可以引入定量分析,也可以引入定性分析,或者干脆組合兩者一起分析,都是可行的。只要我們選擇了適合當下的的方式就好。
          #?周期性度量 & 適時調整?#?
          度量周期的選擇也很重要。除了第一次度量,后續(xù)的度量都是建立在上一次度量的基礎之上的,那么我們期望達到的效果是,上一次度量產生的行動項已經被執(zhí)行,并產生了穩(wěn)定的積極影響,那么就可以進行下一次的度量了。一方面檢驗上次行動項的執(zhí)行效果,另一方面產生新的行動項。
          度量周期的設置不宜過短,太短的話可能還來不及產生效果,或者團隊還處在適應變化的震蕩期中,無法度量成效;度量周期設置也不宜過長,過長的話可能已經引入了額外的變量,導致度量成果不準確。一般來說,我們以改進后兩個迭代左右為周期來度量,是比較適宜的。
          在持續(xù)度量一段時間后,度量陷入瓶頸,更多的度量并沒有帶來更大的積極效益。這種情況下,我們就需要思考如何重新確定度量目標,選擇不同的度量方式,引入更多的變量來刺激變化產生。我們認為質量度量應該發(fā)生在產品生命周期的任何階段,哪怕當下沒有調整度量方式的需要。在什么時機調整才算“適時”呢?這需要結合全生命周期的質量度量建模和產品所處階段的度量目標來綜合判斷了。


          全生命周期的度量



          #?迭代內度量?#?
          在迭代內的多個階段,可以針對不同階段關心的要素選擇度量方式和指標。在一個迭代內或者軟件的一個穩(wěn)定階段內,應采取相同的度量策略,聚焦于主要的觀察點,不宜引入過多變化。
          • 需求階段:更關心需求質量,迭代劃分是否合理
          • 實現階段:更關心實現方案的有效性和復雜度,對需求的工作量預估是否準確等
          • 測試階段:更關心缺陷趨勢、缺陷分布和引入時機
          • 上線和運維:更關心系統(tǒng)穩(wěn)定性,重大缺陷的響應力
          #?跨迭代度量?#?
          在跨迭代的全生命周期中,可以針對不同階段的首要交付目標去做度量的建模。由于時間跨度較大,需要持續(xù)評估度量效果,適時調整度量策略,及時把控度量方向。
          • 0-1階段:沒有已知的度量參考,偏重定性分析,可關注需求質量和工作量預估,收集團隊內部反饋
          • 迭代階段:需確保新增功能可用,已有功能不受影響;可做定性和定量分析
          • 變更階段:有重大系統(tǒng)變更,需要全方位的度量,確保風險控制有據可循
          • 維護階段:持續(xù)已有度量,提升效率減少浪費
          #?度量過程可視化?#?
          可以采用儀表盤來可視化整個度量過程,如下圖:
          • 橫坐標是度量維度,縱坐標是迭代
          • 紅綠燈代表健康度,文字表示該度量點上的關鍵事件
          • 每一行代表一次迭代內的所有度量及效果
          • 多行結合看,可以觀察多個迭代的度量變化,以及團隊關鍵事件如何影響度量


          總結



          軟件質量的有效度量,需要在確定度量目標后,選擇合適的度量方式和度量指標,持續(xù)的度量和反饋,并適時調整度量策略。做到軟件全生命周期的有效度量,才能真正為軟件研發(fā)過程降本增效,事半功倍。
          IDCF DevOps黑客馬拉松2020年再度開跑,北京、深圳、西安、上海四城報名通道已經開啟!打造端到端的DevOps教練,快掃碼報名加入吧~

          關注本公眾號回復“黑馬”——>將指定鏈接轉發(fā)到朋友圈,并集贊50個——>截圖發(fā)給Daisy,即可參與抽獎,中獎者可減2000元報名費哦~

          瀏覽 63
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  国产精品五月天婷婷视频 | 秘 黄 视频免费看 | 国内在线视频自拍 | 思思热在线观看 | 亚洲婷婷成人激久久月天 |