軟件質(zhì)量持續(xù)改進(jìn),這是一個對我來說非常泛的題目,,在經(jīng)過7年的軟件質(zhì)量工作中摸爬滾打之后,,還是想說說自己的一些理解。 軟件質(zhì)量保證的手段,,在目前的流程化建設(shè)思維模式下,,可能要求項目團(tuán)隊過程中主要涉及到需求變更把控、開發(fā)風(fēng)險控制,、持續(xù)集成設(shè)計以及測試能力建設(shè)來控制和保證,。 第一點,需求變更把控,,主要是在敏捷開發(fā)測試模型下的需求迭代變更時,,團(tuán)隊對于變更的快速、準(zhǔn)確的理解把控,,在快速迭代過程中能夠及時高效的將變更需求予以實現(xiàn),; 第二點,開發(fā)風(fēng)險控制,,主要開發(fā)團(tuán)隊在設(shè)計,、編碼以及Bug修改過程中的風(fēng)險控制能力,設(shè)計是否達(dá)到需求(變更后)要求,、是否是最優(yōu)實現(xiàn)方案,、是否具備一定的可擴(kuò)展能力等等,編碼階段的編寫格式統(tǒng)一要求是否達(dá)到,,代碼管理的嚴(yán)謹(jǐn)性以及設(shè)計轉(zhuǎn)編碼過程中的準(zhǔn)確實現(xiàn)能力,,Bug修改過程中需要能夠準(zhǔn)確評估波及影響、準(zhǔn)確定位和解決,、自測自檢規(guī)范的嚴(yán)格執(zhí)行,; 第三點,持續(xù)集成設(shè)計,,是一種依托敏捷開發(fā)模型流行起來的質(zhì)量保證方法實踐,,通過自動化構(gòu)建(編譯、發(fā)布,、自動化測試)的手段能夠盡快發(fā)現(xiàn)集成問題,,增強(qiáng)項目的可見性,。但是這種實踐對于團(tuán)隊的內(nèi)部的積極配合有非常高的要求,計劃性工作,、里程碑的節(jié)點設(shè)置,,都需要各個小組之間能夠無縫銜接。同時,,此實踐對于團(tuán)隊的技術(shù)水平也有較高的要求,,包括敏捷模型理念的普及、自動化的構(gòu)建技術(shù)等,; 第四點,,測試能力建設(shè),對于一個軟件質(zhì)量人來說,,測試能力不僅僅是軟件測試技術(shù)水平,,更重要的是對于軟件質(zhì)量提升的意識能力建設(shè)。測試團(tuán)隊的人員構(gòu)成在組建初期就需要有明確且清晰的崗位定義,,從單元,、集成、系統(tǒng),、安全,、性能、自動化技術(shù)掌握程度等各方面予以不同的技術(shù)側(cè)重定義,,測試流程/方案/計劃的設(shè)計能力定義,,以及整體質(zhì)量控制能力定義。 那么基于以上四點,,項目團(tuán)隊如何在實際項目化過程中加以應(yīng)用呢,? 第一步,項目團(tuán)隊組建 其實,,關(guān)于團(tuán)隊的建設(shè),,在“挨踢”行業(yè),能力水平,、思想文化是最為重要的兩點,,能力水平最大化、思想文化高度一致,,說白了,,任何事情都是由人來推動完成的,所以,,中心永遠(yuǎn)是人,。 預(yù)算&工期、團(tuán)隊結(jié)構(gòu),、崗位職責(zé),、任務(wù)分配是在項目團(tuán)隊組建初期需要明確這幾個最基本的因素,,另外,在團(tuán)隊架構(gòu)設(shè)計時也需要將后期的動態(tài)調(diào)整空間預(yù)留出來,。 在軟件開發(fā)項目,,基本的角色有架構(gòu)設(shè)計、項目管理,、開發(fā)執(zhí)行,、過程管理、質(zhì)量控制,、需求管理、銷售實施,,不同的角色有不同的定義和要求,,在組建初期,需要根據(jù)我們預(yù)算&工期進(jìn)行合理的人員配置,,每一個人都必須有嚴(yán)格且清晰地崗位職責(zé),,根據(jù)項目不同角色的任務(wù)劃分來完成每一個人的工作任務(wù)下發(fā)和統(tǒng)計跟進(jìn)。 在這一步多說一些,,那就是思想和文化,,這或許比能力技術(shù)之于項目推進(jìn)更為重要,一定要避免“踢皮球”現(xiàn)象的產(chǎn)生,,推卸責(zé)任是團(tuán)隊工作的大辟,,管理人員一定要高度關(guān)注此類心態(tài)的產(chǎn)生。這里結(jié)合自己以前所參與過的項目經(jīng)驗,,首先一定要有”合情合理合法“的管理制度,,通過制度的約束一定程度上能夠彌補(bǔ)個體自覺能力不足的缺陷,其次,,作為多人配合組團(tuán)完成的工作,,一定也要有獎懲方案,在目前的行業(yè)文化中能夠激發(fā)非常強(qiáng)大的力量,,最后,,互幫互助、鼓勵犯錯,、團(tuán)隊至上的思想要時刻貫穿于項目過程中,,把要所有人的力量集中于一點,才能夠有豐碩的項目成果產(chǎn)出,。 第二步,,項目需求分析轉(zhuǎn)設(shè)計 1)客戶的需求收集分析 調(diào)研客戶的需求,客戶的定位,、分類以及特點,,客戶的核心需求,,核心功能有哪些,分別滿足客戶的哪些核心需求,; 調(diào)研競爭和市場發(fā)展,,要以市場發(fā)展為中心,通過調(diào)研競爭對手以及對應(yīng)的產(chǎn)品的有缺點,,學(xué)會自我突破和創(chuàng)新,,準(zhǔn)確把握產(chǎn)品技術(shù)的發(fā)展趨勢; 分析產(chǎn)品定位,、不足和解決什么問題,,要知道我們做的是什么,我們產(chǎn)品的核心價值,,以及和市場同類產(chǎn)品差異化在哪,,優(yōu)勢是什么; 分析投入和盈利能力,,產(chǎn)品滿足客戶的需求的基礎(chǔ)上,,我們通過什么樣的方式來盈利; 需求的有層次分解是需求分析的最終目的,,當(dāng)然,,這里的需求分析是要通過各種手段方法確認(rèn)需求正確性、合理性,、必要性等各個方面進(jìn)行綜合分析,,這是為下一階段完成產(chǎn)品設(shè)計模型做的基礎(chǔ)。 2)需求轉(zhuǎn)化設(shè)計 這是成熟團(tuán)隊在項目初期必不可少的步驟,,如果缺失此步驟,,那么就會出現(xiàn)需求直接跳到編碼,無異于空中樓閣,,會形成一個非常大的產(chǎn)品隱患,。正確的做法是,在完成需求收集分析的基礎(chǔ)上完成設(shè)計模型的勾勒,,針對不同的需求形成獨立的多角度的設(shè)計方案,,通過控制成本、功能健全,、性能穩(wěn)定,、用戶友好等不同的維度對所有的方案進(jìn)行綜合的考量,最后形成一個最優(yōu)的設(shè)計方案并形成設(shè)計模型,。 第三步,,項目過程質(zhì)量優(yōu)化方案 關(guān)于過程質(zhì)量優(yōu)化,我會根據(jù)工作性質(zhì)的差異分成如下幾個階段進(jìn)行說明。 需求:需求變更導(dǎo)致的迭代設(shè)計變化,,要求能夠準(zhǔn)確理解,、高效控制,即在需求有變更的時候,,要求能夠?qū)τ谛吕闲枨筮M(jìn)行準(zhǔn)確地理解,,在可控范圍內(nèi)完成產(chǎn)品需求的增刪改,同時也要有高效率的變更能力,,能夠及時響應(yīng)需求的變更,,對于新舊需求變更帶來的關(guān)聯(lián)性影響也需要有強(qiáng)大的控制力。 編碼:最優(yōu)設(shè)計模型的基礎(chǔ)上,,根據(jù)功能的模塊化分解,,以工作量作為劃分依據(jù)完成編碼工作的責(zé)任到人。同時,,要形成本階段的工作計劃,,包括進(jìn)度、成本,、質(zhì)量、自驗證等,,工作推進(jìn)過程中的各項資產(chǎn)的跟進(jìn)管理,,如文檔、版本等等,。通過編碼標(biāo)準(zhǔn),、階段化檢查、公用資產(chǎn)有效管理等手段進(jìn)一步加強(qiáng)編碼階段的質(zhì)量控制,。 測試:由于測試是質(zhì)量持續(xù)改進(jìn)非常重要的一個環(huán)節(jié),,而且,這個階段所有的工作都是圍繞產(chǎn)品質(zhì)量,,所以,,本階段各個工作的開展都是至關(guān)重要的且必不可少的。由于不同的項目會有特定的開發(fā)模型,,如瀑布模型,、螺旋模型以及現(xiàn)在流行的敏捷開發(fā)等等,在不同的開發(fā)模型下測試工作也會有差異性存在,,包括產(chǎn)品形態(tài),,如互聯(lián)網(wǎng)產(chǎn)品、大數(shù)據(jù)產(chǎn)品,、手機(jī)APP等等,,各個產(chǎn)品也會有不同的測試側(cè)重點,但是不過大體的測試流程不會有太大的差異性。 這里主要說明的是在測試環(huán)節(jié)里,,測試團(tuán)隊需要具備的幾個能力以及如何正確應(yīng)用以達(dá)到產(chǎn)品質(zhì)量的持續(xù)改進(jìn),。測試方法與技術(shù)、測試過程管理,、計劃方案及用例的設(shè)計,、Bug跟蹤管理、持續(xù)優(yōu)化,,首先在一個項目實踐開始之前一定要有一套測試合適的體系,,也就是說一定要根據(jù)多種元素去合理的制定一套將測試方法與技術(shù)、測試過程管理,、計劃方案及用例的設(shè)計,、Bug跟蹤管理、持續(xù)優(yōu)化其中的體系,,否則,,測試工作將不能發(fā)揮最大的效果,這是需要測試經(jīng)理或主管具備此種建設(shè)能力,。 在現(xiàn)今敏捷大行其道的形勢下,,如何提高測試的效率、降低測試的風(fēng)險是擺在所有測試人面前的一個難題,,這就需要我們更要具備以下幾個基本的基礎(chǔ)能力:自動化應(yīng)用能力,、擴(kuò)展思維能力、需求分析能力,、框架設(shè)計能力,,自動化現(xiàn)在已經(jīng)成為最為基礎(chǔ)的一個tester能力要求,擴(kuò)展思維能力則是要求測試人員能夠根據(jù)產(chǎn)品的形態(tài)和行業(yè)發(fā)展態(tài)勢進(jìn)行合理的功能化建議,,需求分析能力是要求具有需求轉(zhuǎn)計劃和用例的構(gòu)思能力,,準(zhǔn)確的對需求進(jìn)行分解并形成測試計劃和測試用例,框架設(shè)計更多的是要具有將不同測試方法,、測試類型,、測試技術(shù)完美結(jié)合形成適合自己的產(chǎn)品測試的實踐。 第四步,,項目實施控制 在這一步中,,其實,實際需要去講的東西不太多,,主要就是能夠?qū)⒁陨蠋讉€步驟中的內(nèi)容進(jìn)行嚴(yán)格監(jiān)控并執(zhí)行即可,。實施控制過程中要學(xué)會靈活變通與嚴(yán)格要求相結(jié)合、內(nèi)部溝通與外部采集相結(jié)合,,根據(jù)項目的模型不同可以去應(yīng)用一些持續(xù)集成的實踐框架,,這樣其實更利于實時管理和風(fēng)險的提前預(yù)警。 說了這么多,其實就一個核心思想,,無論什么樣的人員在什么樣的項目應(yīng)用什么樣的技術(shù)去做什么樣的產(chǎn)品,,一定要具有技術(shù)和管理持續(xù)優(yōu)化改進(jìn)的能力,這樣才能夠推動軟件產(chǎn)品質(zhì)量的不斷地持續(xù)地改進(jìn),。 |
|