這幾天一直在弄動態庫測試,h給的寫好的動態庫--預處理模塊的庫。視頻處理項目一部分,須要鏈接實際狀況測試。網絡
需求:函數
1.把實際相機鏈接到,並讀取實時數據流,保存到雙循環鏈表裏面;測試
2.測試背景建模的功能效果;線程
3.預處理四個數據(圖像)顯示結果;指針
4.測試實時處理多攝像頭效果顯示。調試
前幾天一直寫攝像頭數據接受模塊,寫的還算順利,由於以前作過的項目本身寫過DVR多通道的接受數據,並且還單獨另寫了讀取網絡攝像頭的實時數據,因此一天搞定了,並顯示原始圖像正常。視頻
因爲h給了接口文檔說明,直接調用了動態庫,update更新背景接口,測試用opencv顯示沒有多大問題,繼續測試預處理模塊、顯示,也花了一天的時間,晚上由於搞定了,次日連續寫了雙通道顯示,也顯示正常,不過下午發現了一個嚴重的錯誤,運行一段時間程序就崩潰了,鬱悶了好幾天,測試了好多辦法,這個也是在測試程序中最頭痛的事情。最終發現時由於memcpy函數接受目標和源數據大小不一致形成的,最主要緣由應該是設備傳輸大小圖像幀變化了,不知道什麼緣由,(猜想多是海康DVR和不是海康攝像頭兼容問題)。後面又遇到中斷,是由於可能同時刪除了兩次,線程同步問題,加了鎖,沒了問題,不事後來我使用了拷貝構造函數,也沒有問題。接口
測試程序發現問題及總結:文檔
1. 首先要對你寫的程序的功能要理解,知道你測試的代碼的實現什麼要求的;同步
2.分析你代碼裏面有幾個類及結構,瞭解大體功能及接口實現,邏輯結構;
3.要分段測試,分模塊檢測,否則很麻煩;
4.程序指針很麻煩,要清楚本身那些指針是幹嗎的,特別類之間的傳遞,記錄好,否則釋放會致使你想不到的錯誤,調試半天沒有結果;
5.初始化問題要引發注意,否則相似4同樣的鬱悶;
6.IDE提示很重要,不要捨棄每個錯誤中斷信息,可能就是要修改的地方,個人就是這個緣由,以前沒注意vs的中斷提示錯誤,鬱悶半天,實在沒辦法檢查了vs中斷錯誤,果真就是那個緣由;
7.最後,心態很重要,千萬不要心浮氣躁,慢慢來,相信會解決的,實在想不出出去散散心,回頭可能想出來了。
筆者在此測試庫心得共勉一下,謝謝。