最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

誰更勝一籌?嵌入式軟件測試 VS 一般軟件測試

2022-09-29 22:33 作者:專業(yè)專一  | 我要投稿


圖片
圖片

隨著計算機技術(shù)的普及,軟件系統(tǒng)已經(jīng)深入到生活的各個方面,從普通的計算機軟件,到銀行或超市的終端系統(tǒng),甚至到手機的軟件系統(tǒng)。對軟件的質(zhì)量要求也在不斷提高,軟件測試及其技術(shù)也有了飛速發(fā)展。

在對軟件測試技術(shù)相關(guān)基本概念研究解析的基礎(chǔ)上,分析軟件測試起源與發(fā)展,保證軟件產(chǎn)品的質(zhì)量、提高產(chǎn)品的可靠性。對于嵌入式軟件系統(tǒng),因其多樣性,基于操作系統(tǒng),使用的開發(fā)環(huán)境,微控制器都是日益繁多的,所以嵌入式軟件測試與普通軟件測試相比有其自身的特點。


01

圖片

什么是軟件測試


圖片


軟件測試,即Software Testing。在軟件生產(chǎn)過程中,手工或者利用軟件測試工具有計劃地根據(jù)程序代碼和用戶文檔,檢查軟件功能和性能,從而發(fā)現(xiàn)軟件產(chǎn)品中存在的問題(bug),并追蹤和驗證缺陷(bug)的處理。測試用例通常是從無限執(zhí)行域中適當(dāng)選取的。軟件測試是對軟件形成過程中的所有工作產(chǎn)品(包括程序以及相關(guān)文檔)進(jìn)行的測試,而不僅僅是對程序的運行進(jìn)行測試。

1、測試的目的

不是沒有錯誤,而是軟件產(chǎn)品經(jīng)過發(fā)布之后,雖然有缺陷,但是用戶可以接受和容忍的。

2、軟件測試的特點

◇?大多數(shù)硬件實驗失敗的方式和方法是固定的,而軟件測試失敗則是毫無規(guī)律的,探索所有軟件測試失敗的模式是不可能的。
◇ 軟件方面的許多缺陷都源于設(shè)計和實現(xiàn)上的錯誤,而不是源于生產(chǎn)制造方面的缺陷?!?軟件質(zhì)量保證的關(guān)鍵在于我們?nèi)绾伪苊忮e誤的產(chǎn)生和消除已經(jīng)產(chǎn)生的錯誤,使程序中的錯誤密度達(dá)到盡可能低的程度?!?軟件測試是一個動態(tài)的執(zhí)行過程,體現(xiàn)在輸入、行為和行為的輸出結(jié)果上。

◇ 軟件測試是一個有限的集合。

3、軟件測試信息流

圖片


嵌入式軟件測和普通軟件測試對象相同,包括軟件中所有內(nèi)容,貫穿軟件定義與開發(fā)的整個過程。

4、軟件測試的對象

需求分析、概要設(shè)計、詳細(xì)設(shè)計、程序編碼等各階段所得到的文檔及源程序,包括需求規(guī)格說明、概要設(shè)計規(guī)格說明、詳細(xì)設(shè)計規(guī)格說明以及源程序。

嵌入式軟件的開發(fā)和測試也就與普通軟件的開發(fā)和測試策略有了很大的不同,嵌入式軟件系統(tǒng)是一種針對特殊任務(wù)、特殊環(huán)境而進(jìn)行特殊設(shè)計的定制產(chǎn)品,有其專門的開發(fā)環(huán)境、軟硬件緊密結(jié)合、嚴(yán)格的實時要求等特點。使得嵌入式軟件測試與普通軟件測試雖有相似之處,但也有其自身獨特的特點。


02

圖片

嵌入式軟件測試


圖片


嵌入式軟件是一種比較特殊的軟件,軟件經(jīng)過分析、設(shè)計、編碼后只有燒入硬件環(huán)境中才可以看見,比如數(shù)字電視的中間件軟件,洗衣機的自動控制軟件,手機游戲軟件等等。
1、嵌入式軟件測試
嵌入式軟件測試/嵌入式測試或叫交叉測試(cross-test),其目的與普通軟件測試是相同的,都是為了發(fā)現(xiàn)軟件缺陷,而后修正缺陷以提高軟件的可靠性。嵌入式系統(tǒng)安全性的失效可能會導(dǎo)致災(zāi)難性的后果,即使非安全性失效,由于其應(yīng)用場合特殊也會導(dǎo)致重大經(jīng)濟損失。因此,往往嵌入式軟件對可靠性的要求比普通軟件高。這就要求對嵌入式軟件進(jìn)行嚴(yán)格的測試、確認(rèn)和驗證,以提高產(chǎn)品的可靠性。2、嵌入式軟件測試的特點◇?嵌入式軟件測試是在特定的硬件環(huán)境下才能運行的軟件。◇ 嵌入式軟件測試除了要保證嵌入式軟件在特定環(huán)境下運行的高可靠性,還要保證嵌入式軟件系統(tǒng)的實時性?!?嵌入式軟件產(chǎn)品為了滿足高可靠性的要求,不允許內(nèi)存在運行時有泄漏等情況發(fā)生,因此嵌入式軟件測試除了對軟件進(jìn)行性能測試、GUI測試、覆蓋分析測試是同普通軟件測試一樣都不可或缺之外,還要對內(nèi)存進(jìn)行測試?!?嵌入式產(chǎn)品不同于一般軟件產(chǎn)品,在嵌入式軟件和硬件集成測試完成之后,并不代表測試全部完成,在第一件嵌入式產(chǎn)品生產(chǎn)出來之后,還需對其進(jìn)行產(chǎn)品測試。

◇ 嵌入式軟件測試的最終目的是使嵌入式產(chǎn)品在能夠滿足所有功能的同時安全可靠的進(jìn)行。


03

圖片

嵌入式軟件測試與普通方軟件測試的區(qū)別


圖片


由于嵌入式系統(tǒng)的自身特點,如實時性(Real-timing),內(nèi)存不豐富,I/O通道少,開發(fā)工具昂貴,并且與硬件緊密相關(guān),CPU種類繁多,等等。嵌入式軟件的開發(fā)和測試也就與一般商用軟件的開發(fā)和測試策略有了很大的不同,可以說嵌入式軟件是最難測試的一種軟件。
嵌入式系統(tǒng)由于上述特點,決定了不同的嵌入式系統(tǒng)必須有不同的測試方法。1、?嵌入式軟件測試的各個階段測試的環(huán)境是不一樣的嵌入式軟件開發(fā)和運行的環(huán)境是分開的,嵌入式軟件開發(fā)環(huán)境往往是交叉開發(fā)環(huán)境。因此,各個階段測試的環(huán)境是不一樣的。● 交叉開發(fā)

交叉開發(fā)是指先在一臺通用PC上進(jìn)行軟件的編輯、編譯與連接,然后下載到嵌入式設(shè)備中運行調(diào)試的開發(fā)過程。通用PC稱為宿主機,嵌入式設(shè)備稱為目標(biāo)機。


● 交叉開發(fā)環(huán)境

交叉開發(fā)環(huán)境(Cross Development Environment)是指編譯、連接和調(diào)試嵌入式應(yīng)用軟件的環(huán)境。它與運行嵌入式應(yīng)用軟件的環(huán)境有所不同,通常采用“宿主機——目標(biāo)機”模式。

開放的交叉開發(fā)環(huán)境的典型代表是:GNU工具鏈。它能夠支持X86、ARM、MIPS、PowerPC等多種處理器。


● 交叉編譯

在一種平臺上編譯出能夠在另一種平臺(體系結(jié)構(gòu)不同)上運行的程序。用來編譯這種程序的編譯器就叫做交叉編譯器。


● GUN工具鏈

GNU工具鏈 (GNU Toolchain) 是一組用于開發(fā)應(yīng)用程序和操作系統(tǒng)的編程工具的集合,這些工具構(gòu)成了一個完整的系統(tǒng)。GNU工具鏈包括GCC、GNU Binutils、GNUm4、GNU Autoconf和GNU make等部分。


1.1單元測試階段所有的單元測試基本都可以在宿主機環(huán)境下進(jìn)行,只有個別情況下會特別指定單元測試要直接在目標(biāo)機環(huán)境下進(jìn)行。應(yīng)該最大化在宿主機環(huán)境下進(jìn)行軟件測試的比例,通過盡可能小的目標(biāo)單元訪問其指定的目標(biāo)單元界面,提高單元的有效性和針對性。在宿主機平臺上運行測試的速度比在目標(biāo)機平臺上快得多,當(dāng)在宿主機平臺上完成測試后可以在目標(biāo)機環(huán)境下重復(fù)做一次簡單的確認(rèn)測試,確認(rèn)測試結(jié)果在宿主機和目標(biāo)機上沒有不同**。在目標(biāo)機環(huán)境下進(jìn)行確認(rèn)測試將確定一些未知的、未預(yù)料到的、未說明的宿主機與目標(biāo)機的不同之處**,例如,目標(biāo)機編譯器可能有缺陷,但在宿主機編譯器上沒有。1.2 集成測試階段軟件集成也可在宿主機環(huán)境下完成,在宿主機平臺上模擬目標(biāo)環(huán)境運行,在此級別上的確認(rèn)測試可以確定一些與環(huán)境有關(guān)的問題,比如內(nèi)存定位和分配方面的一些錯誤。在宿主機環(huán)境上的集成測試的使用,依賴于目標(biāo)系統(tǒng)的具體功能有多少。有些嵌入式系統(tǒng)與目標(biāo)機環(huán)境耦合的非常緊密,這種情況下就不適合在宿主機環(huán)境下進(jìn)行集成。對于一個大型的軟件開發(fā)而言,集成可以分幾個級別。低級別的軟件集成在宿主機平臺上完成有很大優(yōu)勢,級別越高,集成越依賴于目標(biāo)環(huán)境。1.3 系統(tǒng)測試和確認(rèn)測試所有的系統(tǒng)測試和確認(rèn)測試必須在目標(biāo)機環(huán)境下執(zhí)行。當(dāng)然在宿主機上開發(fā)和執(zhí)行系統(tǒng)測試,然后移植到目標(biāo)機環(huán)境重復(fù)執(zhí)行是很方便的。對目標(biāo)系統(tǒng)的依賴性會妨礙將宿主機上的系統(tǒng)測試移植到目標(biāo)系統(tǒng)上,況且只有少數(shù)開發(fā)者會卷入系統(tǒng)測試,所以有時放棄在宿主機上執(zhí)行系統(tǒng)測試可能更方便。確認(rèn)測試最終必須在目標(biāo)機環(huán)境中進(jìn)行,因為系統(tǒng)的確認(rèn)必須在真實系統(tǒng)下完成,而不能在宿主機環(huán)境下模擬,這關(guān)系到嵌入式軟件的最終使用。

圖片


2、嵌入式軟件測試的復(fù)雜多樣因為嵌入式系統(tǒng)的一個突出的特點,是其專用性,即一個嵌入式系統(tǒng)只進(jìn)行特定的一項或幾項工作,嵌入式軟件運行的平臺都是為進(jìn)行這些工作而開發(fā)出來的專用硬件電路,他們的體系結(jié)構(gòu)、硬件電路,甚至所用的元器件都是不一樣的,所以嵌入式軟件運行的平臺也是復(fù)雜多樣的。由于開發(fā)平臺的復(fù)雜多樣性,使得嵌入式軟件的測試從測試環(huán)境的建立到測試用例的編寫也是復(fù)雜多樣的。與不同的開發(fā)平臺對應(yīng)的嵌入式軟件是肯定不相同的。嵌入式軟件測試在一定程度的上并不只是對嵌入式軟件的測試,很多情況下是對嵌入式軟件在開發(fā)平臺中同硬件的兼容性測試。因此,對于任何一套嵌入式軟件系統(tǒng),都需要有其自己的測試、創(chuàng)建其自己的測試環(huán)境、編寫其自己的測試用例。3、嵌入式軟件測試中對實時性有嚴(yán)格要求由于嵌入式系統(tǒng)的實時性,決定了嵌入式系統(tǒng)的運行時間也是受嚴(yán)格限制的。嵌入式軟件在測試時應(yīng)當(dāng)充分考慮系統(tǒng)實時響應(yīng)的問題,很多嵌入式系統(tǒng)會要求系統(tǒng)的響應(yīng)時間應(yīng)在多少毫秒之內(nèi)。在測試有嚴(yán)格響應(yīng)時間要求的嵌入式系統(tǒng)時,要做負(fù)載測試。4、嵌入式軟件測試需要進(jìn)行插樁測試嵌入式軟件最終的測試需要在目標(biāo)機平臺上進(jìn)行,在對目標(biāo)機進(jìn)行測試時,我們需要對在宿主機上編譯通過的代碼進(jìn)行插樁處理。插樁完成之后,需要重新對代碼進(jìn)行編譯,如果編譯通過,就可以將編譯好的代碼下載到目標(biāo)機上執(zhí)行。在目標(biāo)機執(zhí)行程序的時候,需要將插樁時預(yù)測好的數(shù)據(jù)返回到宿主機上,因此,宿主機和目標(biāo)機上要有能夠相互傳遞數(shù)據(jù)的網(wǎng)線或者串口線,宿主機上同時要有能夠處理返回的數(shù)據(jù)的處理程序或軟件。插樁技術(shù):指在保證原有程序邏輯完整性的基礎(chǔ)上,在程序中插入探針,通過探針采集代碼中的信息(方法本身、方法參數(shù)值、返回值等)在特定的位置插入代碼段,從而收集程序運行時的動態(tài)上下文信息。5、嵌入式軟件對系統(tǒng)的可靠性和安全性要求比一般的軟件系統(tǒng)高因為嵌入式軟件對系統(tǒng)的可靠性和安全性要求比一般的軟件系統(tǒng)高,所以還需要進(jìn)行系統(tǒng)的可靠性測試。對于不同的嵌入式系統(tǒng),需要制定相應(yīng)的符合系統(tǒng)需求的可靠級別,在進(jìn)行可靠性測試時應(yīng)該將系統(tǒng)的可靠性級別考慮進(jìn)去。


誰更勝一籌?嵌入式軟件測試 VS 一般軟件測試的評論 (共 條)

分享到微博請遵守國家法律
筠连县| 大厂| 临沭县| 都昌县| 会昌县| 和田市| 罗城| 白朗县| 石阡县| 长寿区| 泸溪县| 红安县| 沭阳县| 枣庄市| 桂平市| 宜昌市| 嫩江县| 宁津县| 贵定县| 清丰县| 河津市| 阳春市| 梨树县| 平利县| 青州市| 蒲江县| 峡江县| 长乐市| 宁安市| 营口市| 灵川县| 山西省| 遂溪县| 新河县| 昌邑市| 聊城市| 南郑县| 濉溪县| 敦煌市| 依安县| 庆阳市|