如果你快速瀏覽互聯(lián)網(wǎng),你會很快發(fā)現(xiàn)有100多種不同類型的測試可以在你的嵌入式設(shè)備上執(zhí)行。一個健壯的嵌入式系統(tǒng)將被持續(xù)測試。讓我們仔細(xì)看看其中的一些測試,看看哪五項(xiàng)測試對于每個嵌入式設(shè)備都是絕對必要的。
必備測試1:單元測試
單元測試是任何測試策略的基礎(chǔ)。它們旨在測試應(yīng)用程序的最小構(gòu)建塊。它們通常針對單個的功能,并驗(yàn)證被測試的功能是否做了它應(yīng)該做的事情。
嵌入式設(shè)備的單元測試可能有點(diǎn)棘手。嵌入式軟件不僅有應(yīng)用程序代碼,還有與硬件相關(guān)的代碼。作為一個團(tuán)隊(duì),你必須決定你的單元測試進(jìn)行到什么程度。例如,你有如下幾種選擇:
l 僅對你的應(yīng)用程序代碼進(jìn)行單元測試。
l 單元測試一切,但使用硬件交互模擬。
l 甚至在目標(biāo)硬件上進(jìn)行單元測試。
嵌入式開發(fā)人員需要對應(yīng)用程序代碼進(jìn)行單元測試。一個好的硬件抽象層將有助于確定應(yīng)用程序與硬件的結(jié)合點(diǎn)。
必備測試2:集成測試
一旦你通過了單元測試,并且知道你的基礎(chǔ)工作正常,你就可以在這些組件協(xié)同工作時(shí)開始測試它們了。集成測試將兩個或多個組件結(jié)合在一起,以確保它們能夠正確地協(xié)同工作。
集成測試幫助你找出組件之間是否有任何奇怪的交互。你可能會發(fā)現(xiàn)它們在單獨(dú)工作時(shí)工作得很好,但是當(dāng)它們試圖一起工作時(shí)就會出現(xiàn)缺陷。通常,這是由記錄不良的需求或無法預(yù)見的復(fù)雜交互引起的。
不幸的是,嵌入式系統(tǒng)行業(yè)缺乏集成測試。團(tuán)隊(duì)在單元測試方面做得越來越好,但是他們經(jīng)常跳過集成,直接進(jìn)入系統(tǒng)測試。集成測試為你提供了一種中間機(jī)制,以確保在你開始系統(tǒng)級測試之前軟件能夠正常工作。
必備測試3:系統(tǒng)測試
系統(tǒng)級測試包括將嵌入式設(shè)備作為完全集成的系統(tǒng)運(yùn)行,以評估其是否符合特定要求。系統(tǒng)測試包括功能測試和非功能測試,旨在驗(yàn)證系統(tǒng)的行為、性能等。
值得注意的是,這些測試通常側(cè)重于在真實(shí)場景和環(huán)境中證明可靠性。你不一定要證明系統(tǒng)在所有條件下都能工作,只要證明設(shè)備在預(yù)期的條件下工作即可。
在系統(tǒng)級別,有幾種方法可以測試系統(tǒng):
l 透明盒測試
l 不透明盒測試
透明盒測試包括測試應(yīng)用程序的內(nèi)部工作,而不是它的功能。測試人員通過代碼選擇執(zhí)行路徑的輸入,并確定適當(dāng)?shù)妮敵觥_@種類型的測試需要了解系統(tǒng)的內(nèi)部邏輯。可以想象,它需要來自設(shè)計(jì)者和開發(fā)者的輸入來使系統(tǒng)測試成功。
不透明盒測試是一種軟件測試方法,它檢查應(yīng)用程序的功能,而不檢查其內(nèi)部結(jié)構(gòu)或工作方式。這種類型的測試關(guān)注軟件系統(tǒng)的輸入和輸出,并且基于需求和規(guī)范。開發(fā)人員不需要做這種類型的測試。相反,質(zhì)量保證團(tuán)隊(duì)可以根據(jù)所提供的需求來設(shè)計(jì)和運(yùn)行測試。
最終目標(biāo)是證明系統(tǒng)在期望的環(huán)境和用戶條件下正常工作。
必備測試4:性能測試
如果你正在設(shè)計(jì)嵌入式產(chǎn)品,實(shí)時(shí)性能總是很重要。你的系統(tǒng)能按時(shí)完成嗎?如果將來添加功能,是否有足夠的CPU周期來處理它們?你的CPU是不是刷爆了?
性能測試是為了確定系統(tǒng)在特定工作負(fù)載下的速度、響應(yīng)能力和穩(wěn)定性。雖然它不像單元測試那樣具有基礎(chǔ)性,但確保客戶對你的產(chǎn)品有良好的體驗(yàn)仍然是至關(guān)重要的。
建議嵌入式開發(fā)團(tuán)隊(duì)在整個開發(fā)周期中描述他們系統(tǒng)的性能,以確保他們在正確的軌道上。如果添加了一個比預(yù)期使用更多CPU的特性,它可以被快速優(yōu)化,而不是在周期結(jié)束時(shí)。
必備測試5:用戶驗(yàn)收測試
最后一個必須進(jìn)行的測試,也許是最重要的一個,是用戶接受度測試。用戶驗(yàn)收測試確定系統(tǒng)是否滿足業(yè)務(wù)需求和要求,通常由最終用戶或客戶在系統(tǒng)上線前執(zhí)行。
如果客戶不接受該設(shè)備,那么你的工程團(tuán)隊(duì)沒有問題,整個公司都有問題!出于這個原因,包含用戶驗(yàn)收測試是一個好主意。事實(shí)上,建議你盡早并經(jīng)常讓你的客戶參與進(jìn)來!
是的,客戶確實(shí)會改變他們的想法,并導(dǎo)致一些需求變動和波動,但最終,他們是我們試圖讓他們高興的人。如果你能在整個開發(fā)周期中得到他們的反饋,產(chǎn)品成功上市的機(jī)會將會大大增加。
結(jié)語
測試并不簡單,但是如果你從這些簡單的步驟開始,你將走在正確的方向上。