張馳咨詢:如何應(yīng)用六西格瑪培訓(xùn)提高開發(fā)手機(jī)軟件質(zhì)量?

目前已經(jīng)進(jìn)入移動(dòng)互聯(lián)網(wǎng)的時(shí)代,智能手機(jī)的普及和5G時(shí)代的到來,現(xiàn)在基本靠一部手機(jī)就能解決衣食住行的所有問題。手機(jī)的系統(tǒng)主要是Android和iOS兩大陣營(yíng)主導(dǎo),手機(jī)的品牌和型號(hào)眾多,給移動(dòng)軟件開發(fā)增加了巨大難度和挑戰(zhàn),特別是Android的手機(jī)軟件開發(fā)。怎么讓一個(gè)軟件能兼容市面上不同系統(tǒng)版本、不同分辨率以及不同硬件配置手機(jī)。單單通過開發(fā)和測(cè)試是無法覆蓋這么多不同型號(hào)的手機(jī)。這就需要我們?cè)谲浖l(fā)布之后必須對(duì)用戶的使用情況進(jìn)行統(tǒng)計(jì)和分析,通過對(duì)這些收集的數(shù)據(jù)分析后,再改進(jìn)優(yōu)化,然后不斷的版本迭代。相對(duì)于傳統(tǒng)的軟件,進(jìn)入移動(dòng)互聯(lián)網(wǎng)的當(dāng)下,手機(jī)端的軟件基本都是實(shí)時(shí)聯(lián)網(wǎng),用戶使用過程出現(xiàn)軟件異常,軟件可以實(shí)時(shí)將異常的信息上報(bào)到服務(wù)器上。這有助于我們通過分析這些數(shù)據(jù),找到軟件需要優(yōu)化改進(jìn)的根源。
在本文中嘗試結(jié)合六西格瑪?shù)囊恍┕ぞ吆头椒?,?duì)具體的移動(dòng)端軟件項(xiàng)目開發(fā)過程進(jìn)行度量和分析,通過對(duì)軟件的崩潰率進(jìn)行分析反過來評(píng)價(jià)軟件開發(fā)的過程穩(wěn)定性和過程能力。
六西格瑪是一種管理策略,策略主要強(qiáng)調(diào)制定極高的目標(biāo)、收集數(shù)據(jù)以及分析結(jié)果,通過這些來減少產(chǎn)品和服務(wù)的缺陷。它有三種含義:(1)是一種質(zhì)量尺度和追求的目標(biāo),定義方向和界限。(2)是一套科學(xué)的工具和管理方法,運(yùn)用DMAIC(改善)或DFSS(設(shè)計(jì))的過程進(jìn)行流程的設(shè)計(jì)和改善。(3)是一種經(jīng)營(yíng)管理策略。
1、假設(shè)檢驗(yàn)
假設(shè)檢驗(yàn)是推論統(tǒng)計(jì)中用于檢驗(yàn)統(tǒng)計(jì)假設(shè)的一種方法?;舅枷胧切「怕史醋C法思想。小概率思想是指小概率事件(P<0.01或P<0.05)在一次試驗(yàn)中基本上不會(huì)發(fā)生。反證法思想是先提出假設(shè)(檢驗(yàn)假設(shè)h0),再用適當(dāng)?shù)慕y(tǒng)計(jì)方法確定假設(shè)成立的可能性大小,如可能性小,則認(rèn)為假設(shè)不成立,若可能性大,則還不能認(rèn)為假設(shè)不成立。
顯著性檢驗(yàn)有時(shí),根據(jù)一定的理論或經(jīng)驗(yàn),認(rèn)為某一假設(shè)h0成立,例如,通常有理由認(rèn)為特定的一群人的身高服從正態(tài)分布。當(dāng)收集了一定數(shù)據(jù)后,可以評(píng)價(jià)實(shí)際數(shù)據(jù)與理論假設(shè)h0之間的偏離,如果偏離達(dá)到了"顯著"的程度就拒絕h0,這樣的檢驗(yàn)方法稱為顯著性檢驗(yàn)。偏離達(dá)到顯著的程度通常是指定一個(gè)很小的正數(shù)σ(如0.05,0.01),使當(dāng)h0正確時(shí),它被拒絕的概率不超過σ,稱σ為顯著性水平。
假設(shè)檢驗(yàn)的種類包括:t檢驗(yàn),Z檢驗(yàn),卡方檢驗(yàn),F(xiàn)檢驗(yàn)等等??ǚ綑z驗(yàn)是用途非常廣的一種假設(shè)檢驗(yàn)方法,它在分類資料統(tǒng)計(jì)推斷中的應(yīng)用,包括:兩個(gè)率或兩個(gè)構(gòu)成比比較的卡方檢驗(yàn);多個(gè)率或多個(gè)構(gòu)成比比較的卡方檢驗(yàn)以及分類資料的相關(guān)分析等??ǚ綑z驗(yàn)就是統(tǒng)計(jì)樣本的實(shí)際觀測(cè)值與理論推斷值之間的偏離程度,實(shí)際觀測(cè)值與理論推斷值之間的偏離程度就決定卡方值的大小,如果卡方值越大,二者偏差程度越大;反之,二者偏差越??;若兩個(gè)值完全相等時(shí),卡方值就為0,表明理論值完全符合。
2、過程穩(wěn)定性和過程能力指數(shù)計(jì)算
要計(jì)算過程能力的前提必須保證過程是穩(wěn)定的,所以首先要先分析過程穩(wěn)定性才能進(jìn)行過程能力指數(shù)計(jì)算。
3、統(tǒng)計(jì)過程控制(SPC)判定過程穩(wěn)定性
統(tǒng)計(jì)過程控制(SPC)是一種借助數(shù)理統(tǒng)計(jì)方法的過程控制工具。它對(duì)生產(chǎn)過程進(jìn)行分析評(píng)價(jià),根據(jù)反饋信息及時(shí)發(fā)現(xiàn)系統(tǒng)性因素出現(xiàn)的征兆,并采取措施消除其影響,使過程維持在僅受隨機(jī)性因素影響的受控狀態(tài),以達(dá)到控制質(zhì)量的目的。
過程穩(wěn)定性的分析主要依靠控制圖進(jìn)行分析,休哈特根據(jù)正態(tài)分布的3sigma原理建立常規(guī)控制圖。休哈特認(rèn)為,基于3sigma限的控制圖可以把偶然波動(dòng)與異常波動(dòng)區(qū)分開來。
根據(jù)控制圖使用目的的不同,控制圖可分為:分析用控制圖和控制用控制圖。根據(jù)統(tǒng)計(jì)數(shù)據(jù)的類型不同,控制圖可分為:計(jì)量控制圖和計(jì)數(shù)控制圖(包括計(jì)件控制圖和計(jì)點(diǎn)控制圖)。它們分別適用于不同的生產(chǎn)過程。每類又可細(xì)分為具體的控制圖。
控制圖按數(shù)據(jù)性質(zhì)分類可以分為:
(1)計(jì)量值控制圖(數(shù)據(jù)服從正態(tài)分布,由兩張圖組成,分別控制均值與標(biāo)準(zhǔn)差)
①均值--標(biāo)準(zhǔn)差控制圖
②均值--極差控制圖
③中位數(shù)--極差控制圖
④單值--移動(dòng)極差控制圖
(2)計(jì)數(shù)值控制圖主要分計(jì)件值和計(jì)點(diǎn)值
①計(jì)件值:np圖(n相同)--不合格品數(shù)控制圖和p圖(n可不同)--不合格品率控制圖
②計(jì)點(diǎn)值:C圖(n相同)--不合格數(shù)控制圖和U圖(n可不同)--單位不合格數(shù)控制圖
不同類型控制圖的適用范圍總結(jié)如表1所示。

4、過程能力計(jì)算
過程能力指數(shù)也稱工序能力指數(shù),是指工序在一定時(shí)間里,處于控制狀態(tài)(穩(wěn)定狀態(tài))下的實(shí)際加工能力。產(chǎn)品質(zhì)量就是工序中的各個(gè)質(zhì)量因素所起作用的綜合表現(xiàn)。對(duì)于任何生產(chǎn)過程,產(chǎn)品質(zhì)量總是分散地存在著。若工序能力越高,則產(chǎn)品質(zhì)量特性值的分散就會(huì)越??;若工序能力越低,則產(chǎn)品質(zhì)量特性值的分散就會(huì)越大。那么,應(yīng)當(dāng)用一個(gè)什么樣的量,來描述生產(chǎn)過程所造成的總分散呢?通常,都用6σ(μ+3σ)來表示工序能力:
過程能力指數(shù)Cp、Cpk我們常常提到的過程能力指數(shù)Cp、Cpk是指過程的短期能力。Cp是指過程滿足技術(shù)要求的能力,常用客戶滿意的偏差范圍除以六倍的西格瑪?shù)慕Y(jié)果來表示。Cpk是指過程平均值與產(chǎn)品標(biāo)準(zhǔn)規(guī)格發(fā)生偏移的大小,常用客戶滿意的上限偏差值減去平均值和平均值減去下限偏差值中數(shù)值小的一個(gè),再除以三倍的西格瑪?shù)慕Y(jié)果來表示。
過程能力指數(shù)Pp、Ppk,與Cp、Cpk不同的是,過程能力指數(shù)Pp、Ppk是相對(duì)長(zhǎng)期的過程能力,要求其樣本容量大,其公式同Cp、Cpk一樣,但σ是全部樣本的標(biāo)準(zhǔn)偏差,即等于所有樣本的標(biāo)準(zhǔn)差S。
軟件開發(fā)過程數(shù)據(jù)分析
1、軟件的運(yùn)行環(huán)境數(shù)據(jù)采集和分析
移動(dòng)端軟件在發(fā)布后用戶反饋的問題,大都是兼容性造成的,很多手機(jī)配置是開發(fā)工程師和測(cè)試工程師無法覆蓋到的型號(hào),這就需要對(duì)在用的用戶手機(jī)配置信息做數(shù)據(jù)采集和分析,找出最大比例的分布,在開發(fā)和設(shè)計(jì)時(shí)優(yōu)先考慮這部分的配置的兼容性問題。對(duì)兼容性影響最大的主要是以下四個(gè)因素,分別是手機(jī)的操作系統(tǒng)、屏幕分辨率、CUP和內(nèi)存分布。因此針對(duì)這四個(gè)因素,我們對(duì)最近一個(gè)月收集的數(shù)據(jù)進(jìn)行分析,如圖1所示。

通過柏拉圖工具對(duì)分辨率、操作系統(tǒng)、CPU頻率以及內(nèi)存進(jìn)行分析,如圖1所示,很容易就能看出以下結(jié)果:用戶的手機(jī)系統(tǒng)基本是Android6.0以上,分辨率主要還是1080P,從CPU和內(nèi)存分析看手機(jī)的性能都比較好,配置較高。用戶手機(jī)的品牌分析可以看出前四名是華為、OPPO、VIVO、小米。在軟件兼容性設(shè)計(jì)和驗(yàn)證的時(shí)候會(huì)優(yōu)先滿足這些主流的配置。
2、手機(jī)品牌的影響分析
通過Bugly平臺(tái)收集的數(shù)據(jù)發(fā)現(xiàn)不同手機(jī)品牌與用戶崩潰率數(shù)據(jù)好像差異較大,所以針對(duì)不同手機(jī)品牌產(chǎn)生的用戶崩潰數(shù)進(jìn)行卡方檢驗(yàn),來確定手機(jī)品牌與用戶崩潰數(shù)的關(guān)系。
采集三個(gè)軟件版本在不同品牌手機(jī)報(bào)告上來的崩潰數(shù)量,數(shù)據(jù)如表2所示。

通過對(duì)手機(jī)品牌的卡方檢驗(yàn),如圖2所示,手機(jī)品牌對(duì)用戶崩潰數(shù)的影響為:P=0.000<0.055,接受備擇假設(shè),有顯著性影響。而且看可以看出小米、三星、VIVO三個(gè)品牌的手機(jī)影響較大,說明軟件在不同品牌的機(jī)器設(shè)備上運(yùn)行的兼容性不夠好,設(shè)備的運(yùn)行環(huán)境差異化較大。這個(gè)也是Android應(yīng)用目前遇到的普遍狀況,也是難點(diǎn)和重點(diǎn)。

因此在開發(fā)的下一次版本迭代,需要重點(diǎn)關(guān)注這幾個(gè)品牌的手機(jī),并且在測(cè)試的時(shí)候針對(duì)這幾個(gè)品牌做重點(diǎn)測(cè)試,提高這些品牌的一些主流機(jī)型測(cè)試的覆蓋率。
3、通過用戶崩潰率數(shù)據(jù)分析計(jì)算軟件的過程穩(wěn)定性和過程能力
軟件的崩潰率是移動(dòng)應(yīng)用軟件的一個(gè)重要指標(biāo),它會(huì)直接影響到用戶的體驗(yàn)和應(yīng)用的存活率,同時(shí)通過崩潰率也可以反向驗(yàn)證軟件開發(fā)的過程能力指數(shù)。
要通過崩潰率的數(shù)據(jù)來計(jì)算軟件的過程穩(wěn)定性和過程能力指數(shù),首先崩潰率的數(shù)據(jù)要符合正態(tài)分布才能進(jìn)行分析,所以我們要對(duì)崩潰率數(shù)據(jù)進(jìn)行正態(tài)性檢驗(yàn),通過Anderson-Darling、Ryan-Joiner和Kolmogorov-Smirnov三種檢驗(yàn)結(jié)果P值都大于0.05,如圖3所示,可以判判定數(shù)據(jù)符合正態(tài)分布。

4、對(duì)軟件開發(fā)的過程穩(wěn)定性分析-U控制圖
經(jīng)過以上的正態(tài)檢驗(yàn),用戶的崩潰率數(shù)據(jù)是符合正態(tài)分布,因此我們可以對(duì)其進(jìn)行過程穩(wěn)定性分析,數(shù)據(jù)表n列是每天活躍的用戶數(shù),k是每天上報(bào)的崩潰數(shù)量,A表示軟件版本。針對(duì)缺陷率的控制圖這邊選擇U控制圖(由于使用的樣品量都是不相等),分析可以看出過程是穩(wěn)定的。
5、過程能力分析
在過程穩(wěn)定的情況下,就可以進(jìn)行過程能力分析,軟件崩潰率可以反饋出該軟件的質(zhì)量水平,從而推斷出軟件開發(fā)的過程能力。在做過程能力分析時(shí),規(guī)格上限值設(shè)置會(huì)直接影響到過程能力分析的結(jié)果,我們這邊的崩潰率數(shù)據(jù)是從Android的應(yīng)用部署后,通過Bugly服務(wù)器收集到用戶上報(bào)的真實(shí)數(shù)據(jù)。以Bugly平臺(tái)對(duì)日活區(qū)間App的崩潰率的統(tǒng)計(jì)數(shù)據(jù)來看,如圖5所示,我們現(xiàn)在的日活用戶數(shù)差不多是5000到7500之間,按bugly平臺(tái)的數(shù)據(jù)顯示這個(gè)用戶數(shù)量級(jí)的行業(yè)平均值是3.36%,而上一個(gè)基本是1千以下的日活用戶崩潰率差不多是4.98%,我們就按4.98%的規(guī)格上限進(jìn)行分析運(yùn)算,得出的Cpu為1.19,根據(jù)查表可以看出這個(gè)數(shù)值對(duì)應(yīng)的過程能力等級(jí)的描述,說明過程能力還是較低,還有較大的改進(jìn)空間。圖6所示為軟件開發(fā)過程能力評(píng)估圖。


通過結(jié)合六西格瑪?shù)囊恍┓椒ê凸ぞ邔?duì)軟件的開發(fā)過程的數(shù)據(jù)進(jìn)行度量,減少軟件開發(fā)過程的主觀性、盲目性判斷和決策,用六西格瑪提供的科學(xué)方法和工具改進(jìn)軟件質(zhì)量,從而生產(chǎn)出高質(zhì)量的軟件。