對(duì)于嵌入式或本地解決方案來說,軟件測(cè)試似乎是一件令人頭疼的事情,但事實(shí)并非如此!
當(dāng)然軟件測(cè)試也有挑戰(zhàn)。時(shí)間和資源的限制會(huì)限制測(cè)試的級(jí)別,而且測(cè)試很難模擬所有真實(shí)世界的場(chǎng)景和極端情況,這可能導(dǎo)致缺陷在發(fā)布后修復(fù)成本最高的階段被發(fā)現(xiàn)。
測(cè)試是向市場(chǎng)交付功能齊全且可靠的解決方案的關(guān)鍵步驟,因此建立和維護(hù)測(cè)試制度可能非常耗時(shí)、復(fù)雜、昂貴,這是合理的。不幸的是,業(yè)務(wù)壓力可能意味著測(cè)試被簡(jiǎn)化,或者不被重視,這只會(huì)把問題推到未來。
一個(gè)全面的軟件測(cè)試解決方案的好處是顯而易見的。首先,良好的測(cè)試方法有助于及時(shí)發(fā)現(xiàn)和修復(fù)代碼中的錯(cuò)誤。消除錯(cuò)誤可以避免現(xiàn)場(chǎng)的功能故障,并減少產(chǎn)生安全漏洞的風(fēng)險(xiǎn)。更重要的是,它可以幫助避免產(chǎn)品負(fù)面評(píng)論。
從開發(fā)團(tuán)隊(duì)的角度來看,軟件測(cè)試確保交付指定的功能,并最終幫助我們向市場(chǎng)交付可靠的產(chǎn)品。
測(cè)試的類型
單元測(cè)試:?jiǎn)为?dú)測(cè)試軟件的各個(gè)組件或單元,以確保正確性和功能。這些單元可以是單個(gè)函數(shù)或更復(fù)雜的算法,但通常會(huì)在開發(fā)周期中隨著時(shí)間的推移而構(gòu)建。指令模擬器或在線調(diào)試器可以通過與MCU外設(shè)交互實(shí)現(xiàn)單元測(cè)試。對(duì)于計(jì)算功能,可以使用指令集模擬器,如SEGGER emSim。
集成測(cè)試:隨著開發(fā)開始構(gòu)建,我們進(jìn)入集成測(cè)試階段,需要測(cè)試更復(fù)雜的多功能算法??梢允褂门c單元測(cè)試類似的原理,但隨著對(duì)MCU外設(shè)功能的訪問變得至關(guān)重要,轉(zhuǎn)向在線測(cè)試(如J-Link commander)更為常見。
功能測(cè)試:這種類型的測(cè)試評(píng)估軟件是否滿足指定的功能需求。它包括測(cè)試發(fā)布軟件的不同特性和功能,可以根據(jù)用戶界面的復(fù)雜程度自動(dòng)完成。
回歸測(cè)試:回歸測(cè)試確保對(duì)軟件的更改或更新不會(huì)對(duì)現(xiàn)有功能產(chǎn)生不利影響。它可以包括上述所有方法。
用戶驗(yàn)收測(cè)試(UAT):UAT包括終端用戶對(duì)軟件進(jìn)行測(cè)試,以確保軟件滿足他們的需求和期望。
快速看一下單元測(cè)試
實(shí)施有效的單元測(cè)試,應(yīng)該遵循某些最佳實(shí)踐。測(cè)試用例應(yīng)該涵蓋一系列場(chǎng)景,包括典型用例和邊緣用例。測(cè)試應(yīng)該是自動(dòng)化的,使它們能夠在沒有人工干預(yù)的情況下頻繁地執(zhí)行。
如前所述,使用指令集模擬器(如SEGGER emSim)可以在嵌入式體系結(jié)構(gòu)上進(jìn)行測(cè)試,而不是依賴于可能隱藏諸如可變大小和庫約束等問題的PC應(yīng)用。
如何使用emSim設(shè)置一個(gè)簡(jiǎn)單的單元測(cè)試
首先需要下載并安裝最新版本的Embedded Studio,它包含了一個(gè)完整的開發(fā)套件(編輯器、編譯器等)以及emSim。Embedded Studio可以在Windows、macOS和Linux平臺(tái)上進(jìn)行評(píng)估,針對(duì)商業(yè)用途提供了靈活的許可模式。
接下來,我們編寫要測(cè)試的功能,并將其封裝在單元測(cè)試中。下面是一個(gè)非常簡(jiǎn)單的例子,增加一個(gè)字符并測(cè)試返回值。我們可能期望這對(duì)函數(shù)的所有輸入都有效,但當(dāng)輸入超過8位字符值時(shí),邏輯將失敗。
其中function_to_test()是要測(cè)試的代碼,其參數(shù)test_val從命令行傳遞到測(cè)試單元中。然后對(duì)返回值ret進(jìn)行測(cè)試,在本例中是傳遞給測(cè)試函數(shù)的變量的增量。
一旦單元測(cè)試按預(yù)期工作,下一步就是準(zhǔn)備一個(gè)腳本來測(cè)試一系列輸入值。下面是一個(gè)例子,但是這也可以被內(nèi)置到單元測(cè)試中:
它返回以下內(nèi)容,可以根據(jù)需要進(jìn)行進(jìn)一步處理。
如果您希望在實(shí)際目標(biāo)硬件上集成單元測(cè)試,那么最后一步是通過腳本化的emSim測(cè)試配置(J-Run),基于J-Link調(diào)試器訪問芯片和部外設(shè)。
還可以通過設(shè)置斷點(diǎn)來退出測(cè)試并生成指令跟蹤輸出來擴(kuò)展測(cè)試。
emSim是作為SEGGER Embedded Studio的一部分提供的,運(yùn)行在Windows、MAC和Linux平臺(tái)上,支持各種ARM架構(gòu)的,包括ARM64、v4t、v5te、v6、v6m、v7m、v7em、v7r、v7a、v8a、v8r、v8m_baseline、v8m_mainline、v8.1m_mainline,可以通過在命令行中添加-arch來配置。
使用emSim可以基于最適合您需求的主機(jī)平臺(tái)和目標(biāo)體系結(jié)構(gòu),開始單元測(cè)試。
審核編輯:湯梓紅
-
嵌入式
+關(guān)注
關(guān)注
5052文章
18912瀏覽量
300813 -
自動(dòng)化測(cè)試
+關(guān)注
關(guān)注
0文章
200瀏覽量
26875 -
軟件測(cè)試
+關(guān)注
關(guān)注
2文章
221瀏覽量
18533 -
模擬器
+關(guān)注
關(guān)注
2文章
862瀏覽量
43087
原文標(biāo)題:使用emSim輕松地進(jìn)行自動(dòng)化測(cè)試
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論