作者 | 小新小編 | 吃不飽
由于在開(kāi)發(fā)早期階段編寫(xiě)的需求會(huì)隨著時(shí)間的推移變得不夠充分,所以需要對(duì)其進(jìn)行相應(yīng)調(diào)整。那么這時(shí)就會(huì)出現(xiàn)一個(gè)問(wèn)題:
已經(jīng)根據(jù)需求實(shí)現(xiàn)的測(cè)試也要跟著進(jìn)行調(diào)整和檢查(進(jìn)行維護(hù)),但這對(duì)測(cè)試人員來(lái)說(shuō)是相對(duì)單調(diào)且耗時(shí)的。
如何將維護(hù)工作減少到最低限度呢?
TPT作為德國(guó)PikeTec公司的嵌入式軟件測(cè)試工具,通過(guò)測(cè)試服務(wù)和客戶(hù)的建設(shè)性反饋,不斷識(shí)別工具新需求,對(duì)上述問(wèn)題提供了幾種策略。接下來(lái)將從5個(gè)方面介紹TPT是如何減少維護(hù)工作的。1. 分離測(cè)試數(shù)據(jù)和預(yù)期行為2. 使用狀態(tài)機(jī)型測(cè)試用例開(kāi)發(fā)測(cè)試3. 測(cè)試用例和評(píng)估與需求的雙向鏈接4. 巧用測(cè)試方法設(shè)計(jì)穩(wěn)健的測(cè)試5. 測(cè)試執(zhí)行的自動(dòng)化
01分離測(cè)試數(shù)據(jù)和預(yù)期行為
與傳統(tǒng)方法相比,TPT可以將測(cè)試用例(用于刺激測(cè)試對(duì)象)和對(duì)預(yù)期行為的評(píng)估進(jìn)行分離。這種方式既提高了清晰度,也在測(cè)試用例創(chuàng)建過(guò)程中節(jié)省了大量的工作。
舉個(gè)例子
當(dāng)前輸出信號(hào)d等于0,如果輸入信號(hào)a、b、c同時(shí)大于0,輸出信號(hào)d等于輸入信號(hào)a、b的和。對(duì)于傳統(tǒng)方法,根據(jù)需求和MC/DC要求編寫(xiě)如下四條測(cè)試用例:
當(dāng)使用測(cè)試工具TPT時(shí),可以將上述預(yù)期行為通過(guò)腳本、Trigger Rule等評(píng)估方法定義到Assesslet中,且其內(nèi)容對(duì)所有測(cè)試用例均可重用。
如圖1,使用Trigger Rule的While condition is true 模式進(jìn)行評(píng)估,簡(jiǎn)單介紹一下其使用方法:當(dāng)測(cè)試數(shù)據(jù)滿足Condition中的內(nèi)容時(shí),會(huì)評(píng)估Then check 中的語(yǔ)句,否則就評(píng)估Else check中的內(nèi)容。
圖1 Trigger Rule
還可以通過(guò)使用信號(hào)波形或斜坡來(lái)減少被測(cè)系統(tǒng)(SUT)的必要測(cè)試用例的數(shù)量。如下圖,將上述四條測(cè)試用例用一條表示。(預(yù)期行為如上述寫(xiě)在Assesslet中)
圖2 測(cè)試用例
另外如果我們想要增加測(cè)試深度,例如進(jìn)行邊界值測(cè)試,只需編寫(xiě)測(cè)試數(shù)據(jù)即可,因?yàn)樵贏ssesslet中已經(jīng)定義了缺失的信息和期望值。
通過(guò)上述內(nèi)容可以看到TPT提供的這種分離方法在創(chuàng)建測(cè)試用例時(shí)節(jié)省了相當(dāng)大的成本。另外在大多數(shù)情況下測(cè)試數(shù)據(jù)可以保持不變,只需要調(diào)整Assesslet,這就使得維護(hù)工作進(jìn)一步減少。
02使用狀態(tài)機(jī)型測(cè)試用例開(kāi)發(fā)測(cè)試
TPT支持步驟列表型和狀態(tài)機(jī)型的測(cè)試用例。
對(duì)于狀態(tài)機(jī)型測(cè)試用例來(lái)說(shuō),可以將重復(fù)需要的測(cè)試數(shù)據(jù)分離到狀態(tài)機(jī)的變種中。
舉個(gè)例子
開(kāi)關(guān)處于自動(dòng)檔位下,頭燈根據(jù)不同的光照強(qiáng)度,產(chǎn)生不同的變化,測(cè)試車(chē)輛的燈控功能。這里重復(fù)使用的測(cè)試數(shù)據(jù)是開(kāi)關(guān)處于自動(dòng)擋,對(duì)其創(chuàng)建狀態(tài)機(jī)和變種,如下圖所示。圖3 測(cè)試用例
如果重復(fù)使用的測(cè)試數(shù)據(jù)內(nèi)容需要更改,這時(shí)只需更改一次即可將使用該變種的測(cè)試用例全部更改,內(nèi)容更改越頻繁,節(jié)省的工作也就會(huì)越多。
03測(cè)試用例和評(píng)估與需求的雙向鏈接
TPT支持測(cè)試用例和評(píng)估與需求的雙向鏈接,在ASPICE中所有測(cè)試活動(dòng)都需要保持雙向追溯。
圖4 測(cè)試用例和評(píng)估與需求的雙向鏈接
TPT會(huì)在每次測(cè)試執(zhí)行后,將需求和測(cè)試用例,包括它們的結(jié)果,清楚地顯示在報(bào)告中。
圖5 報(bào)告顯示
如果測(cè)試失敗,可以很容易地找到相應(yīng)的需求。
圖6 未通過(guò)需求顯示
對(duì)于每個(gè)需求,可以很容易找到與之鏈接的測(cè)試用例和評(píng)估。
圖7 鏈接的測(cè)試用例和評(píng)估顯示
如果需求在生命周期中發(fā)生了改變,那么被改變的需求所鏈接的測(cè)試用例會(huì)高亮顯示,能夠方便查找,進(jìn)而減少維護(hù)時(shí)間。
圖8 測(cè)試用例突出顯示
04使用反應(yīng)式測(cè)試方法設(shè)計(jì)穩(wěn)健的測(cè)試
TPT的反應(yīng)式測(cè)試方法增加了測(cè)試對(duì)變化和環(huán)境變量的穩(wěn)健性。反應(yīng)式測(cè)試可以理解為,在測(cè)試設(shè)計(jì)中(搭建測(cè)試用例時(shí))定義只有當(dāng)SUT為已定義狀態(tài)時(shí)才執(zhí)行的動(dòng)作(在轉(zhuǎn)移線上設(shè)置判斷條件),也可以稱(chēng)為基于事件的測(cè)試。
舉個(gè)例子
當(dāng)車(chē)輛速度達(dá)到30km/h時(shí),執(zhí)行緊急制動(dòng)操作,以測(cè)試車(chē)輛的ABS功能。搭建測(cè)試用例時(shí),只需明確當(dāng)車(chē)輛達(dá)到30km/h的目標(biāo)速度時(shí),TPT會(huì)檢測(cè)到這一點(diǎn),并啟動(dòng)全面制動(dòng)即可。圖9 測(cè)試用例
前一狀態(tài)機(jī)可以切換到不同變種,轉(zhuǎn)移線和后一狀態(tài)機(jī)內(nèi)容可以不進(jìn)行調(diào)整。這樣一來(lái)就可以為測(cè)試用例搭建和維護(hù)節(jié)省時(shí)間。
圖10 變種顯示
05自動(dòng)化
我們可以發(fā)現(xiàn)測(cè)試中的許多任務(wù)都是重復(fù)的工作,例如在軟件更改后更新測(cè)試框架、日常的需求更新、將測(cè)試結(jié)果反饋到應(yīng)用程序生命周期管理工具中等。這些工作即使是在測(cè)試自動(dòng)化中也需要由測(cè)試人員手動(dòng)執(zhí)行。
但是,現(xiàn)階段TPT已經(jīng)創(chuàng)造了一些可能性來(lái)自動(dòng)化這些手動(dòng)工作:提供一個(gè)允許用戶(hù)使用自己的自動(dòng)化腳本來(lái)自動(dòng)化執(zhí)行部分工作的API接口(API Script Editor),并且TPT 中85%的GUI功能可以由用戶(hù)來(lái)實(shí)現(xiàn)自動(dòng)化。
例如
通過(guò)下圖中的腳本可以創(chuàng)建TPT工程,生成狀態(tài)機(jī)型的測(cè)試用例。圖11 API Script Editor 內(nèi)容
圖12 執(zhí)行API Script生成的工程
除此以外,還可以通過(guò)API Script實(shí)現(xiàn)平臺(tái)配置,測(cè)試評(píng)估等功能。
06總結(jié)
本文介紹了使用TPT將維護(hù)工作減少到最低限度的五種方法,但TPT的優(yōu)勢(shì)不僅限于以上內(nèi)容,想了解更多請(qǐng)聯(lián)系我們吧。
-
測(cè)試
+關(guān)注
關(guān)注
8文章
5303瀏覽量
126666 -
TPT
+關(guān)注
關(guān)注
0文章
23瀏覽量
6986
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論