內(nèi)存泄露與檢測方法
6068極有可能是內(nèi)存泄露造成的軟件奔潰
測試方案:檢測是否有累積泄露或是否有溢出
1.malloc與free配對使用 函數(shù)
2.new與delete C++內(nèi)置操作符 QT中使用new很少使用delete原因:由父類來管理子類對象的回收
new的使用方法 http://blog.csdn.net/sparkliang/article/details/3650324
linux的內(nèi)存泄露忽肛,可以使用valgrind工具進行動態(tài)運行檢測 VLD也是內(nèi)存檢測工具
https://www.ibm.com/developerworks/cn/linux/l-cn-memleak/
溢出排查及解決辦法:http://blog.csdn.net/xiangbole/article/details/78683340
泄露與溢出的區(qū)別與危害
操作符與函數(shù) https://www.cnblogs.com/wuchanming/p/4440872.html
https://www.cnblogs.com/xin688/p/7684920.html
如何設(shè)計良好的函數(shù) https://www.cnblogs.com/suijing/p/how_to_design_method.html
一致性:同組輸入,同組輸出
無副作用:不會改變函數(shù)以外的變量(不要擴大職責)
使函數(shù)顯得純.第一步就是盡可能避免全局變量,我們分析一個函數(shù),就只分析這個函數(shù)的全部代碼(有效范圍)就好,如果引入了全局變量,我們分析的時候,關(guān)注范圍也難免會被強制擴大到全局,同理,能聲明為靜態(tài)函數(shù)的,就應(yīng)該避免聲明為成員函數(shù),因為成員函數(shù)可以訪問對象的實例,而該對象在調(diào)用成員函數(shù)的時候,是個什么狀態(tài),有無初始化,函數(shù)是否會修改實例(引用類型)的參數(shù),如果我們要對這個函數(shù)做重構(gòu),就難免會束手束腳
增量開發(fā)
1.每次增加一小段代碼,測試通過后加入另外一段代碼
2.TDD的套路就是通過編寫功能代碼痰滋,使測試用例通過(即代表功能代碼沒問題)
冗余代碼檢測
simian http://blog.chinaunix.net/uid-20361370-id-1962802.html
http://blog.csdn.net/Love667767/article/details/53558382
usage:java -jar simian-2.6.0.jar -ignoreVariableNames+ -threshold=3 D:\Share\jihua6068\src20180126\scenes\scene_ext**.cpp>>duplicates3.txt
對于GUI待測系統(tǒng),功能測試只觀察特定輸入所導(dǎo)致的數(shù)據(jù)變化;一旦功能測試或最終用戶發(fā)現(xiàn)bug->寫單元測試(暴露這個問題)
Linux下的C++程序崩潰時打印崩潰信息 https://blog.csdn.net/hccloud/article/details/51548274
http://blog.sina.com.cn/s/blog_4aebc38c0102v509.html
首先考慮可維護钥平,延伸性墙歪,事后優(yōu)化
2.22 五步定位性能瓶頸
1撞秋、著手在測試前:理清數(shù)據(jù)流向蔬崩,數(shù)據(jù)流程分解
通過繪制數(shù)據(jù)流向圖吭从,以便清晰的列出所有可能出現(xiàn)瓶頸的位置篷牌,避免在分析過程中遺漏可能的瓶頸點。
系統(tǒng)架構(gòu)分解——水池模型
要查找瓶頸款票,首先要對系統(tǒng)的架構(gòu)有詳細的了解控硼,清楚知道所有可能成為瓶頸的位置。只有這樣才能在遇到問題是合理的設(shè)計測試用例艾少,對流程的各個步驟進行逐一排查卡乾。
舉個例子,家里廚房的水池下水堵了缚够,我們要找原因幔妨,首先得知道水池的下水道都有哪些部分:
2、http://www.51testing.com/html/03/n-3649003.html
如何設(shè)計良好的類
http://blog.csdn.net/u013249965/article/details/51779634
http://blog.csdn.net/krenyelang/article/details/6832072
https://wenku.baidu.com/view/d7faf362001ca300a6c30c22590102020740f282.html
業(yè)務(wù)邏輯
快速上手代碼主流程及主要的流程調(diào)整(例如血透機的治療流程)
代碼錯誤
浮點數(shù)的處理谍椅,變量的生命周期误堡,類型轉(zhuǎn)換,調(diào)試每個變量的取值雏吭,邏輯判斷的全面性锁施,
流程控制與程序邏輯
1.switch參數(shù)只能是int/char不能為實型(float等)
2.float與"零值"比較if語句:if(x<0.000001&&x>-0.000001)
面試感悟
指針與二維數(shù)組
1.掌握常用的算法(查找 排序)等工具類(字符串處理);2.語言不是重點,掌握一門自己熟練的(嵌入式C 面向?qū)ο蟛皇斓脑挷灰fC++,最好能掌握一門腳本語言python等);3.面試對話時抱著謙虛求知合作共贏的態(tài)度;4.項目找個中等難度的(自己完全能hold住再上點但不要離得太多)
音視頻開發(fā) 圖像處理,語音識別 算法做到什么程度 游戲服務(wù)器 目標的達成程度如何評價
精通:不但知道下步要做什么而且很輕易的完成;熟悉是知道要做 但是不一定會
7.5 開始每天看C/C++基礎(chǔ)知識 算法和數(shù)據(jù)結(jié)構(gòu) 遇到需要看項目的公司時才提前看看項目
資料準備:打印一份硬件知識A4資料 打印一份常錯題集 筆記本有關(guān)編程的全部復(fù)習做筆記
一定搞明白的選擇排序和冒泡排序 static與const區(qū)別
1.C語言基礎(chǔ) 目標:刷兩套推薦題超過80分 看一個中型項目的源碼清楚到?jīng)]條語句的功能和作用
1.1 字符串處理函數(shù) 常用的頭 函數(shù) 實現(xiàn)算法
1.2 switch條件的類型為整型(或隱式可轉(zhuǎn)換為整型),不能為float/double
1.3 條件編譯 #ifndef #define #endif可對編譯進行控制,增加代碼可裁剪性,最主要的作用是防止頭文件被重復(fù)定義
1.4 const與static作用與區(qū)別 const全局變量儲存在靜態(tài)數(shù)據(jù)庫悉抵,局部變量在堆棧肩狂。?其實,由于計算機沒有通用數(shù)據(jù)寄存器基跑,則函數(shù)的參數(shù)婚温、局部變量和返回值只能保存在堆棧中。提示:局部變量太大可能導(dǎo)致棧溢出媳否,所以建議把較大數(shù)組放在main函數(shù)外栅螟,防止產(chǎn)生棧溢出1.5 %x輸出16進制數(shù) 雙目運算符與優(yōu)先級
static修飾的變量總存在內(nèi)存靜態(tài)區(qū),所以運行這個函數(shù)結(jié)束篱竭,這個靜態(tài)變量的值也不會被銷毀力图,函數(shù)下次使用的時候仍然能使用這個值(這些關(guān)鍵字設(shè)計到編程的功底,適當代碼測驗)