<pre id="ff7yo"></pre>

      <form id="ff7yo"><legend id="ff7yo"></legend></form>
        <nav id="ff7yo"><listing id="ff7yo"></listing></nav><nav id="ff7yo"></nav>

        <nav id="ff7yo"><listing id="ff7yo"></listing></nav>
        <small id="ff7yo"></small><nav id="ff7yo"><dd id="ff7yo"></dd></nav>
      1. <nav id="ff7yo"></nav>
          <form id="ff7yo"></form><nav id="ff7yo"></nav>
          <nav id="ff7yo"></nav>
          <sub id="ff7yo"></sub>
          更多課程 選擇中心

          軟件測試培訓
          達內IT學院

          400-111-8989

          軟件測試老司機10年找Bug,只為重整河山!

          • 發布:軟件測試培訓
          • 來源:自動化軟件測試
          • 時間:2018-04-25 17:01

          軟件測試老司機10年找Bug,只為重整河山!

          作為一名軟件測試工程師,一遍遍地檢查Bug,只為將每個軟件最完美地呈現給大家,即使是在爛的不能再爛的攤子上也要重整河山,這是每一位軟件測試工程師的偉大!但你知道作為一名軟件測試工程師要經過碼畜、碼農、碼人、碼神四個階段的歷練,才能浴火重生嗎?

          一.碼畜:靠編譯器幫自己查語法錯誤

          消滅筆誤:編寫適合程序猿的鍵盤練習

          if (常量==變量或表達式)

          使用goto接力超長的if,switch

          連續的if還是if elseif

          多個條件的組合:精心的排版

          多重括號的匹配

          條件編譯

          各種const:不要糾結各種常量了,這個世界上唯一不變的就是變化。用APIWriteProcessMemory還能改動正執行的其他進程的內存里面的所謂常量呢!

          查看宏展開后的.i文件:VC編譯選項加/EP /P(項目、屬性、配置屬性、C/C++、預處理器、預處理到文件:是,預處理取消顯示行號:是),又一次編譯。查看宏展開后相應的.i文件。gcc加-E

          偶遇到莫名其妙的編譯錯誤都是用“每次用/*...*/或#if 0...#endif凝視掉不同部分再又一次編譯,直到定位到詳細語法出錯的位置。”的方法解決的。

          附加包括路徑、附加庫路徑、附加依賴庫的設置。

          二.碼農:靠調試器幫自己查邏輯錯誤

          for/while語句后多余的分號

          while/do while語句在語義上的歧義

          條件斷點

          消息斷點

          數據斷點

          __asm int3或DebugBreak()斷點

          在內存窗體中觀察數據的原始字節形態

          Call Stack:崩潰的時候在彈出的對話框按相應button進入調試,按Alt+7鍵查看Call Stack即“調用堆棧”里面從上到下列出的相應從里層到外層的函數調用歷史。雙擊某一行可將光標定位到此次調用的源碼或匯編指令處,看不懂時雙擊下一行,直到能看懂為止。

          “給定一個小點的輸入。完整單步跟蹤(同一時候按Alt+7鍵查看Call Stack里面從上到下列出的相應從里層到外層的函數調用歷史)一遍。

          ”是理解遞歸函數工作原理的不二法門!

          遞歸函數關注下面幾個因素

          · 退出條件

          · 參數有哪些

          · 返回值是什么

          · 局部變量有哪些

          · 全局變量有哪些

          · 何時輸出

          · 會不會導致堆棧溢出

          語法糖越甜。編譯調試查錯越苦!

          C++的隱藏調用:單步類的實例“構造”或“復制”或“作為函數參數”或“作為函數返回值返回”或“參加各種運算”或“退出作用域”的語句相應的匯編代碼幾步后,就會來到該類的“構造函數”或“復制構造函數”或“運算符重載”或“析構函數”相應的C/C++源碼處。

          任務管理器、VMMap、Process Monitor、Process Explorer、GDI泄露檢測工具、……

          三.碼人:靠寫日志幫自己查運營錯誤

          CrashDump或Core的無力。

          PDB的無力。

          線上Debug的無力。

          觀察復雜數據的無力。

          多線程調試的無力。

          調試時序高度依賴代碼的無力。

          調試萬年一遇非法數據的無力。

          有時不將“調用函數名字+各參數值,進入函數后各參數值,中間變量值,退出函數前準備返回的值,返回函數到調用處后函數名字+各參數值+返回值”這些信息寫日志到文件里是不管怎樣也發現不了問題在哪里的。包含捕獲各種異常、寫日志到屏幕、單步或設斷點或生成core或dmp文件、……這些方法都不行!

          四.碼神:靠冥想和頓悟幫自己查不可再現錯誤

          假死的各種原因:

          · 控制循環的變量的取值范圍有符號/無符號,==/<=

          · 控制循環的變量沒變

          · 控制循環的變量被外部程序改動

          · 各種資源泄露

          · 死鎖

          · 網速變慢或網絡資源耗盡或網絡時通時斷

          · 權限、UAC、殺毒軟件實時防護

          · 操作系統或軟件自己主動升級

          · 以為系統時間不可逆

          · 以為系統時間相關變量不會溢出(GetTickCount()約49.7天就歸0了!

          )

          · ……

          作為找了10年Bug的軟件測試工程師,我也不能優雅的結束每一次測試工作,但無論是多么多的Bug,多么多的問題,我也要將這片河山整理到盡善盡美!也許后生可畏,希望你攀登軟件測試的頂峰,到達神一樣的級別!聽說達內軟件測試培訓班還不錯,想入行、想提升,都是不錯的選擇,加油吧,少年!

          免責聲明:內容和圖片源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

          預約申請免費試聽課

          填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

          上一篇:做軟件測試怎么能不知道軟件測試的方法有哪些?
          下一篇:通過八種軟件測試技巧,讓你玩轉端到端的移動測試

          軟件測試必備的數據庫知識有哪些?(終)

          日志在快速定位自動化腳本故障中的重要性研究

          測試慣例是什么?怎么打破測試慣例?

          “用鼠標點點點”的測試,未來還有機會嗎?

          • 掃碼領取資料

            回復關鍵字:視頻資料

            免費領取 達內課程視頻學習資料

          • 視頻學習QQ群

            添加QQ群:1143617948

            免費領取達內課程視頻學習資料

          Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

          選擇城市和中心
          黑龍江省

          吉林省

          河北省

          陜西省

          湖南省

          貴州省

          云南省

          廣西省

          海南省

          神马影院-战旗影院-首播影院-新视觉影院-在线观看中文字幕dvd播放 百度 好搜 搜狗
          <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>