• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Error

            C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
              217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks

            ×少量的預(yù)防措施要比大量的治療措施有價(jià)值的多。。。

             

            1.故障從哪里來(lái)

            為了尋找有缺陷的代碼,你必須以這個(gè)故障作為起點(diǎn)回溯追蹤起因。

            1.2從缺陷到故障

            通常缺陷是通過(guò)以下四個(gè)階段產(chǎn)生的:

            1.程序員制造了一個(gè)缺陷:所有代碼都是程序員寫的,寫錯(cuò)了。

            2.缺陷造成了錯(cuò)誤狀態(tài)的感染:正確的代碼段,被錯(cuò)誤的代碼感染。這時(shí)候代碼已經(jīng)不可控。

            3.錯(cuò)誤狀態(tài)不斷的傳播:大多數(shù)程序由于不正確的輸入而返回錯(cuò)誤,當(dāng)后面的程序訪問(wèn)該狀態(tài)時(shí),會(huì)把錯(cuò)誤擴(kuò)散到后續(xù)的程序狀態(tài)中。(正確情況應(yīng)該是不會(huì)持續(xù)傳播的,應(yīng)該會(huì)被后續(xù)某個(gè)模塊覆蓋或者修正)

            4.錯(cuò)誤狀態(tài)引發(fā)的故障:外部程序應(yīng)為感知到了程序的錯(cuò)誤狀態(tài)而故障

            ×錯(cuò)誤只能程序有缺陷,不能證明程序沒有缺陷。。。

             

            1.3迷失在時(shí)空之中

            調(diào)試過(guò)程可以分解成七個(gè)步驟:

            1.track the problem

            2.reproduce the failure

            3.automate and simplify

            4.find infection origins

            5.focus on likely origins

            6.isolate the infection chain

            7.correct the defect

             

            在很大程度上,調(diào)試就是一個(gè)搜索問(wèn)題,主要是如下兩個(gè)原則:

            ×從錯(cuò)誤狀態(tài)中分離出正確狀態(tài):如果一個(gè)狀態(tài)是錯(cuò)誤的,它可能就是從缺陷到故障的傳播鏈中的一部分;如果一個(gè)狀態(tài)是正確的,他就基本不可能有錯(cuò)誤被傳播。

            ×從不相關(guān)狀態(tài)中分離出相關(guān)狀態(tài):一個(gè)變量的值取決于一小部分早期變量的值。因此,只有一部分早期狀態(tài)是和程序故障相關(guān)的。

             

            1.4從故障到修正

            ×跟蹤問(wèn)題:

            ×重現(xiàn)故障:

            ×自動(dòng)化和簡(jiǎn)化測(cè)試用例:如果是一個(gè)復(fù)雜的程序,就必須考慮如何自動(dòng)產(chǎn)生故障(應(yīng)為希望被重現(xiàn)),以及如何簡(jiǎn)化輸入,得到最小測(cè)試用例。

            ×尋找可能的感染源:如果有自動(dòng)化測(cè)試可以使用排除法,將測(cè)試數(shù)據(jù)中會(huì)導(dǎo)致錯(cuò)誤的數(shù)據(jù)找到。

            ×分離感染源:假設(shè)找到是某個(gè)測(cè)試數(shù)據(jù)導(dǎo)致錯(cuò)誤,現(xiàn)在可以回溯相關(guān)系統(tǒng)這個(gè)數(shù)據(jù)出來(lái)的模塊。

            ×修正缺陷:

             

            1.5自動(dòng)調(diào)試技術(shù)

            ×簡(jiǎn)化輸入:

            ×程序片段:

            ×觀察狀態(tài):

            ×監(jiān)視狀態(tài):

            ×斷言:

            ×反常:

            ×因果鏈:

             

            1.6 BUG、失誤、還是缺陷

            缺陷(defect):錯(cuò)誤的程序代碼(代碼中的bug)

            錯(cuò)誤的狀態(tài)感染(infection): 錯(cuò)誤的程序狀態(tài)(狀態(tài)中的bug)

            故障(failure): 可感知程序的錯(cuò)誤行為(行為中的bug)

             

            summary:

            1.調(diào)試程序的七個(gè)步驟:跟蹤->重現(xiàn)->自動(dòng)化->發(fā)現(xiàn)感染源->重點(diǎn)關(guān)注->分離->修正

            咱們平常就是自動(dòng)化和分離的時(shí)候會(huì)偷懶,老實(shí)說(shuō),在調(diào)試復(fù)雜程序的時(shí)候,花點(diǎn)時(shí)間做自動(dòng)化和分離是“磨刀不誤砍柴功”

             

            ////////////////////////////////////////////////////////////////////////////////////////////////

                    程序員寫了一段有缺陷的代碼,這是否意味著他犯了過(guò)錯(cuò)呢?考慮這些情況:

            原始需求沒有預(yù)測(cè)到未來(lái)的變化,如:千年蟲

            只有當(dāng)程序的某種行為呈現(xiàn)在用戶面前是時(shí),才有可能被列入“故障”

            在模塊化的程序中,故障可能是由兩個(gè)模塊之間的不兼容接口造成的。

            分布式系統(tǒng)中,故障可能是由幾個(gè)組件之間無(wú)法預(yù)測(cè)的交互造成的

            。。。。。。

            這時(shí)候討論責(zé)任已然是一種政治態(tài)度

            ////////////////////////////////////////////////////////////////////////////////////////////////

             

            ////////////////////////////////////////////////////////////////////////////////////////////////

            /////  f16的bug

            image

            ////////////////////////////////////////////////////////////////////////////////////////////////

            image

            ////////////////////////////////////////////////////////////////////////////////////////////////

            亚洲国产精品一区二区三区久久| 区久久AAA片69亚洲 | 久久久久亚洲AV成人网人人网站 | 66精品综合久久久久久久| 久久午夜无码鲁丝片午夜精品| 精产国品久久一二三产区区别| 一本色道久久88精品综合| 精品99久久aaa一级毛片| 成人免费网站久久久| 久久久久一本毛久久久| 国产Av激情久久无码天堂 | 色偷偷偷久久伊人大杳蕉| 国产成人精品白浆久久69| 亚洲国产精品无码久久青草| 国产成年无码久久久久毛片| 天堂无码久久综合东京热| 狠狠色丁香婷婷久久综合不卡 | 国产精品久久久久久久人人看| 国产精品青草久久久久婷婷| 亚洲天堂久久久| 久久久久久无码国产精品中文字幕 | 久久亚洲国产成人精品性色| 波多野结衣久久| 日韩中文久久| 久久精品免费大片国产大片| 久久精品国产精品青草app| 久久久久久人妻无码| 无码人妻久久一区二区三区免费| 久久久久亚洲AV无码专区桃色| 午夜不卡888久久| 亚洲综合久久综合激情久久| 日韩精品久久久久久| 一本久久久久久久| 久久综合久久综合久久综合| 久久综合中文字幕| 四虎国产精品免费久久5151| 久久综合欧美成人| 久久se这里只有精品| 香蕉久久夜色精品国产2020 | 亚洲国产精品无码久久SM| 亚洲午夜久久久影院伊人|