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