劉立富
(杭州澤天科技有限公司,杭州,310052)
在線分析儀器又稱過程分析儀器,是指直接安裝在工藝流程中,對被測介質(zhì)的組成成分或物性參數(shù)進(jìn)行自動連續(xù)分析的一類儀器。為了拓展在線分析儀器的市場,一些公司開始研發(fā)或改進(jìn)相應(yīng)的在線分析儀器產(chǎn)品。若使新開發(fā)或改進(jìn)的分析儀器能夠在用戶現(xiàn)場長期、可靠地運(yùn)行,除了通過前期的技術(shù)預(yù)研、設(shè)計(jì)開發(fā)及技術(shù)評審等方法保證,還需要通過產(chǎn)品測試對產(chǎn)品的功能、性能、可靠性等方面進(jìn)行驗(yàn)證,以保證產(chǎn)品質(zhì)量。目前,在線分析儀器在用戶現(xiàn)場暴露出的問題主要集中在軟件bug、器件失效、EMC問題、測量受環(huán)境溫度影響等。根據(jù)Pareto原則,產(chǎn)品中所有缺陷并不是都可以在測試中發(fā)現(xiàn)。但是其中的一些問題,如軟件部分bug和測量受環(huán)境影響等一些缺陷可以在測試階段通過加強(qiáng)測試發(fā)現(xiàn)并改進(jìn),這不僅需要加強(qiáng)測試人員的質(zhì)量意識,更需要加深測試人員對測試?yán)碚撝R的理解和測試技術(shù)的掌握。
在線分析儀器測試人員角色根據(jù)負(fù)責(zé)產(chǎn)品模塊的類別不同,分可以分為軟件測試人員、硬件測試人員、產(chǎn)品測試人員和可靠性測試人員及認(rèn)證測試人員等。軟件測試人員主要負(fù)責(zé)軟件黑盒測試,硬件測試人員主要負(fù)責(zé)硬件單元測試和硬件與軟件的集成測試。可靠性測試人員負(fù)責(zé)產(chǎn)品可靠性方面的測試,主要有環(huán)境測試和壽命測試等,認(rèn)證測試人員則主要負(fù)責(zé)產(chǎn)品的CMC認(rèn)證、防爆認(rèn)證等型式試驗(yàn)相關(guān)檢測項(xiàng)目的測試。產(chǎn)品測試人員的主要職責(zé)是協(xié)助單元測試和集成測試,執(zhí)行系統(tǒng)測試、一致性測試和用戶測試等,協(xié)助分析、解決測試問題。當(dāng)然不同公司的組織架構(gòu)會不同,測試人員職責(zé)的劃分也會不相同。目前,大多分析儀器公司軟件測試、硬件測試及可靠性測試主要由產(chǎn)品測試人員完成。
Glenford J.Myers 在《The Art of Software Testing》中從心理學(xué)和經(jīng)濟(jì)學(xué)兩方面對測試的定義和測試原則進(jìn)行了基本的闡述,在該書中測試是指是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。目前,對于測試的定義,不同的人對其描述也略有不同。1993年,IEEE提出的軟件工程標(biāo)準(zhǔn)術(shù)語中,將軟件測試定義為:使用人工或自動手段來運(yùn)行或評價(jià)某個系統(tǒng)或系統(tǒng)部件的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果和實(shí)際結(jié)果之間的差別。盡管不同人對測試定義存在差異,然而不同的定義均明確了測試應(yīng)該是以查找缺陷為目標(biāo)的一種過程。
測試的目的不僅是為了發(fā)現(xiàn)產(chǎn)品缺陷,而且通過分析缺陷分布特征和缺陷產(chǎn)生原因可以幫助項(xiàng)目經(jīng)理改進(jìn)當(dāng)前開發(fā)過程中的一些問題。同時(shí),通過缺陷分析也能幫助我們設(shè)計(jì)出有針對性的測試用例,提高測試有效性。測試?yán)硐肽繕?biāo)是達(dá)到“產(chǎn)品零缺陷”,即使測試過程中沒有發(fā)現(xiàn)任何缺陷,該過程的測試也具有意義,完整的測試是評價(jià)產(chǎn)品質(zhì)量的有效手段。
關(guān)于缺陷管理的理論研究起步比較晚,發(fā)展遠(yuǎn)未成熟。參考CMM5中定義規(guī)范和目前在線分析儀器行業(yè)特點(diǎn),將產(chǎn)品缺陷按照嚴(yán)重程度分為四級:致命、嚴(yán)重、一般和建議。
通過測試缺陷收斂趨勢能夠反映被測試產(chǎn)品的質(zhì)量變化情況,不僅可以輔助項(xiàng)目經(jīng)理進(jìn)行決策,而且也可以做為產(chǎn)品發(fā)布的一個重要參考,測試缺陷收斂度評估示例圖見圖1。在線分析儀器的測試缺陷收斂度可以從以下三個方面進(jìn)行評估。
1)缺陷累計(jì)發(fā)現(xiàn)數(shù);
2)各階段缺陷提交數(shù);
3)缺陷遺留數(shù)。
測試缺陷累計(jì)發(fā)現(xiàn)數(shù)趨于穩(wěn)定和各階段缺陷提交數(shù)趨近于0,表示產(chǎn)品質(zhì)量相對比較穩(wěn)定,但是并不代表產(chǎn)品質(zhì)量好。缺陷遺留數(shù)趨勢曲線下跌的時(shí)候,表示產(chǎn)品質(zhì)量有所改進(jìn),缺陷遺留數(shù)趨勢曲線逐漸上升時(shí),表示產(chǎn)品質(zhì)量在持續(xù)惡化。缺陷遺留數(shù)收斂趨勢曲線越趨近于0,產(chǎn)品質(zhì)量越好。
圖1 測試缺陷收斂度評估示例
根據(jù)測試人員對被測對象的了解程度來劃分,測試用例設(shè)計(jì)方法可分為白盒測試和黑盒測試。
白盒測試:又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試,必須知道軟件或產(chǎn)品內(nèi)部工作過程,通過測試來檢測其內(nèi)部是否按照需求、設(shè)計(jì)正常運(yùn)行。通過邏輯覆蓋、路徑覆蓋等方式選擇測試用例,可以用測試覆蓋率評價(jià)測試用例。在線分析儀器一般在單元測試階段中軟件測試和硬件測試采用白盒測試方法,主要驗(yàn)證軟件流程、軟件算法是否滿足需求和硬件信號鏈路是否正確等。
黑盒測試:又稱數(shù)據(jù)驅(qū)動測試或功能測試,是針對軟件或產(chǎn)品的功能需求進(jìn)行測試。通過測試來檢測每個功能是否符合需求,不考慮其內(nèi)部的邏輯結(jié)構(gòu)。下面介紹幾種在線分析儀器測試中常用的幾種黑盒測試方法。
測試人員應(yīng)該首先了解并掌握的功能測試相關(guān)技術(shù)是等價(jià)類劃分,理解這種技術(shù)的用法十分重要,因?yàn)樗呛芏嗥渌浖y試技術(shù)和途徑的基礎(chǔ)。等價(jià)類是某個輸入域的集合,在這個集合中每個輸入條件都是等效的,如果其中一個的輸入條件不能發(fā)現(xiàn)產(chǎn)品或軟件缺陷,那么集合中其它輸入條件進(jìn)行測試時(shí)也不會發(fā)現(xiàn)缺陷。等價(jià)類分為有效等價(jià)類和無效等價(jià)類,有效等價(jià)類就是由對產(chǎn)品規(guī)格說明有意義的、合理的輸入數(shù)據(jù)所構(gòu)成的集合;無效等價(jià)類就是對產(chǎn)品的規(guī)格說明不合理的或無意義的輸入數(shù)據(jù)所構(gòu)成的集合,設(shè)計(jì)測試用例時(shí)需要同時(shí)考慮這兩種等價(jià)類。
從長期的測試工作經(jīng)驗(yàn)得知,大量的故障往往發(fā)生在輸入定義域或輸出值域的邊界上,而不是在其內(nèi)部。使用邊界值分析方法設(shè)計(jì)測試用例,首先應(yīng)該確定邊界情況,輸入等價(jià)類與輸出等價(jià)類的邊界,是應(yīng)該著重測試的邊界情況。邊界值分析方法的基本思想是,選取正好等于、剛剛小于或剛剛大于邊界的值作為測試數(shù)據(jù),而不是選取等價(jià)類中的典型值或者任意值作為測試數(shù)據(jù)。在測試過程中,考慮了邊界條件的測試用例與其他沒有考慮邊界條件的測試用例相比,具有更高的測試回報(bào)率。
等價(jià)類劃分和邊界值分析的測試方法,主要考慮單一輸入條件,但是不考慮各個輸入條件之間的相互制約關(guān)系,也不考慮輸入條件的各種組合情況。如果考慮使用一種適合于描述多種輸入條件的組合,產(chǎn)生多個相應(yīng)動作的測試方法,可以使用因果圖,因果圖法適用于多種條件的組合、相應(yīng)產(chǎn)生多個結(jié)果的情況。在較為復(fù)雜的情況下,這個測試方法能有效地幫助我們檢查多種條件組合下的輸出是否正確,并且設(shè)計(jì)出高效、非冗余的測試用例。
錯誤推測法,基于經(jīng)驗(yàn)和直覺推測產(chǎn)品中可能存在的各種錯誤,從而有針對性的設(shè)計(jì)測試用例的方法。錯誤推測方法的基本思想是,根據(jù)以往的工作經(jīng)驗(yàn)推測出產(chǎn)品中所有可能存在的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)他們選擇測試方法和設(shè)計(jì)測試用例。
當(dāng)然,還有其他一些測試方法可以在測試用例設(shè)計(jì)中使用,如:正交設(shè)計(jì)法、特殊值法、流程分析法和組合設(shè)計(jì)法等。各種測試方法各有所長,應(yīng)該針對產(chǎn)品的具體需求,選擇合適的測試方法,設(shè)計(jì)高效的測試用例,有效地將產(chǎn)品中隱藏的缺陷揭露出來。
根據(jù)在線分析儀器的自身特性和測試階段的先后順序,測試流程主要包括單元測試、集成測試、系統(tǒng)測試、用戶測試、試生產(chǎn)測試和量產(chǎn)測試,測試流程圖見圖2。單元測試一般采用白盒測試,以單元模塊的詳細(xì)設(shè)計(jì)文檔為依據(jù),對開發(fā)模塊內(nèi)部功能、邏輯進(jìn)行測試。集成測試以各級子系統(tǒng)概要設(shè)計(jì)文檔為依據(jù),對經(jīng)過單元測試的模塊進(jìn)行組合測試,所測試的內(nèi)容主要包括單元間的接口,單元集成后的功能及樣機(jī)的風(fēng)險(xiǎn)項(xiàng)目測試等。系統(tǒng)測試是主要根據(jù)產(chǎn)品包需求和產(chǎn)品相關(guān)標(biāo)準(zhǔn),驗(yàn)證其滿足要求所規(guī)定的功能、性能、兼容性、可靠性等方面的特性。用戶測試包含α測試和β測試,主要以事先確定的技術(shù)協(xié)議為依據(jù),主要對可安裝性、可維護(hù)性、主要功能、主要性能等進(jìn)行驗(yàn)證,以保證產(chǎn)品達(dá)到可以交付使用的狀態(tài)。試生產(chǎn)測試對開發(fā)產(chǎn)品進(jìn)行小批量的試生產(chǎn),對產(chǎn)品的生產(chǎn)物料采購、制造、檢驗(yàn)等工藝環(huán)節(jié)進(jìn)行驗(yàn)證,以確保產(chǎn)品能順利進(jìn)行批量生產(chǎn)。量產(chǎn)測試由研發(fā)測試部門對量產(chǎn)產(chǎn)品進(jìn)行抽測,主要是對產(chǎn)品的穩(wěn)定性、可靠性等長周期測試項(xiàng)目以及在前面階段出現(xiàn)缺陷較多的功能、性能項(xiàng)目等進(jìn)行的測試。
圖2 測試流程圖
在線分析儀器在某一階段下的測試工作過程可以參考圖3進(jìn)行,測試人員首先進(jìn)行測試需求分析,盡早了解被測儀器。通過分析測試需求了解測試規(guī)模、復(fù)雜程度與可能存在的風(fēng)險(xiǎn)等,測試需求越詳細(xì),測試人員便會對所測產(chǎn)品越了解和對所要進(jìn)行的測試任務(wù)越清晰,這樣便會更有把握保證質(zhì)量與進(jìn)度。測試需求是測試計(jì)劃的基礎(chǔ)與重點(diǎn),測試計(jì)劃是為了測試某個產(chǎn)品而制定的計(jì)劃,測試計(jì)劃應(yīng)包括:產(chǎn)品概述、測試需求說明、測試資源配置、風(fēng)險(xiǎn)分析和測試周期等。
測試用例設(shè)計(jì)的目的是將系統(tǒng)需求具體化,提取測試需求,通過可測試的方法對每個功能點(diǎn)進(jìn)行描述。測試用例的要素應(yīng)該完整,包含用例編號、用例版本、編制人員、編制日期、測試目的、測試資源、預(yù)期結(jié)果和測試步驟等。測試用例設(shè)計(jì)時(shí)一定要關(guān)注測試步驟的可操作性和數(shù)據(jù)的具體量化指標(biāo)。
在線分析儀器測試環(huán)節(jié)中避免執(zhí)行測試之前不編寫測試方案和測試方案未經(jīng)過評審直接執(zhí)行測試,尤其對于長周期、高成本和高優(yōu)先級的項(xiàng)目測試。測試方案中需要體現(xiàn)出測試策略、測試樣機(jī)數(shù)量、測試資源、測試安排和測試用例等。目前一些公司產(chǎn)品的軟件測試大多傾向于正向測試,故在測試方案編寫時(shí)需要多考慮設(shè)計(jì)逆向測試用例。在測試之前需要安排好測試資源,并且分析測試工裝、設(shè)備的測量不確定度及誤差。
執(zhí)行測試時(shí)先測試儀器核心功能,然后進(jìn)入性能測試階段,再進(jìn)行軟件測試(可以提前開始),最后進(jìn)行可靠性測試。在線分析儀器測試工作中一個非常重要的工作是可靠性測試,往往在可靠性測試工作中會暴露出產(chǎn)品一些致命、嚴(yán)重設(shè)計(jì)缺陷,在項(xiàng)目開發(fā)中往往也是在該測試階段項(xiàng)目延期率持續(xù)增加。可靠性測試分類方法較多,常規(guī)的分類方法主要有:環(huán)境測試、壽命測試、篩選測試、現(xiàn)場使用測試和鑒定測試五大類。目前,在線分析儀器可靠性測試中主要進(jìn)行環(huán)境測試和壽命測試,其他三類可靠性測試還不夠深入。環(huán)境試驗(yàn)是考核產(chǎn)品在各種環(huán)境(溫度、振動、沖擊、潮熱、鹽霧、低氣壓等)條件下的適應(yīng)能力,一般會根據(jù)產(chǎn)品包需求適當(dāng)放寬范圍進(jìn)行測試。壽命試驗(yàn)是研究產(chǎn)品壽命特征和失效規(guī)律的測試方法,將產(chǎn)品放在特定的試驗(yàn)條件下考察其失效隨時(shí)間變化特征。在線分析儀器在一些應(yīng)用場合下條件惡劣,不僅樣氣中存在高濃度粉塵、腐蝕性氣體,而且有時(shí)安裝位置存在高頻率振動等,在這樣惡劣的應(yīng)用環(huán)境下尤其需要關(guān)注產(chǎn)品的可靠性。
測試報(bào)告一般是測試階段最后的輸出文檔,一份詳細(xì)的測試報(bào)告應(yīng)該包含足夠的信息,如缺陷統(tǒng)計(jì)、遺留問題分析、產(chǎn)品質(zhì)量評估等。測試報(bào)告中出現(xiàn)問題較多的是:測試項(xiàng)目不完整、缺陷問題分析不夠深入、語言不夠簡練通俗。對于長周期的測試,應(yīng)在每個測試階段完成后編寫測試報(bào)告,以免長時(shí)間后遺漏重要的測試細(xì)節(jié)。
在線分析儀器的測試是保證產(chǎn)品質(zhì)量一項(xiàng)非常重要的工作,測試人員需要掌握豐富的測試?yán)碚撝R和測試技術(shù),合理設(shè)計(jì)測試用例才能有效地發(fā)現(xiàn)產(chǎn)品中隱藏的缺陷,尤其軟件中的逆向測試用例和產(chǎn)品可靠性測試用例的設(shè)計(jì)。在實(shí)際的工作中發(fā)現(xiàn)在線分析儀器系統(tǒng)測試階段過程,通過逆向測試用例和可靠性測試用例發(fā)現(xiàn)的缺陷數(shù)比例的確很高。隨著測試技術(shù)的發(fā)展,越來越多的測試方法會被應(yīng)用在分析儀器行業(yè)中,這將有效地提高測試效率和產(chǎn)品質(zhì)量。
[1]王森,符青靈.儀表工試題集在線分析儀表分冊[M].北京:化學(xué)工業(yè)出版社,2006:1-3.
[2]于海澍.計(jì)算機(jī)軟件測試技術(shù)概述[J].科技資訊,2009(09):30-31.
[3]陳文海.軟件缺陷管理在軟件過程中的應(yīng)用研究[D].西安:西北大學(xué),2007:4-11.
[4]Alan Page,Ken Johnston,B.J.Rollison.How We Test Software at Microsoft[M].Washington:Microsoft Corporation,2009:66-67.
[5]趙瑞蓮.軟件測試[M].北京:高等教育出版社,2004:63-67.
[6]尹志華,候祖兵,汪衛(wèi).軟件測試技術(shù)及用例構(gòu)造方法初探[J].科技創(chuàng)新導(dǎo)報(bào),2010(27):27-28.