資料介紹
部分軟件開(kāi)發(fā)項(xiàng)目依靠結(jié)合代碼檢查、結(jié)構(gòu)測(cè)試和功能測(cè)試來(lái)識(shí)別軟件缺陷。盡管這些傳統(tǒng)技術(shù)非常重要,而且能發(fā)現(xiàn)大多數(shù)軟件問(wèn)題,但它們無(wú)法檢查出當(dāng)今復(fù)雜系統(tǒng)中的許多共性錯(cuò)誤。本文將介紹如何避免那些隱蔽然而常見(jiàn)的錯(cuò)誤,并介紹的幾個(gè)技巧幫助工程師發(fā)現(xiàn)軟件中隱藏的錯(cuò)誤。
結(jié)構(gòu)測(cè)試或白盒測(cè)試能有效地發(fā)現(xiàn)代碼中的邏輯、控制流、計(jì)算和數(shù)據(jù)錯(cuò)誤。這項(xiàng)測(cè)試要求對(duì)軟件的內(nèi)部工作能夠一覽無(wú)遺(因此稱(chēng)為“白盒”或“玻璃盒”),以便了解軟件結(jié)構(gòu)的詳細(xì)情況。它檢查每個(gè)條件表達(dá)式、數(shù)學(xué)操作、輸入和輸出。由于需要測(cè)試的細(xì)節(jié)眾多,結(jié)構(gòu)測(cè)試每次檢查一個(gè)軟件單元,通常為一個(gè)函數(shù)或類(lèi)。
代碼審查也使用與實(shí)現(xiàn)缺陷和潛在問(wèn)題查找同樣復(fù)雜的技術(shù)。與白盒測(cè)試一樣,審查通常針對(duì)軟件的各個(gè)單元進(jìn)行,因?yàn)橐粋€(gè)有效的審查過(guò)程要求的是集中而詳盡的檢查。
與審查和白盒測(cè)試不同,功能測(cè)試或黑盒測(cè)試假設(shè)對(duì)軟件的實(shí)現(xiàn)一無(wú)所知,它測(cè)試由受控輸入所驅(qū)動(dòng)的輸出。功能測(cè)試由測(cè)試人員或開(kāi)發(fā)人員所編寫(xiě)的測(cè)試過(guò)程組成,它們規(guī)定了一組特定程序輸入對(duì)應(yīng)的預(yù)期程序輸出。測(cè)試運(yùn)行之后,測(cè)試人員將實(shí)際輸出與預(yù)期輸出進(jìn)行比較,查找問(wèn)題。黑盒測(cè)試可以有效地找出未能實(shí)現(xiàn)的需求、接口問(wèn)題、性能問(wèn)題和程序最常用功能中的錯(cuò)誤。
雖然將這些技術(shù)結(jié)合起來(lái)可以找出隱藏在一個(gè)特定軟件程序中的大部分錯(cuò)誤,但它們也有局限。代碼審查和白盒測(cè)試每次只針對(duì)一小部分代碼,忽視了系統(tǒng)的其它部分。黑盒測(cè)試通常將系統(tǒng)作為一個(gè)整體來(lái)處理,忽視了實(shí)現(xiàn)的細(xì)節(jié)。一些重要的問(wèn)題只有在集中考察它們?cè)谡麄€(gè)系統(tǒng)內(nèi)相互作用時(shí)的細(xì)節(jié)才能被發(fā)現(xiàn);傳統(tǒng)的方法無(wú)法可靠地找出這些問(wèn)題。必須整體地檢查軟件系統(tǒng),查找具體問(wèn)題的特定原因。由于詳盡徹底地分析程序中的每個(gè)細(xì)節(jié)和它與代碼中所有其它部分之間的相互作用通常是不大可能的,因此分析應(yīng)該針對(duì)程序中已經(jīng)知道可能導(dǎo)致問(wèn)題的特定方面。本文將探討其中三個(gè)潛在的問(wèn)題領(lǐng)域:
* 堆棧溢出
* 競(jìng)爭(zhēng)條件
* 死鎖
讀者可在網(wǎng)上閱讀本文的第二部分,它將探討下列問(wèn)題:
* 時(shí)序問(wèn)題
* 可重入條件
在采用多任務(wù)實(shí)時(shí)設(shè)計(jì)技術(shù)的系統(tǒng)中,以上所有問(wèn)題都相當(dāng)普遍。
一、堆棧溢出
處理器使用堆棧來(lái)存儲(chǔ)臨時(shí)變量、向被調(diào)函數(shù)傳遞參數(shù)、保存線程“狀態(tài)”,等等。如果系統(tǒng)不使用虛擬內(nèi)存(換句話說(shuō),它不能將內(nèi)存頁(yè)面轉(zhuǎn)移到磁盤(pán)上以釋放內(nèi)存空間供其它用途),堆棧將固定為產(chǎn)品出廠時(shí)的大小。如果由于某種原因堆棧越出了編程人員所分配的數(shù)量范圍,程序?qū)⒆兊貌淮_定。這種不穩(wěn)定可能導(dǎo)致系統(tǒng)發(fā)生嚴(yán)重故障。因此,確保系統(tǒng)在最壞情況下能夠分配到足夠的堆棧至關(guān)重要。
結(jié)構(gòu)測(cè)試或白盒測(cè)試能有效地發(fā)現(xiàn)代碼中的邏輯、控制流、計(jì)算和數(shù)據(jù)錯(cuò)誤。這項(xiàng)測(cè)試要求對(duì)軟件的內(nèi)部工作能夠一覽無(wú)遺(因此稱(chēng)為“白盒”或“玻璃盒”),以便了解軟件結(jié)構(gòu)的詳細(xì)情況。它檢查每個(gè)條件表達(dá)式、數(shù)學(xué)操作、輸入和輸出。由于需要測(cè)試的細(xì)節(jié)眾多,結(jié)構(gòu)測(cè)試每次檢查一個(gè)軟件單元,通常為一個(gè)函數(shù)或類(lèi)。
代碼審查也使用與實(shí)現(xiàn)缺陷和潛在問(wèn)題查找同樣復(fù)雜的技術(shù)。與白盒測(cè)試一樣,審查通常針對(duì)軟件的各個(gè)單元進(jìn)行,因?yàn)橐粋€(gè)有效的審查過(guò)程要求的是集中而詳盡的檢查。
與審查和白盒測(cè)試不同,功能測(cè)試或黑盒測(cè)試假設(shè)對(duì)軟件的實(shí)現(xiàn)一無(wú)所知,它測(cè)試由受控輸入所驅(qū)動(dòng)的輸出。功能測(cè)試由測(cè)試人員或開(kāi)發(fā)人員所編寫(xiě)的測(cè)試過(guò)程組成,它們規(guī)定了一組特定程序輸入對(duì)應(yīng)的預(yù)期程序輸出。測(cè)試運(yùn)行之后,測(cè)試人員將實(shí)際輸出與預(yù)期輸出進(jìn)行比較,查找問(wèn)題。黑盒測(cè)試可以有效地找出未能實(shí)現(xiàn)的需求、接口問(wèn)題、性能問(wèn)題和程序最常用功能中的錯(cuò)誤。
雖然將這些技術(shù)結(jié)合起來(lái)可以找出隱藏在一個(gè)特定軟件程序中的大部分錯(cuò)誤,但它們也有局限。代碼審查和白盒測(cè)試每次只針對(duì)一小部分代碼,忽視了系統(tǒng)的其它部分。黑盒測(cè)試通常將系統(tǒng)作為一個(gè)整體來(lái)處理,忽視了實(shí)現(xiàn)的細(xì)節(jié)。一些重要的問(wèn)題只有在集中考察它們?cè)谡麄€(gè)系統(tǒng)內(nèi)相互作用時(shí)的細(xì)節(jié)才能被發(fā)現(xiàn);傳統(tǒng)的方法無(wú)法可靠地找出這些問(wèn)題。必須整體地檢查軟件系統(tǒng),查找具體問(wèn)題的特定原因。由于詳盡徹底地分析程序中的每個(gè)細(xì)節(jié)和它與代碼中所有其它部分之間的相互作用通常是不大可能的,因此分析應(yīng)該針對(duì)程序中已經(jīng)知道可能導(dǎo)致問(wèn)題的特定方面。本文將探討其中三個(gè)潛在的問(wèn)題領(lǐng)域:
* 堆棧溢出
* 競(jìng)爭(zhēng)條件
* 死鎖
讀者可在網(wǎng)上閱讀本文的第二部分,它將探討下列問(wèn)題:
* 時(shí)序問(wèn)題
* 可重入條件
在采用多任務(wù)實(shí)時(shí)設(shè)計(jì)技術(shù)的系統(tǒng)中,以上所有問(wèn)題都相當(dāng)普遍。
一、堆棧溢出
處理器使用堆棧來(lái)存儲(chǔ)臨時(shí)變量、向被調(diào)函數(shù)傳遞參數(shù)、保存線程“狀態(tài)”,等等。如果系統(tǒng)不使用虛擬內(nèi)存(換句話說(shuō),它不能將內(nèi)存頁(yè)面轉(zhuǎn)移到磁盤(pán)上以釋放內(nèi)存空間供其它用途),堆棧將固定為產(chǎn)品出廠時(shí)的大小。如果由于某種原因堆棧越出了編程人員所分配的數(shù)量范圍,程序?qū)⒆兊貌淮_定。這種不穩(wěn)定可能導(dǎo)致系統(tǒng)發(fā)生嚴(yán)重故障。因此,確保系統(tǒng)在最壞情況下能夠分配到足夠的堆棧至關(guān)重要。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 基于嵌入式WEB的電站數(shù)據(jù)動(dòng)態(tài)監(jiān)控軟件設(shè)計(jì)
- 嵌入式系統(tǒng)軟件設(shè)計(jì)教材資料 5次下載
- 嵌入式系統(tǒng)軟件并發(fā)缺陷的建模方法 2次下載
- 基于RTOS的嵌入式系統(tǒng)軟件設(shè)計(jì) 17次下載
- 嵌入式軟件在計(jì)算機(jī)軟件設(shè)計(jì)中應(yīng)用 14次下載
- ARM的嵌入式系統(tǒng)軟件設(shè)計(jì) 8次下載
- DSP控制直流電動(dòng)機(jī)的嵌入式軟件設(shè)計(jì) 9次下載
- 嵌入式軟件設(shè)計(jì)確??煽啃缘募记?/a> 0次下載
- 基于ARM的嵌入式系統(tǒng)軟件設(shè)計(jì)部分 15次下載
- 嵌入式軟件設(shè)計(jì)入門(mén)與進(jìn)階---基于Kinetis K60K64 0次下載
- 基于ARM的嵌入式軟件設(shè)計(jì)
- ARM嵌入式系統(tǒng)開(kāi)發(fā)-軟件設(shè)計(jì)與優(yōu)化
- 基于嵌入式的腦卒中康復(fù)儀的軟件設(shè)計(jì)
- 基于嵌入式Linux 的BACnet 控制器軟件設(shè)計(jì)
- 基于ARM的嵌入式系統(tǒng)軟件設(shè)計(jì)
- 嵌入式軟件開(kāi)發(fā)和軟件開(kāi)發(fā)的區(qū)別 1738次閱讀
- 聊聊嵌入式軟件分層 525次閱讀
- 嵌入式軟件的設(shè)計(jì)模式(上) 1119次閱讀
- 淺談嵌入式與純軟開(kāi)發(fā)的區(qū)別 1894次閱讀
- EsDA為用戶帶來(lái)簡(jiǎn)單易用的軟件設(shè)計(jì)體驗(yàn) 1882次閱讀
- 嵌入式開(kāi)發(fā)軟件中回調(diào)函數(shù)的使用 2120次閱讀
- 嵌入式系統(tǒng)的軟件架構(gòu)設(shè)計(jì) 4063次閱讀
- 基于嵌入式軟件的JNI技術(shù)應(yīng)用解析 1020次閱讀
- 嵌入式系統(tǒng)中的OTA更新的若干不同軟件設(shè)計(jì)探討 1841次閱讀
- 嵌入式軟件開(kāi)發(fā)編程規(guī)范介紹 4206次閱讀
- 嵌入式軟件開(kāi)發(fā)的這些編程規(guī)范你了解嗎 3809次閱讀
- 嵌入式軟件可靠性設(shè)計(jì)需注意以下四個(gè)方面的問(wèn)題! 2440次閱讀
- 基于嵌入式Linux的語(yǔ)音識(shí)別系統(tǒng)硬軟件設(shè)計(jì)詳細(xì)講解教程 6091次閱讀
- 嵌入式系統(tǒng)新手進(jìn)階指南,這幾點(diǎn)請(qǐng)切記! 1273次閱讀
- 基于嵌入式Linux系統(tǒng)的導(dǎo)航軟件設(shè)計(jì)思路 4964次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 6基于FPGA的C8051F單片機(jī)開(kāi)發(fā)板設(shè)計(jì)
- 0.70 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21548次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183278次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多