謝娟 朱程輝 劉錦峰
(卡斯柯信號有限公司 上海市 200072)
隨著鐵路信號系統(tǒng)的日益復(fù)雜與智能化,對信號系統(tǒng)產(chǎn)品測試人員的要求也越來越高。測試人員僅僅按照產(chǎn)品文檔編寫測試用例,執(zhí)行測試已不能滿足需求。測試人員需要從產(chǎn)品的方方面面深入探索產(chǎn)品,了解足夠多的信息,才能更好的制定測試策略,發(fā)現(xiàn)更多的產(chǎn)品缺陷,避免缺陷逃逸到現(xiàn)場。
怎樣才能深入了解到足夠多的信息,制定一個完整的測試策略呢?本文將介紹HTSM 模型,及將其應(yīng)用于面向車車通信ATS 產(chǎn)品來制定測試策略。
啟發(fā)式測試策略模型(Heuristic Test Strategy Model),簡稱HTSM,是測試專家James Batch 提出的一組幫助測試分析與設(shè)計的指南。HTSM 是一個結(jié)構(gòu)化的、可定制的參考模型,從測試技術(shù)、產(chǎn)品元素、項目過程、質(zhì)量標(biāo)準(zhǔn)等多個角度啟發(fā)測試設(shè)計。
面向車車通信ATS(iTS600)是新一代的ATS 產(chǎn)品,ATS 作為地鐵信號控制系統(tǒng)的一個重要組成系統(tǒng),與軌旁資源管理器、軌旁列車控制器、車載控制器設(shè)備等其他信號系統(tǒng)設(shè)備一起工作,實現(xiàn)信號設(shè)備的集中監(jiān)控,并控制列車按照預(yù)先制定的運(yùn)營計劃在正線和車輛段/停車場內(nèi)自動運(yùn)行。
HTSM是層次結(jié)構(gòu),圖1是其最上層元素,包括項目環(huán)境(Project Environment)、產(chǎn)品元素(Product Elements)、質(zhì)量標(biāo)準(zhǔn)(Quality Criteria)和測試技術(shù)(Test Techniques)。測試人員利用項目環(huán)境、產(chǎn)品元素和質(zhì)量標(biāo)準(zhǔn),指導(dǎo)測試技術(shù)的選擇與應(yīng)用,最終產(chǎn)生測試質(zhì)量。
圖1
每層元素又可分為多個次層元素,而次層元素又可進(jìn)一步分解為第三層元素,本文只介紹到次層元素。
項目環(huán)境(Project Environment),包含了項目中一系列可能影響或制約測試的資源、限制等其他元素,測試人員需識別項目環(huán)境的各項元素,在約束條件下充分運(yùn)用資源,以更高效的測試。項目環(huán)境可用CIDTESTED 這幾個引導(dǎo)詞來概括,分別是:
(1)用戶(Customers):產(chǎn)品的用戶;
(2)信息(Information):發(fā)現(xiàn)測試所需的信息;
(3)開發(fā)者關(guān)系(Developer Relations):與開發(fā)者的關(guān)系;
(4)測試團(tuán)隊(Test Team):利用團(tuán)隊的力量支持測試;
(5)設(shè)備與工具(Equipment & Tools):可利用的硬件、軟件、文檔等;
(6)進(jìn)度(Schedule):項目實施的進(jìn)度;
(7)測試項(Test Items):測試范圍和重點;
(8)交付件(Deliverables):測試的產(chǎn)出。
產(chǎn)品元素(Product Elements),包含產(chǎn)品本身及產(chǎn)品和外部的關(guān)系。軟件本身是復(fù)雜和無形的,需要考慮產(chǎn)品的方方面面,而不僅僅是容易看見的部分。
(1)結(jié)構(gòu)(Structure):產(chǎn)品的物理元素如代碼、硬件、非可執(zhí)行文件等;
(2)功能(Functions):產(chǎn)品的所有功能,包含應(yīng)用相關(guān)的功能、計算相關(guān)的功能、時間相關(guān)的、安全相關(guān)的等等;
(3)數(shù)據(jù)(Data):產(chǎn)品所操作的數(shù)據(jù);
(4)接口(Interfaces):產(chǎn)品所有的接口,用戶接口、系統(tǒng)接口、導(dǎo)入導(dǎo)出等;
(5)平臺(Platform):產(chǎn)品所依賴的外部元素;
(6)操作(Operations):產(chǎn)品將被如何使用;
(7)時序(Time):影響產(chǎn)品的時間因素。
質(zhì)量標(biāo)準(zhǔn)(Quality Criteria),是用于決定產(chǎn)品價值的多方面,也可將其視作產(chǎn)品不同的風(fēng)險,質(zhì)量標(biāo)準(zhǔn)通常是多維度的及帶有主觀性的。
(1)能力(Capability):實現(xiàn)產(chǎn)品的功能;
(2)可靠性(Reliability):產(chǎn)品在規(guī)定的條件和時間完成規(guī)定功能的能力;
(3)可用性(Usability):產(chǎn)品處于可工作或可使用狀態(tài)的程度;
(4)吸引力(Charisma):產(chǎn)品的魅力和吸引力;
(5)安全性(Security):產(chǎn)品不導(dǎo)致人員傷亡、系統(tǒng)損壞、財產(chǎn)損失等能力;
(6)可伸縮性(Scalability):產(chǎn)品部署實施是否可裁剪;
(7)性能(Performance):產(chǎn)品性能;
(8)可安裝性(Installability):安裝簡易程度;
(9)兼容性(Compatibility):產(chǎn)品與外部元素或環(huán)境的兼容性;
(10)開發(fā)標(biāo)準(zhǔn)(Development):包含可支持性(Supportability、可測試性(Testability)、可維護(hù)性(Maintainability)、可移植性(Portability)、本地化(Localizability)。
測試技術(shù)(Test Techniques),用于啟發(fā)測試設(shè)計,使用測試技術(shù)需要依賴于對項目環(huán)境、產(chǎn)品元素和質(zhì)量標(biāo)準(zhǔn)的分析。通常,包含以下測試技術(shù):
(1)功能測試(Function Testing);
(2)域測試(Domain Testing);
(3)壓力測試(Stress Testing);
(4)流測試(Flow Testing);
(5)情景測試(Scenario Testing);
(6)聲明測試(Claims Testing);
(7)用戶測試(User Testing);
(8)風(fēng)險測試(Risk Testing);
(9)自動測試(Automatic Testing)。
HTSM 是一個通用的模型,是一系列啟發(fā)思考的指導(dǎo)性詞匯,用于啟發(fā)測試人員的思維,發(fā)掘測試對象和測試策略。但是,在使用HTSM 前,需要結(jié)合自身產(chǎn)品進(jìn)行定制,模型中有些指導(dǎo)性詞匯可能也并不適用于自身產(chǎn)品,便可直接跳過該項;有時候也可能需要增加模型的節(jié)點。HTSM 模型是定制及修改的,定制的過程即應(yīng)用的過程。
圖2 通過思維導(dǎo)圖梳理了面向車車通信ATS 的項目環(huán)境,在對這些問題都一一有了解答之后,便對該項目的項目環(huán)境,包括用戶、項目、任務(wù)有了一定的了解。HTSM 實際上就是通過問問題的方式來了解用戶、了解項目、了解任務(wù),識別其中的風(fēng)險,識別風(fēng)險后,便可提前預(yù)防風(fēng)險,或者在風(fēng)險處加強(qiáng)測試設(shè)計與分析,這便是基于風(fēng)險的測試了。
圖2
用戶:在了解了用戶最關(guān)心的功能、用戶的痛點之后,后續(xù)便可在這些功能處加強(qiáng)測試設(shè)計與執(zhí)行;在了解了基于車車通信的ATS 與既有的ATS 操作上的變化之后,便可關(guān)注這些操作變化是否合理,是否與原先的操作方式差別太大導(dǎo)致用戶不習(xí)慣等。
信息:在了解了與既有ATS 架構(gòu)的變化,以及外部接口的變化之后,便可重點從這方面入手,首先可以更系統(tǒng)的了解車車ATS產(chǎn)品,另外,從架構(gòu)、接口的變更考慮哪些地方可能有風(fēng)險需要加強(qiáng)測試。
開發(fā)者關(guān)系:有新開發(fā)人員加入或者開發(fā)人員負(fù)責(zé)的模塊有變更之后,測試時也需要重點關(guān)注其負(fù)責(zé)的模塊。
測試團(tuán)隊:以計劃的測試人力如果無法滿足發(fā)布計劃的話,便需要提前申請更多的人力,或者根據(jù)測試條目的優(yōu)先級來調(diào)整測試計劃了。
設(shè)備與工具:Wireshark 如果沒有現(xiàn)成的帶解析工具,提前識別后,測試人員便自己可準(zhǔn)備好;PIS/PA 模擬工具沒有,也可提前看是否能開發(fā)相關(guān)工具?測試團(tuán)隊可提前識別自己需要培訓(xùn)的內(nèi)容并提交培訓(xùn)計劃并實施培訓(xùn);如果目前實驗室的硬件環(huán)境無法滿足車車通信ATS 的環(huán)境需求的話,也可提前計劃并采購。
交付品:如果需要ISA 認(rèn)證,并且為國外認(rèn)證公司的話,文檔英文化是必須的,這必然對測試的時間計劃有所影響。
HTSM給出的產(chǎn)品元素的關(guān)鍵字分別為結(jié)構(gòu)、功能、數(shù)據(jù)、接口、平臺、操作、時間,圖3 中除了這幾個關(guān)鍵字,還加入了界面及數(shù)據(jù)庫。就像前面提的,HTSM 是可定制的,可以加入任何適用本產(chǎn)品的關(guān)鍵字,因為對于ATS 是一個信號監(jiān)控系統(tǒng),界面尤其重要,所以加入了界面這個節(jié)點;其次,基于以往的經(jīng)驗,數(shù)據(jù)庫相關(guān)的操作也是經(jīng)常出現(xiàn)Bug 的地方,所以也有必要加入該節(jié)點進(jìn)行梳理。對于ATS 來說,目前平臺是基本固定的,暫時也不具備可移植性等相關(guān)特性,便可直接刪除該節(jié)點。
圖3
對ATS 的結(jié)構(gòu)進(jìn)行梳理,首先可以從與既有ATS 的結(jié)構(gòu)進(jìn)行比對開始,了解兩者的差別,再進(jìn)行內(nèi)部軟件結(jié)構(gòu)及外部系統(tǒng)接口的梳理,這樣便能對產(chǎn)品有系統(tǒng)的認(rèn)識;另外,現(xiàn)場的設(shè)備的布置也同樣重要,用戶的使用場景當(dāng)然需要了解,也能從中抽取出適用于實驗室的測試環(huán)境。
ATS 是一個功能多的大系統(tǒng),對其功能的梳理可單獨進(jìn)行,同樣,ATS 的接口也較多,接口與功能又在功能上有其關(guān)聯(lián)性,兩者可以合并進(jìn)行測試點的梳理。
對于ATS 這樣一個大系統(tǒng)來說,對于功能點的梳理,僅使用HTSM 可能還不夠,可以結(jié)合另一個測試專家邰曉梅在其《海盜派測試分析》中提出的方式MFQ 來進(jìn)行更深入、系統(tǒng)的分析和探索。
單功能(M)、功能交互(F)、質(zhì)量屬性(Q)的測試分析與測試設(shè)計,就是針對大系統(tǒng)提出的,功能多且復(fù)雜、功能交互多、質(zhì)量屬性要求高,這與ATS 的特點也非常契合。MFQ 同樣可用思維導(dǎo)圖方式,針對一個大的功能,可梳理出單個的功能M1/M2/M3/M4…,不同的功能點有交互的地方列到F 里,質(zhì)量屬性相關(guān)的列到Q 里。如何應(yīng)用MFQ,作者也給出了一個建議,即越早期的測試(LLT-Lower Level Testing),關(guān)注的測試對象可以多一些,即M 多一些,F(xiàn) 和Q 少一些,單功能的質(zhì)量有保證之后,后續(xù)更高級別的測試(HLT-High Level Testing),可以更多的關(guān)注F 和Q。如圖4所示。
圖4
回到HTSM 的產(chǎn)品元素,對于數(shù)據(jù)來說,需要確認(rèn)測試時使用的數(shù)據(jù)是真實的項目數(shù)據(jù),還是為了測試方便制作的測試數(shù)據(jù)?;跀?shù)據(jù)的測試不是產(chǎn)品測試的重點,可暫不作其他考慮。在操作上,不僅需要針對正常操作測試,也需要考慮一些異常操作和極端操作的方式,同時需要了解不同用戶的操作習(xí)慣。與時間相關(guān)的,包含運(yùn)行/操作的快/慢相關(guān)功能,變化率包含一些中斷與重連,以及某個時間點的峰值的數(shù)據(jù)量等,可支持或不可支持的并發(fā)性操作也需要整理出進(jìn)行驗證。
如圖5所示,質(zhì)量標(biāo)準(zhǔn)是我們測試很少考慮到的一方面,或者說不會特意去考慮,有些可能也不太適用于ATS 產(chǎn)品,但正因為很少從這方面入手,說不定能得到一些意想不到的結(jié)果。
圖5
質(zhì)量標(biāo)準(zhǔn)可分為開發(fā)標(biāo)準(zhǔn)和操作標(biāo)準(zhǔn),操作標(biāo)準(zhǔn)包含能力、可靠性、可用性等,開發(fā)標(biāo)準(zhǔn)包含可支持性、可測試性、可維護(hù)性、可移植性及本地化。開發(fā)標(biāo)準(zhǔn)是開發(fā)人員在設(shè)計之初就應(yīng)該要考慮的點,測試人員也可以從這幾方面確認(rèn)是否滿足這些標(biāo)準(zhǔn)并提出相應(yīng)的改進(jìn)意見。操作標(biāo)準(zhǔn)中的能力項即產(chǎn)品要實現(xiàn)的功能,已在產(chǎn)品元素章節(jié)中闡述;可靠性由RAM 團(tuán)隊負(fù)責(zé),可不包含在ATS 測試范圍內(nèi);可用性,既有的測試更多的關(guān)注在功能實現(xiàn)上,至于是否容易使用,或者是否操作簡單,可能考慮的并不多,以及為了滿足功能的安全等級,是否使得可用性變差了?吸引力,界面美不美觀?ATS 產(chǎn)品是否與其他競爭產(chǎn)品相比有其獨特性而不是重復(fù)的雷同的?這些方面確實需要測試人員更多的關(guān)注;安全性,因ATS產(chǎn)品為安全產(chǎn)品,所以更需要充分的準(zhǔn)備和測試,并需要提前準(zhǔn)備好故障注入的場景及相應(yīng)的故障注入工具,信息安全也是一方面,需要測試人員提前儲備好相關(guān)知識;可伸縮性指的是產(chǎn)品是否可規(guī)?;?,對鐵路產(chǎn)品來說目前不適用;性能,對于ATS 產(chǎn)品來說是需要重點考慮的一部分,需求中性能部分描述較簡單,可能需要更多的從經(jīng)驗入手,結(jié)合以往發(fā)生過的性能案例進(jìn)行測試設(shè)計提前發(fā)現(xiàn)性能問題;可安裝性,目前的ATS 安裝是比較繁瑣的,可了解用戶的安裝痛點并提出相應(yīng)的改進(jìn)意見;兼容性,可以從操作系統(tǒng)、硬件及與其他應(yīng)用的兼容上面來考慮。
如圖6所示,ATS 的功能測試可結(jié)合MFQ,采用不同的測試方法來進(jìn)行,測試人員需要明確的是,如何來判斷該功能是可用的,即如何判斷實現(xiàn)了該功能,同時也需要注意,不應(yīng)該實現(xiàn)不該實現(xiàn)的功能;ATS 產(chǎn)品中比如列車早晚點調(diào)整功能中早晚點的定義與數(shù)據(jù)相關(guān),可選擇域測試,采用邊界值(邊界值、典型值、常用值、無效值)來進(jìn)行測試;ATS 需要重點保證現(xiàn)場每天從早至晚按順序進(jìn)行的一系列工作,從凌晨自動建立計劃、喚醒列車、自動匹配計劃、出庫、正線運(yùn)行、回庫、洗車、休眠,這便可采用流測試;情景(場景)測試對于ATS 這種面向用戶的監(jiān)控產(chǎn)品來說也非常重要,可結(jié)合既有ATS 產(chǎn)品以往發(fā)生過問題或多條件組合情況設(shè)計場景,確保面向車車通信的ATS 產(chǎn)品能夠在這些場景下正常運(yùn)行;獲取到項目真實的用戶數(shù)據(jù),在真實用戶數(shù)據(jù)情況下進(jìn)行用戶測試;使用HTSM 測試設(shè)計模型來進(jìn)行梳理,本身就是一個基于風(fēng)險測試的過程,識別了風(fēng)險之后,測試人員需要做的就是提前規(guī)避該風(fēng)險或設(shè)計用例/場景來確認(rèn)該風(fēng)險。
圖6
HTSM 對于測試設(shè)計的意義,可通過James Bach 的培訓(xùn)教材Rapid Software Testing 中的一段話充分體現(xiàn):
測試設(shè)計以風(fēng)險驅(qū)動。測試人員分析質(zhì)量標(biāo)準(zhǔn)、項目環(huán)境、產(chǎn)品元素中的風(fēng)險,設(shè)計有針對性的測試策略。
在測試設(shè)計時,質(zhì)量標(biāo)準(zhǔn)啟發(fā)測試先知(Oracles),項目環(huán)境啟發(fā)測試過程(Procedures),產(chǎn)品元素啟發(fā)測試覆蓋(Coverage),觀察到的質(zhì)量啟發(fā)測試報告(Reporting)。
對于測試,HTSM 強(qiáng)調(diào)測試策略的多樣性(Diversification),平衡代價和收益(Cost vs.Value),利用啟發(fā)式方法(Heuristics)充分發(fā)揮測試人員的技能(Skill)。
需要注意的是,測試分析與設(shè)計不是一次性的工作。風(fēng)險是不斷變化的過程,風(fēng)險的兩個重要因素(可能性和影響力)也在不斷發(fā)生變化,這就決定了測試分析與設(shè)計的工作是需要不斷進(jìn)行,是一個在測試過程中需要不斷迭代和修改的過程。