周亞男 朱程輝 劉錦峰
對(duì)信號(hào)系統(tǒng)長(zhǎng)期開(kāi)發(fā)維護(hù)過(guò)程中產(chǎn)生的缺陷進(jìn)行分析,重點(diǎn)研究缺陷發(fā)現(xiàn)階段,缺陷類(lèi)型等屬性,通過(guò)魚(yú)骨圖缺陷分析的方法,識(shí)別導(dǎo)致缺陷的根本原因,并對(duì)產(chǎn)品開(kāi)發(fā)過(guò)程中的不足之處進(jìn)行跟蹤管理,定制具體的缺陷分析流程,通過(guò)一年的實(shí)踐,結(jié)果表明該分析方法和流程是有效的,對(duì)日常缺陷分析工作有著指導(dǎo)意義。
隨著微電子技術(shù)、計(jì)算機(jī)技術(shù)、通信技術(shù)的不斷更新,軌道交通信號(hào)系統(tǒng)也在更新?lián)Q代。從模擬軌道電路,到數(shù)字軌道電路,再到現(xiàn)在的無(wú)線(xiàn)通信,軌道交通信號(hào)系統(tǒng)持續(xù)走向智能高效、安全可靠、方便快捷。同時(shí)不同城市的定制化需求,也促使著軌道交通信號(hào)系統(tǒng)的不斷升級(jí)。
功能的實(shí)現(xiàn)與優(yōu)化必定伴隨著軟硬件的變更,產(chǎn)品的迭代,而每一次的開(kāi)發(fā)過(guò)程都是不確定的,受流程,工具以及人的影響,即使嚴(yán)格服從ISO9001和EN5012X指導(dǎo)做完整的生命周期開(kāi)發(fā)和全面的Verification和Validation管理,缺陷依然如影隨形。
缺陷往往給研發(fā),測(cè)試,工程實(shí)施團(tuán)隊(duì)帶來(lái)人力時(shí)間成本的消耗,導(dǎo)致返工,影響系統(tǒng)上線(xiàn),但凡事都有兩面性,我們?cè)谌淌苋毕莸耐瑫r(shí),缺陷的價(jià)值也不可忽視。一個(gè)有效的缺陷分析過(guò)程可以多維度暴露我們產(chǎn)品迭代過(guò)程中的不足,觸發(fā)一次深度的反思與學(xué)習(xí),總結(jié)經(jīng)驗(yàn),將來(lái)可以更早的發(fā)現(xiàn)或者消除同類(lèi)缺陷,降低缺陷成本。
一個(gè)成熟的信號(hào)系統(tǒng)開(kāi)發(fā)生命周期都有缺陷管理庫(kù),用來(lái)管理產(chǎn)品整個(gè)生命周期的缺陷和變更,包括產(chǎn)品維護(hù)階段。我們要做的缺陷分析的對(duì)象即為CQ庫(kù)中的缺陷(本文中提到的缺陷相關(guān)字段用Clear Quest舉例,簡(jiǎn)稱(chēng)CQ),當(dāng)然不是所有缺陷,需要識(shí)別哪些缺陷是有價(jià)值的,值得投入時(shí)間人力成本去分析的。
(一)缺陷發(fā)現(xiàn)的階段
首先,我們引用缺陷屬性中的defect_detection_ phase作為缺陷分析對(duì)象的第一步篩選,defect_ detection_phase即缺陷發(fā)現(xiàn)階段,一般情況該字段按照產(chǎn)品的生命周期階段劃分,可以歸納為三大類(lèi)。
需求設(shè)計(jì)階段:該階段發(fā)現(xiàn)的缺陷一般都是文檔類(lèi)的,多數(shù)為評(píng)審和驗(yàn)證過(guò)程中發(fā)現(xiàn)的需求設(shè)計(jì)問(wèn)題;該階段的缺陷修復(fù)成本非常低,可忽略。
產(chǎn)品測(cè)試階段:顧名思義,該階段發(fā)現(xiàn)的缺陷多數(shù)為各級(jí)產(chǎn)品測(cè)試人員提出,對(duì)產(chǎn)品的研發(fā)質(zhì)量有一定的評(píng)估價(jià)值。缺陷修復(fù)需要回滾到Coding甚至Design階段,對(duì)研發(fā)和測(cè)試人力都不同程度的消耗,對(duì)該階段的缺陷進(jìn)行分析可以識(shí)別出問(wèn)題較多的模塊以及開(kāi)發(fā)流程中存在的問(wèn)題,幫助測(cè)試人員定位測(cè)試側(cè)重點(diǎn),哪些模塊需要重點(diǎn)測(cè)試的,提高缺陷發(fā)現(xiàn)率,同時(shí)也幫助研發(fā)團(tuán)隊(duì)針對(duì)性的總結(jié)經(jīng)驗(yàn),并且避免將來(lái)發(fā)生類(lèi)似的錯(cuò)誤。此外,通過(guò)分析該組缺陷發(fā)現(xiàn)測(cè)試階段的分布情況,可以判斷哪些階段的測(cè)試需要加強(qiáng)。例如,系統(tǒng)級(jí)測(cè)試發(fā)現(xiàn)的缺陷,理論上軟件級(jí)測(cè)試也能發(fā)現(xiàn),這種情況則需要做對(duì)應(yīng)的缺陷分析。
維護(hù)階段:產(chǎn)品已經(jīng)發(fā)布使用,甚至已經(jīng)部署到現(xiàn)場(chǎng)。該階段發(fā)現(xiàn)的缺陷通常我們定義為逃逸缺陷。在全面智能化的社會(huì),軌道交通信號(hào)系統(tǒng)代替了多數(shù)人工操作,功能故障或者降級(jí)模式對(duì)用戶(hù)來(lái)說(shuō)幾乎都是不可接受的。其中,涉及到SIL4的功能缺陷更是可能關(guān)系到人身安全,帶來(lái)的影響已經(jīng)不僅僅是人力時(shí)間成本的估算,該類(lèi)缺陷產(chǎn)生的成本極高,也是我們需要深度分析的對(duì)象。
(二)缺陷的類(lèi)型
缺陷的類(lèi)型主要用來(lái)識(shí)別產(chǎn)品在功能,性能等各方面的表現(xiàn)情況,通過(guò)該屬性缺陷分布的統(tǒng)計(jì)與分析,識(shí)別產(chǎn)品設(shè)計(jì)的薄弱環(huán)節(jié),提示研發(fā)團(tuán)隊(duì)在后續(xù)的迭代開(kāi)發(fā)中,需要著重關(guān)注的方向。
在實(shí)踐后,我們將缺陷類(lèi)型分為以下6類(lèi):
1.功能(定位到具體模塊)
2.接口(具體的軟/硬件級(jí)之間)
3.可用性(人機(jī)界面)
4.性能(容量、響應(yīng)時(shí)間)
5.可靠性(宕機(jī),失效)
6.其他(例如兼容性等)
(三)缺陷所在模塊
缺陷的模塊分布可以反映各個(gè)模塊中缺陷數(shù)量的分布狀況,它可以被用來(lái)評(píng)估各模塊質(zhì)量水平和開(kāi)發(fā)難度,該屬性為缺陷類(lèi)型的細(xì)化,可根據(jù)產(chǎn)品的具體功能模塊進(jìn)行不同粗細(xì)顆粒度劃分類(lèi)型。
(四)缺陷根本原因
缺陷根本原因歸類(lèi)可以直接反映產(chǎn)品各階段活動(dòng)的質(zhì)量為持續(xù)改進(jìn)活動(dòng)提供具體依據(jù),根據(jù)實(shí)踐中各產(chǎn)品的日常缺陷分析結(jié)果,將缺陷的根本原因分為以下幾類(lèi)。
1.需求設(shè)計(jì)不足:例如,先寫(xiě)代碼后需求設(shè)計(jì)的情況,很容易導(dǎo)致需求描述不完整,測(cè)試范圍不全或者軟件與數(shù)據(jù)接口描述過(guò)于簡(jiǎn)化,導(dǎo)致測(cè)試用例設(shè)計(jì)出現(xiàn)遺漏;
2.測(cè)試設(shè)計(jì)不足:例如,信號(hào)系統(tǒng)各子系統(tǒng)之間都有詳細(xì)的協(xié)議定義文件,測(cè)試人員對(duì)協(xié)議的覆蓋僅停留在數(shù)據(jù)包組合分析,未結(jié)合實(shí)際運(yùn)行場(chǎng)景,導(dǎo)致測(cè)試用例設(shè)計(jì)不充分;
3.測(cè)試數(shù)據(jù)不足:例如,產(chǎn)品測(cè)試數(shù)據(jù)形式單一,但特定應(yīng)用項(xiàng)目站型卻千差萬(wàn)別,如果產(chǎn)品測(cè)試配置組合覆蓋不完整,則容易導(dǎo)致特殊站型情況出現(xiàn)缺陷而產(chǎn)品測(cè)試過(guò)程未發(fā)現(xiàn);
4.測(cè)試環(huán)境不足:例如,模擬工具仿真接口與真實(shí)接口的差異導(dǎo)致缺陷未被發(fā)現(xiàn)或者室內(nèi)不具備測(cè)試環(huán)境未執(zhí)行測(cè)試,導(dǎo)致到現(xiàn)場(chǎng)該模塊出現(xiàn)大量問(wèn)題;
5.影響分析不足:例如,影響分析的方法過(guò)于單一,缺乏系統(tǒng)性分析,僅停留在回歸發(fā)現(xiàn)缺陷對(duì)應(yīng)的測(cè)試用例層面,回歸面小,缺乏自動(dòng)化;
6.流程缺陷:例如,軟硬件接口未強(qiáng)制使用真實(shí)的設(shè)備或者代碼走讀規(guī)范定義不清晰,不全面,測(cè)試環(huán)境檢查不到位等;
7.偶發(fā)性:例如,未進(jìn)行拷機(jī)實(shí)驗(yàn),經(jīng)過(guò)一定的運(yùn)行時(shí)間后,產(chǎn)品缺陷暴露或者室內(nèi)測(cè)試生成的數(shù)據(jù)通信量小,需要大量的現(xiàn)場(chǎng)數(shù)據(jù)作為前提,才能偶然出現(xiàn),這種情況一般要求室內(nèi)測(cè)試數(shù)據(jù)庫(kù)中導(dǎo)入現(xiàn)場(chǎng)數(shù)據(jù);
8.其他。
(五)缺陷分析的方法
好的缺陷分析產(chǎn)生的結(jié)果必須是“可行動(dòng)”的,如果過(guò)于抽象和寬泛則很難制定具體有效的改進(jìn)措施,也就失去了缺陷分析的意義。一般,我們做缺陷分析的方法可以是多種多樣的,例如四象限分析法、柏拉圖分析法、 ODC正交缺陷分類(lèi)法等。本文用魚(yú)骨圖分析法舉例,通過(guò)產(chǎn)品組各口相關(guān)人員以會(huì)議形式進(jìn)行頭腦風(fēng)暴,分析過(guò)程以及方法如下:
1.CR寫(xiě)在魚(yú)骨的頭上;
2.召集各口同事共同討論問(wèn)題出現(xiàn)的具體場(chǎng)景;
3.把分析的角度分組,在魚(yú)骨上標(biāo)出;
4.根據(jù)不同問(wèn)題大家頭腦風(fēng)暴,總結(jié)出根本原因的類(lèi)型;
5.如果存在多方面的原因,需要逐條分析為什么會(huì)產(chǎn)生這樣的問(wèn)題;
6.總結(jié)問(wèn)題的解決或者改進(jìn)方案,并落實(shí)負(fù)責(zé)人;
魚(yú)骨圖形式舉例如圖1。
通過(guò)有效的缺陷分析,我們可以獲得如下產(chǎn)出:
產(chǎn)品團(tuán)隊(duì)在需求設(shè)計(jì)、測(cè)試、流程等多方面達(dá)成共識(shí),不會(huì)出現(xiàn)一個(gè)部門(mén)單方面努力推動(dòng)的情況;
推動(dòng)測(cè)試工具的開(kāi)發(fā)與完善;
改進(jìn)既有開(kāi)發(fā)與測(cè)試流程;
梳理常見(jiàn)問(wèn)題以及應(yīng)對(duì)方法;
不同產(chǎn)品可以交流分析結(jié)果,避免同類(lèi)問(wèn)題發(fā)生。
缺陷分析的執(zhí)行需要建立一定的機(jī)制,保證分析的及時(shí)性以及持續(xù)性。如果時(shí)間隔太久,會(huì)導(dǎo)致缺陷發(fā)生場(chǎng)景不清晰甚至不準(zhǔn)確,周期性的跟蹤總結(jié)才能沉淀成產(chǎn)品團(tuán)隊(duì)的資產(chǎn),因此一般建議定義組織級(jí)文件,并明確以下內(nèi)容。
測(cè)試缺陷定期進(jìn)行,分析的周期以及產(chǎn)出物;
逃逸缺陷觸發(fā)式進(jìn)行,分析的周期以及產(chǎn)出物;
指定分析活動(dòng)的組織人、分析結(jié)果的匯報(bào)人以及匯報(bào)的形式。
分析流程如圖2所示。
實(shí)踐表明,通過(guò)及時(shí)、有效、持續(xù)的缺陷分析,并對(duì)分析結(jié)果進(jìn)行跟蹤落實(shí),建立可實(shí)施的分析機(jī)制,能積極評(píng)估開(kāi)發(fā)和測(cè)試活動(dòng)的質(zhì)量,更能指導(dǎo)研發(fā)和測(cè)試在方法以及流程上的持續(xù)改進(jìn),豐富產(chǎn)品團(tuán)隊(duì)資產(chǎn)。
作者單位:卡斯柯信號(hào)有限公司(上海)