<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

    Coverity談“開發(fā)中測試”與程序員最常犯的編碼錯誤

     Coverity公司位于美國加州舊金山,他們的產(chǎn)品包括Coverity Integrity Control、Coverity Static Analysis等一系列代碼分析工具與解決方案。日前,Coverity公司產(chǎn)品副總Ezi Boteach先生就“開發(fā)中測試”、代碼復(fù)查和開發(fā)人員最常犯的編碼錯誤接受了采訪。

      問題:能否介紹下Coverity的“開發(fā)中測試”理念和你們的Development Testing Platform?

      Ezi:“開發(fā)中測試”是新出現(xiàn)的一種技術(shù),包括一系列流程和軟件,例如靜態(tài)分析。開發(fā)中測試的目的是要幫助開發(fā)人員、管理層和業(yè)務(wù)人員能在開發(fā)周期的早期,找到并修復(fù)質(zhì)量和安全方面的問題,這些代碼還在開發(fā)之中,不會影響上市時間、成本或客戶滿意度。

      “開發(fā)中測試”擴(kuò)大了傳統(tǒng)測試范圍,可以包括功能測試性能測試和安全審核,為開發(fā)團(tuán)隊(duì)提供更快、更便捷的方式來測試代碼中的缺陷,而且是以非侵入的方式。這種方式下,開發(fā)人員能夠把注意力集中在創(chuàng)新上,管理層能夠在開發(fā)周期早期盡早了解問題以作出決策,業(yè)務(wù)人員能持續(xù)向市場交付高質(zhì)量的產(chǎn)品,獲得競爭優(yōu)勢。

      問題:代碼復(fù)查是人們高度推薦的編程實(shí)踐。如果使用你們的產(chǎn)品,對于代碼復(fù)查,您有什么建議?

      Ezi:代碼復(fù)查是軟件“開發(fā)中測試”很重要的部分,而且其成本很高,因?yàn)樾枰硪粋€開發(fā)人員來復(fù)審代碼,很多時候這個開發(fā)人員還必須是資深人員。在代碼復(fù)查之前先做靜態(tài)分析,這能讓代碼復(fù)審過程更快,而且成本更低。使用自動化分析來檢查變更以及于系統(tǒng)其他部分的集成點(diǎn),以此來識別和消滅代碼錯誤,代碼復(fù)審就可以更集中于邏輯和功能錯誤,而不是代碼的缺陷,這樣做更劃算,能夠自動化,而且易于重復(fù)。

      我們推薦測試驅(qū)動開發(fā)所有的工具和實(shí)踐,包括代碼復(fù)審、單元測試和代碼覆蓋率。當(dāng)然,要是能和Coverity的自動化代碼測試工具一起使用就更好了。

      問題:你們的產(chǎn)品如何與像xUnit這樣的工具一起配合使用?

      Ezi:單元測試是“開發(fā)中測試”的重要組成,需要支持測試驅(qū)動開發(fā)。使用Coverity 5.5,我們引入了“開發(fā)中測試”的平臺,能夠讓多種不同工具與測試工作流集成。目前我們還不能專門與xUnit集成在一起,但是我們的客戶現(xiàn)在能夠很方便地把他們使用的測試工具與Coverity Development Testing平臺集成。舉個例子:Coverity 5.5.1版本包括與常用Java靜態(tài)分析工具FindBugs的集成。這樣的集成讓管理人員能夠降低維護(hù)多個測試工具的成本,并通過統(tǒng)一的工具來推行策略。開發(fā)人員也有統(tǒng)一的界面來查看缺陷,并排定解決的優(yōu)先級。

      問題:你們的產(chǎn)品是否能與持續(xù)交付流程集成?

      Ezi:Coverity Static Analysis可以與多個構(gòu)建系統(tǒng)集成,包括Jenkins這個常用的持續(xù)集成系統(tǒng)。一般來說,與Jenkins和持續(xù)集成系統(tǒng)的集成是為了確保所有的持續(xù)構(gòu)建都能運(yùn)行自動化代碼測試工具。如果分析中發(fā)現(xiàn)了新的缺陷,一個構(gòu)建版本就是失敗的。這確保新的缺陷不會引入到交付的軟件的主干代碼中,而交付過程是持續(xù)交付流程的一部分。這也能保證失敗的構(gòu)建版本不會進(jìn)入流程的下一個階段,一般來說是QA階段。Coverity就像是交付過程中的一道閘門。

      問題:除了使用你們的產(chǎn)品,您是否還能為開發(fā)人員和架構(gòu)師提供一些其他的原則與實(shí)踐?

      Ezi:確保軟件的質(zhì)量,防止安全漏洞,這需要良好協(xié)作、工具和開發(fā)流程管理這幾方面的結(jié)合。從清晰的需求文檔開始,這是開發(fā)任何新功能的基礎(chǔ)。需求文檔之后,就是功能和系統(tǒng)架構(gòu)師完成的功能和需求設(shè)計(jì)。代碼開發(fā)完成后,“開發(fā)中測試”應(yīng)該是這個流程的有機(jī)部分。不僅僅是一個產(chǎn)品,而應(yīng)該是流程和技術(shù)的組合,幫助開發(fā)組織在開發(fā)周期早期、撰寫代碼的時候,就能修復(fù)軟件的問題,確保代價高昂的缺陷不會進(jìn)入后續(xù)階段和生產(chǎn)環(huán)境。

      架構(gòu)師要確保軟件的架構(gòu)良好。這需要人工復(fù)審和架構(gòu)分析,此外還要有經(jīng)過考驗(yàn)的軟件開發(fā)方法論。與之類似,開發(fā)人員也要保證,除了使用靜態(tài)和動態(tài)分析的自動化測試之外,也要使用代碼復(fù)審和單元測試。質(zhì)量保證(QA)是任何軟件開發(fā)過程中都很重要的階段,以確保功能測試和性能測試順利通過。最后,安全審核也很重要,保證在識別、修復(fù)、移除代碼缺陷時不會帶入新的安全漏洞。

      問題:根據(jù)Coverity收集的數(shù)據(jù),您能否列舉一些開發(fā)人員最常犯的錯誤?

      Ezi:開源項(xiàng)目SCAN(scan.coverity.com)能夠很好地發(fā)現(xiàn)開發(fā)人員常犯的錯誤。從2006年開始,Coverity與美國國土安全部一起,研發(fā)了Coverity SCAN項(xiàng)目,來保證開源軟件的安全性和完整性。Coverity SCAN分析了超過290個開源項(xiàng)目,包括Linux、Apache、PHP和Android,識別出49,654個缺陷,開源軟件開發(fā)人員已經(jīng)修復(fù)了超過15,000個缺陷。蝦米的表格就展示出了開源軟件中最常出現(xiàn)的缺陷,商業(yè)軟件也與之類似。

     SCAN項(xiàng)目中的出現(xiàn)頻率 風(fēng)險(xiǎn)程度 
    NULL指針引用 27.60% 中 
    資源泄露 23.19% 高 
    非原意圖表達(dá)式 9.76% 中 
    讀未初始化的值 8.41% 高 
    釋放后使用 5.91% 高 
    緩沖區(qū)溢出 5.52% 高 

      很重要的一點(diǎn)要指出:像NULL指針引用、內(nèi)存泄露和緩沖區(qū)溢出常常會帶來很嚴(yán)重的質(zhì)量和安全風(fēng)險(xiǎn)。很多這樣的缺陷,使用傳統(tǒng)的測試方法,有時難以找到。使用Coverity的工具會更易于發(fā)現(xiàn)類似問題。

      要想了解更多關(guān)于SCAN項(xiàng)目的信息,可以訪問 2010 SCAN報(bào)告,其中包括對于Android核心代碼的分析結(jié)果。

      問題:對于代碼分析可視化的重要性,程序員們認(rèn)識得越來越明白了。您能否列出3個最重要的相關(guān)分析圖?

      Ezi:Coverity的Development Testing平臺能以代碼可視化形式讓開發(fā)人員和管理層看到代碼的質(zhì)量。可視化能夠在幾個方面起到幫助作用:它有助于標(biāo)識代碼的所有者和缺陷,能幫助展示出軟件代碼的整體可讀性,以及質(zhì)量和安全風(fēng)險(xiǎn)較高的代碼區(qū)域,還能有助于推行代碼完整性的檢查策略。

      只談3個圖很困難,但我想選的是:未解決的缺陷與已解決的缺陷的對比、每個軟件組件中的缺陷個數(shù)、新的Integrity Control熱度圖。

    posted on 2011-12-14 15:58 順其自然EVO 閱讀(291) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    <2011年12月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲国产精品无码久久久| 亚洲精品9999久久久久无码| 99无码人妻一区二区三区免费| 亚洲区日韩精品中文字幕| 亚洲AV无码乱码精品国产| 国产精品网站在线观看免费传媒| 亚洲国产综合在线| 五月婷婷亚洲综合| 亚洲黄色免费观看| 老司机午夜在线视频免费观| 亚洲国产精品lv| 国产大片免费观看中文字幕| 久久久久久久久久国产精品免费| 亚洲av永久无码天堂网| 亚洲AV无码国产丝袜在线观看 | 欧美日韩亚洲精品| 亚洲成a人片77777老司机| 在线看片无码永久免费aⅴ| 久久这里只精品热免费99| 国产成人亚洲午夜电影| 亚洲精品视频在线观看视频| 亚洲 无码 在线 专区| 91香蕉成人免费网站| 国产免费拔擦拔擦8X高清在线人| 欧洲亚洲综合一区二区三区| 亚洲最大视频网站| 亚洲国产第一站精品蜜芽| 免费永久国产在线视频| 无码精品A∨在线观看免费| 国产一级一毛免费黄片| 高潮毛片无遮挡高清免费视频| 亚洲伊人久久大香线蕉苏妲己| 亚洲A∨午夜成人片精品网站| 中字幕视频在线永久在线观看免费 | 日本一区午夜艳熟免费| 国产亚洲Av综合人人澡精品| 亚洲视频在线观看地址| 亚洲国产精品无码久久久不卡| 国产一级特黄高清免费大片| 毛片在线看免费版| 成人黄色免费网站|