如何應用六西格瑪培訓提高開發手機軟體質量?

張馳精益六西格瑪發表於2021-10-20



目前已經進入移動網際網路的時代,智慧手機的普及和5G時代的到來,現在基本靠一部手機就能解決衣食住行的所有問題。手機的系統主要是Android和iOS兩大陣營主導,手機的品牌和型號眾多,給移動軟體開發增加了巨大難度和挑戰,特別是Android的手機軟體開發。怎麼讓一個軟體能相容市面上不同系統版本、不同解析度以及不同硬體配置手機。單單透過開發和測試是無法覆蓋這麼多不同型號的手機。這就需要我們在軟體釋出之後必須對使用者的使用情況進行統計和分析,透過對這些收集的資料分析後,再改進最佳化,然後不斷的版本迭代。相對於傳統的軟體,進入移動網際網路的當下,手機端的軟體基本都是實時聯網,使用者使用過程出現軟體異常,軟體可以實時將異常的資訊上報到伺服器上。這有助於我們透過分析這些資料,找到軟體需要最佳化改進的根源。

在本文中嘗試結合 六西格瑪 的一些工具和方法,對具體的移動端軟體專案開發過程進行度量和分析,透過對軟體的崩潰率進行分析反過來評價軟體開發的過程穩定性和過程能力。

六西格瑪是一種管理策略,策略主要強調製定極高的目標、收集資料以及分析結果,透過這些來減少產品和服務的缺陷。它有三種含義:(1)是一種質量尺度和追求的目標,定義方向和界限。(2)是一套科學的工具和管理方法,運用DMAIC(改善)或DFSS(設計)的過程進行流程的設計和改善。(3)是一種經營管理策略。

1、假設檢驗

假設檢驗是推論統計中用於檢驗統計假設的一種方法。基本思想是小機率反證法思想。小機率思想是指小機率事件(P<0.01或P<0.05)在一次試驗中基本上不會發生。反證法思想是先提出假設(檢驗假設h0),再用適當的統計方法確定假設成立的可能性大小,如可能性小,則認為假設不成立,若可能性大,則還不能認為假設不成立。

顯著性檢驗有時,根據一定的理論或經驗,認為某一假設h0成立,例如,通常有理由認為特定的一群人的身高服從正態分佈。當收集了一定資料後,可以評價實際資料與理論假設h0之間的偏離,如果偏離達到了"顯著"的程度就拒絕h0,這樣的檢驗方法稱為顯著性檢驗。偏離達到顯著的程度通常是指定一個很小的正數σ(如0.05,0.01),使當h0正確時,它被拒絕的機率不超過σ,稱σ為顯著性水平。

假設檢驗的種類包括:t檢驗,Z檢驗,卡方檢驗,F檢驗等等。卡方檢驗是用途非常廣的一種假設檢驗方法,它在分類資料統計推斷中的應用,包括:兩個率或兩個構成比比較的卡方檢驗;多個率或多個構成比比較的卡方檢驗以及分類資料的相關分析等。卡方檢驗就是統計樣本的實際觀測值與理論推斷值之間的偏離程度,實際觀測值與理論推斷值之間的偏離程度就決定卡方值的大小,如果卡方值越大,二者偏差程度越大;反之,二者偏差越小;若兩個值完全相等時,卡方值就為0,表明理論值完全符合。

2、過程穩定性和過程能力指數計算

要計算過程能力的前提必須保證過程是穩定的,所以首先要先分析過程穩定性才能進行過程能力指數計算。

3、統計過程控制(SPC)判定過程穩定性

統計過程控制(SPC)是一種藉助數理統計方法的過程控制工具。它對生產過程進行分析評價,根據反饋資訊及時發現系統性因素出現的徵兆,並採取措施消除其影響,使過程維持在僅受隨機性因素影響的受控狀態,以達到控制質量的目的。

過程穩定性的分析主要依靠控制圖進行分析,休哈特根據正態分佈的3sigma原理建立常規控制圖。休哈特認為,基於3sigma限的控制圖可以把偶然波動與異常波動區分開來。

根據控制圖使用目的的不同,控制圖可分為:分析用控制圖和控制用控制圖。根據統計資料的型別不同,控制圖可分為:計量控制圖和計數控制圖(包括計件控制圖和計點控制圖)。它們分別適用於不同的生產過程。每類又可細分為具體的控制圖。

控制圖按資料性質分類可以分為:

(1)計量值控制圖(資料服從正態分佈,由兩張圖組成,分別控制均值與標準差)

①均值--標準差控制圖

②均值--極差控制圖

③中位數--極差控制圖

④單值--移動極差控制圖

(2)計數值控制圖主要分計件值和計點值

①計件值:np圖(n相同)--不合格品數控制圖和p圖(n可不同)--不合格品率控制圖

②計點值:C圖(n相同)--不合格數控制圖和U圖(n可不同)--單位不合格數控制圖

不同型別控制圖的適用範圍總結如表1所示。


4、過程能力計算

過程能力指數也稱工序能力指數,是指工序在一定時間裡,處於控制狀態(穩定狀態)下的實際加工能力。產品質量就是工序中的各個質量因素所起作用的綜合表現。對於任何生產過程,產品質量總是分散地存在著。若工序能力越高,則產品質量特性值的分散就會越小;若工序能力越低,則產品質量特性值的分散就會越大。那麼,應當用一個什麼樣的量,來描述生產過程所造成的總分散呢?通常,都用6σ(μ+3σ)來表示工序能力:

過程能力指數Cp、Cpk我們常常提到的過程能力指數Cp、Cpk是指過程的短期能力。Cp是指過程滿足技術要求的能力,常用客戶滿意的偏差範圍除以六倍的西格瑪的結果來表示。Cpk是指過程平均值與產品標準規格發生偏移的大小,常用客戶滿意的上限偏差值減去平均值和平均值減去下限偏差值中數值小的一個,再除以三倍的西格瑪的結果來表示。

過程能力指數Pp、Ppk,與Cp、Cpk不同的是,過程能力指數Pp、Ppk是相對長期的過程能力,要求其樣本容量大,其公式同Cp、Cpk一樣,但σ是全部樣本的標準偏差,即等於所有樣本的標準差S。

軟體開發過程資料分析

1、軟體的執行環境資料採集和分析

移動端軟體在釋出後使用者反饋的問題,大都是相容性造成的,很多手機配置是開發工程師和測試工程師無法覆蓋到的型號,這就需要對在用的使用者手機配置資訊做資料採集和分析,找出最大比例的分佈,在開發和設計時優先考慮這部分的配置的相容性問題。對相容性影響最大的主要是以下四個因素,分別是手機的作業系統、螢幕解析度、CUP和記憶體分佈。因此針對這四個因素,我們對最近一個月收集的資料進行分析,如圖1所示。



透過柏拉圖工具對解析度、作業系統、CPU頻率以及記憶體進行分析,如圖1所示,很容易就能看出以下結果:使用者的手機系統基本是Android6.0以上,解析度主要還是1080P,從CPU和記憶體分析看手機的效能都比較好,配置較高。使用者手機的品牌分析可以看出前四名是華為、OPPO、VIVO、小米。在軟體相容性設計和驗證的時候會優先滿足這些主流的配置。

2、手機品牌的影響分析

透過Bugly平臺收集的資料發現不同手機品牌與使用者崩潰率資料好像差異較大,所以針對不同手機品牌產生的使用者崩潰數進行卡方檢驗,來確定手機品牌與使用者崩潰數的關係。

採集三個軟體版本在不同品牌手機報告上來的崩潰數量,資料如表2所示。


透過對手機品牌的卡方檢驗,如圖2所示,手機品牌對使用者崩潰數的影響為:P=0.000<0.055,接受備擇假設,有顯著性影響。而且看可以看出小米、三星、VIVO三個品牌的手機影響較大,說明軟體在不同品牌的機器裝置上執行的相容性不夠好,裝置的執行環境差異化較大。這個也是Android應用目前遇到的普遍狀況,也是難點和重點。


因此在開發的下一次版本迭代,需要重點關注這幾個品牌的手機,並且在測試的時候針對這幾個品牌做重點測試,提高這些品牌的一些主流機型測試的覆蓋率。

3、透過使用者崩潰率資料分析計算軟體的過程穩定性和過程能力

軟體的崩潰率是移動應用軟體的一個重要指標,它會直接影響到使用者的體驗和應用的存活率,同時透過崩潰率也可以反向驗證軟體開發的過程能力指數。

要透過崩潰率的資料來計算軟體的過程穩定性和過程能力指數,首先崩潰率的資料要符合正態分佈才能進行分析,所以我們要對崩潰率資料進行正態性檢驗,透過Anderson-Darling、Ryan-Joiner和Kolmogorov-Smirnov三種檢驗結果P值都大於0.05,如圖3所示,可以判判定資料符合正態分佈。


4、對軟體開發的過程穩定性分析-U控制圖

經過以上的正態檢驗,使用者的崩潰率資料是符合正態分佈,因此我們可以對其進行過程穩定性分析,資料表n列是每天活躍的使用者數,k是每天上報的崩潰數量,A表示軟體版本。針對缺陷率的控制圖這邊選擇U控制圖(由於使用的樣品量都是不相等),分析可以看出過程是穩定的。

5、過程能力分析

在過程穩定的情況下,就可以進行過程能力分析,軟體崩潰率可以反饋出該軟體的質量水平,從而推斷出軟體開發的過程能力。在做過程能力分析時,規格上限值設定會直接影響到過程能力分析的結果,我們這邊的崩潰率資料是從Android的應用部署後,透過Bugly伺服器收集到使用者上報的真實資料。以Bugly平臺對日活區間App的崩潰率的統計資料來看,如圖5所示,我們現在的日活使用者數差不多是5000到7500之間,按bugly平臺的資料顯示這個使用者數量級的行業平均值是3.36%,而上一個基本是1千以下的日活使用者崩潰率差不多是4.98%,我們就按4.98%的規格上限進行分析運算,得出的Cpu為1.19,根據查表可以看出這個數值對應的過程能力等級的描述,說明過程能力還是較低,還有較大的改進空間。圖6所示為軟體開發過程能力評估圖。



透過結合 的一些方法和工具對軟體的開發過程的資料進行度量,減少軟體開發過程的主觀性、盲目性判斷和決策,用六西格瑪提供的科學方法和工具改進軟體質量,從而生產出高質量的軟體。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69999732/viewspace-2838349/,如需轉載,請註明出處,否則將追究法律責任。

相關文章