您好,歡迎來到深聯電路官網!

深聯電路

18年專注PCB研發制造行業科技創新領跑者

全國咨詢熱線 : 4000-169-679 訂單查詢客戶評價
當前位置:首頁» 技術支持 » PCB設計過程中軟件缺陷的查找

PCB設計過程中軟件缺陷的查找

文章出處:互聯網責任編輯:查看手機網址
掃一掃!PCB設計過程中軟件缺陷的查找掃一掃!
人氣:-發表時間:2014-09-07 00:52【

    大部分電路板軟件開發項目依靠結合代碼檢查、結構測試和功能測試來識別軟件缺陷。盡管這些傳統技術非常重要,而且能發現大多數PCB軟件問題,但它們無法檢查出當今復雜系統中的許多共性錯誤。

  結構測試或白盒測試能有效地發現代碼中的邏輯、控制流、計算和數據錯誤。這項測試要求對線路板軟件的內部工作能夠一覽無遺(因此稱為"白盒"或"玻璃盒"),以便了解軟件結構的詳細情況。它檢查每個條件表達式、數學操作、輸入和輸出。由于需要測試的細節眾多,結構測試每次檢查一個軟件單元,通常為一個函數或類。

  代碼審查也使用與實現缺陷和潛在問題查找同樣復雜的技術。與白盒測試一樣,審查通常針對軟件的各個單元進行,因為一個有效的審查過程要求的是集中而詳盡的檢查。

  與PCB審查和白盒測試不同,功能測試或黑盒測試假設對軟件的實現一無所知,它測試由受控輸入所驅動的輸出。功能測試由測試人員或開發人員所編寫的測試過程組成,它們規定了一組特定程序輸入對應的預期程序輸出。線路板廠家在測試運行之后,測試人員將實際輸出與預期輸出進行比較,查找問題。黑盒測試可以有效地找出未能實現的需求、接口問題、性能問題和程序最常用功能中的錯誤。

  雖然將這些技術結合起來可以找出隱藏在一個特定軟件程序中的大部分錯誤,但它們也有局限。代碼審查和白盒測試每次只針對一小部分代碼,忽視了系統的其它部分。黑盒測試通常將系統作為一個整體來處理,忽視了實現的細節。一些重要的問題只有在集中考察它們在整個系統內相互作用時的細節才能被發現;傳統的方法無法可靠地找出這些問題。必須整體地檢查軟件系統,查找具體問題的特定原因。由于詳盡徹底地分析程序中的每個細節和它與代碼中所有其它部分之間的相互作用通常是不大可能的,因此分析應該針對程序中已經知道可能導致問題的特定方面。

  本文將探討其中三個潛在的問題領域:
  * 堆棧溢出
  * 競爭條件
  * 死鎖
  讀者可在網上閱讀本文的第二部分,它將探討下列問題:
  * 時序問題
  * 可重入條件

  在采用多任務實時設計技術的系統中,以上所有問題都相當普遍。

  堆棧溢出

  處理器使用堆棧來存儲臨時變量、向被調函數傳遞參數、保存線程“狀態”,等等。如果系統不使用虛擬內存(換句話說,它不能將內存頁面轉移到磁盤上以釋放內存空間供其它用途),堆棧將固定為產品出廠時的大小。如果由于某種原因堆棧越出了編程人員所分配的數量范圍,程序將變得不確定。這種不穩定可能導致系統發生嚴重故障。因此,確保系統在最壞情況下能夠分配到足夠的堆棧至關重要。

  確保永不發生堆棧溢出的唯一途徑就是分析代碼,確定程序在各種可能情況下的頗大堆棧用量,然后檢查是否分配了足夠的堆棧。測試不大可能觸發特定的瞬時輸入組合進而導致系統出現最壞情況。

  堆棧深度分析的概念比較簡單:

  1. 為每個獨立的線程建立一棵調用樹。

  2. 確定調用樹中每個函數的堆棧用量。

  3. 檢查每棵調用樹,確定從樹根到外部“樹葉”的哪條調用路徑需要使用的堆棧最多。

  4. 將每個獨立線程調用樹的頗大堆棧用量相加。

  5. 確定每個中斷優先級內各中斷服務程序(ISR)的頗大堆棧用量并計算其總和。但是,如果ISR本身沒有堆棧而使用被中斷線程的堆棧,則應將ISR使用的頗大堆棧數加到各線程堆棧之上。

  6. 對于每個優先級,加上中斷發生時用來保存處理器狀態的堆棧數。

  7.如果使用RTOS,則加上RTOS自身內部用途需要的頗大堆棧數(與應用代碼引發的系統調用不同,后者已包含在步驟2中)。
除此之外,還有兩個重要事項需要考慮。首先,僅僅從高級語言源代碼建立的調用樹很可能并不完善。大部分編譯器采用運行時庫(run-time library)來優化常用計算任務,如大值整數的乘除、浮點運算等,這些調用只在編譯器產生的匯編語言中才可見。運行時庫函數本身可能使用大量的堆棧空間,在分析時必須將它們包括進去。如果使用的是C++語言,則以下所有類型的函數(方法)也都必須包含到調用樹內:結構器、析構器、重載運算符、復制結構器和轉換函數。所有的函數指針也都必須進行解析,并且將它們調用的函數包含進分析之中。

我要評論:  
內 容:
(內容最多500個漢字,1000個字符)
驗證碼: 看不清?!
 

相關資訊

主站蜘蛛池模板: 福利一区在线视频| 美女无遮挡拍拍拍免费视频| 爱情岛永久地址www成人| 在线免费观看国产| 亚洲国产精彩中文乱码av| 亚洲综合精品香蕉久久网| 花季视传媒app下载| 成人av鲁丝片一区二区免费| 免费a级毛片无码av| 91手机看片国产永久免费| 最近更新2019中文字幕国语4| 国产人与禽zoz0性伦多活几年| 中国大陆国产高清aⅴ毛片| 电影在线观看视频| 国产精品乱码一区二区三区 | 免费无码黄网站在线观看| 97影院在线午夜| 月夜直播在线看片www| 国产aⅴ激情无码久久| eeuss影院www新天堂| 欧美一区二区三区久久综| 国产xxxx做受欧美88xx00tube| h片在线观看免费| 欧美一级大片在线观看| 国产一区二区三区四| 99人中文字幕亚洲区| 曰批免费视频播放免费| 又爽又黄又无遮挡网站| 668溜溜吧成人影院| 日本tvvivodes人妖| 亚洲黄色激情网| 黄网站色视频免费看无下截| 小婷又紧又深又滑又湿好爽| 亚洲国产欧洲综合997久久| 色婷婷在线精品国自产拍| 在线精品免费视频无码的| 久久精品亚洲综合| 男人添女人下部高潮全视频 | 色一情一乱一伦一视频免费看 | 免费一级毛片在线观看| 被吃奶跟添下面视频|