国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

讀程序員的README筆記06_測試(上)

這篇具有很好參考價值的文章主要介紹了讀程序員的README筆記06_測試(上)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

讀程序員的README筆記06_測試(上)

1.?行為準(zhǔn)則

讀程序員的README筆記06_測試(上)文章來源地址http://www.zghlxwxcb.cn/news/detail-750146.html

2.?編寫、運(yùn)行和修復(fù)測試用例會讓人感覺很忙碌

2.1.?測試本身才更容易成為繁忙的工作

2.2.?糟糕的測試會增加開發(fā)人員的開銷而不提供價值,并且還會增加測試套件的不穩(wěn)定性

3.?測試用途

3.1.?測試可以檢查代碼是否正常工作

3.1.1.?測試本身就可以驗證軟件的行為是否符合預(yù)期

3.1.2.?預(yù)料之外的軟件行為會給用戶、開發(fā)人員和運(yùn)維人員帶來很多困擾

3.1.3.?測試這道工序可以證明代碼已經(jīng)按規(guī)定生效了

3.2.?保護(hù)代碼不會被將來那些無意中的修改所影響

3.2.1.?測試可以保護(hù)現(xiàn)有的行為不受新變化的影響

3.3.?鼓勵清爽的代碼

3.4.?強(qiáng)迫開發(fā)者試用他們自己的API

3.4.1.?編寫測試也迫使開發(fā)人員思考他們程序的接口和實現(xiàn)過程

3.4.2.?編寫測試也可以迫使開發(fā)人員分別通過改進(jìn)關(guān)注點分離和降低緊耦合的方式來確保他們的代碼擁有良好的構(gòu)造

3.5.?記錄組件之間如何交互

3.5.1.?測試其實是另一種形式的文檔,它說明了代碼是如何被交互的

3.6.?作為一個實驗的“游樂場”

3.7.?測試驅(qū)動的開發(fā)

3.7.1.?test driven development,TDD

3.7.2.?TDD是指在寫代碼之前先編寫測試的實踐,如果測試寫好之后運(yùn)行測試失敗了,那么就去編寫代碼使其通過

4.?測試類型

4.1.?成功的項目會在現(xiàn)實世界中做出務(wù)實的測試決定

4.2.?單元測試

4.2.1.?驗證代碼的“單元”

4.2.2.?通常指某個單一的方法或行為

4.2.3.?單元測試應(yīng)該快速、簡短且集中

4.2.3.1.?消除外部依賴性可以使單元測試快速而集中

4.2.4.?模擬遠(yuǎn)程系統(tǒng)允許測試?yán)@過網(wǎng)絡(luò)調(diào)用,可簡化設(shè)置,并且避免緩慢的運(yùn)行過程

4.2.5.?模擬方法和對象允許開發(fā)人員編寫集中的單元測試,這些單元測試可以只完成一個特定的行為動作

4.3.?集成測試

4.3.1.?驗證多個組件集成在一起之后是否還能正常工作

4.3.2.?如果你發(fā)現(xiàn)自己在測試中實例化了多個相互作用的對象,那么你正在寫的可能就是集成測試

4.3.3.?開發(fā)人員運(yùn)行集成測試的頻率較低,所以反饋的周期更長

4.3.4.?可以找出那些通過各自獨(dú)立的單元測試難以發(fā)現(xiàn)的問題

4.4.?系統(tǒng)測試

4.4.1.?驗證整個系統(tǒng)的整體運(yùn)行情況

4.4.2.?端到端(end-to-end,e2e)的工作流程是為了模擬在預(yù)生產(chǎn)環(huán)境中系統(tǒng)與真實用戶的互動

4.5.?性能測試

4.5.1.?監(jiān)控不同配置下的系統(tǒng)性能

4.5.2.?負(fù)載測試可以監(jiān)控不同負(fù)載水平下的性能

4.5.3.?壓力測試將系統(tǒng)負(fù)載推高到崩潰的程度

4.5.3.1.?壓力測試可暴露系統(tǒng)的負(fù)載能力究竟有多大,以及在過度負(fù)載下會發(fā)生什么狀況

4.5.4.?對于容量規(guī)劃和服務(wù)等級目標(biāo)定義非常有用

4.6.?驗收測試

4.6.1.?指由客戶或其代理人進(jìn)行的,以驗證交付的軟件是否符合驗收標(biāo)準(zhǔn)的測試

4.6.2.?正式的驗收測試及驗收標(biāo)準(zhǔn)是作為昂貴的合同中的一部分來規(guī)定的

4.6.3.?國際標(biāo)準(zhǔn)化組織(International Standards Organization,ISO)要求驗收測試可以驗證明確的業(yè)務(wù)需求,作為其安全標(biāo)準(zhǔn)的一部分

4.6.3.1.?ISO認(rèn)證審核委員會要求提供需求和相應(yīng)的測試文件證據(jù)

5.?測試工具

5.1.?測試用例的編寫工具

5.1.1.?如模擬庫,可以幫助你編寫干凈和高效的測試

5.1.2.?模擬庫通常用于單元測試,特別是在面向?qū)ο蟮拇a中

5.1.3.?模擬庫還可以防止應(yīng)用程序的代碼中充斥著測試專用的方法、參數(shù)或變量

5.1.4.?模擬庫可以幫助開發(fā)人員訪問受保護(hù)的方法和變量,而無須修改常規(guī)代碼

5.1.5.?對模擬庫的過度依賴是一種代碼異味,它表明代碼緊緊地耦合在了一起

5.2.?測試框架

5.2.1.?通過模擬測試的生命周期,從setup到teardown,幫助測試的運(yùn)行

5.2.1.1.?管理測試的setup和teardown

5.2.1.2.?管理測試執(zhí)行和編排

5.2.1.2.1.?可以通過編排測試流程來幫助控制測試的速度和隔離度
5.2.1.2.2.?串行測試是一個接一個地執(zhí)行,一次執(zhí)行一個測試會更安全,因為測試之間相互影響的機(jī)會比較少
5.2.1.2.3.?并行執(zhí)行更快捷,但由于共享的狀態(tài)、資源或其他污染,因而更容易出錯

5.2.1.3.?生成測試結(jié)果報告

5.2.1.3.1.?幫助開發(fā)人員調(diào)試那些失敗的構(gòu)建任務(wù)

5.2.1.4.?提供工具,如擴(kuò)展的斷言方法

5.2.1.5.?與代碼覆蓋率工具集成

5.2.2.?還可以保存測試結(jié)果,與構(gòu)建系統(tǒng)集成,并提供其他的輔助功能

5.3.?代碼質(zhì)量工具

5.3.1.?強(qiáng)制執(zhí)行代碼質(zhì)量規(guī)則的工具被稱為linter,linter可以運(yùn)行靜態(tài)分析并執(zhí)行代碼風(fēng)格檢查

5.3.2.?對那些未能通過質(zhì)量檢查的代碼庫要有務(wù)實精神

5.3.3.?不要讓代碼變得更糟,但也要避免以破壞性地停止一切的方式來清理工程

5.3.4.?用來分析代碼覆蓋率和代碼復(fù)雜性

5.3.4.1.?代碼復(fù)雜度工具可以通過計算圈復(fù)雜度

5.3.4.1.1.?大致上通過代碼的路徑數(shù)量來防范過于復(fù)雜的邏輯
5.3.4.1.2.?你的代碼復(fù)雜度越高,就越難測試,也越有可能包含更多的bug
5.3.4.1.3.?圈復(fù)雜度通常隨著代碼庫的大小而增加,所以總體得分高并不一定是壞事

5.3.4.2.?代碼覆蓋率工具衡量的是有多少行代碼被測試套件執(zhí)行過

5.3.4.2.1.?如果你修改的代碼降低了代碼覆蓋率,你應(yīng)該編寫更多的測試用例
5.3.4.2.2.?確保測試用例可以對你所做的任何新的修改進(jìn)行驗證,以合理的覆蓋率為目標(biāo)
5.3.4.2.2.1.?經(jīng)驗值是65%到85%
5.3.4.2.3.?僅僅依靠覆蓋率并不能夠衡量測試質(zhì)量的優(yōu)劣
5.3.4.2.3.1.?它可能會有很大的誤導(dǎo)性,無論是在高覆蓋率還是低覆蓋率的時候
5.3.4.2.3.2.?為了達(dá)到100%的覆蓋率而癡迷于創(chuàng)建單元測試并不能保證你的代碼能夠安全地集成

5.3.5.?通過靜態(tài)分析來尋找bug

5.3.6.?檢查代碼風(fēng)格錯誤

5.3.6.1.?代碼風(fēng)格檢查工具可以確保所有源代碼的格式相同

5.3.6.2.?每行最大字符數(shù)、駝峰命名法與蛇形命名法、適當(dāng)?shù)目s進(jìn)

5.3.6.3.?一致的風(fēng)格有助于多名程序員在一個共享代碼庫上進(jìn)行協(xié)作

5.3.6.4.?強(qiáng)烈建議你設(shè)置你的IDE,以便可以自動應(yīng)用所有的風(fēng)格規(guī)則

5.3.7.?通常被設(shè)置為構(gòu)建或編譯步驟的一部分來運(yùn)行

到了這里,關(guān)于讀程序員的README筆記06_測試(上)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 讀程序員的README筆記08_依賴管理

    讀程序員的README筆記08_依賴管理

    2.6.1.1.?版本不應(yīng)該被重復(fù)使用 2.6.1.2.?永遠(yuǎn)不要在現(xiàn)有版本下重新發(fā)布更改的代碼 2.6.2.1.?版本應(yīng)該幫助人們和工具對版本的優(yōu)先順序進(jìn)行推斷 2.6.3.1.?版本信息區(qū)分了預(yù)先發(fā)布的代碼和已發(fā)布的代碼,將構(gòu)建流水號與構(gòu)件相關(guān)聯(lián),并設(shè)置了穩(wěn)定性和兼容性的合理預(yù)期 6.2.5.1

    2024年02月05日
    瀏覽(53)
  • 讀程序員的README筆記10_軟件交付(上)

    讀程序員的README筆記10_軟件交付(上)

    3.1.1.1.?打包一個構(gòu)件稱為發(fā)布 3.1.3.1.?部署的軟件還不能被用戶訪問 3.1.3.1.1.?只是被安裝了而已 3.1.3.2.?一旦部署,軟件就會通過將用戶轉(zhuǎn)移到新的軟件上而進(jìn)行展開 3.1.4.1.?交付過程是更大的產(chǎn)品開發(fā)周期中的一部分 6.10.2.1.?每季度或每年發(fā)布一次

    2024年02月04日
    瀏覽(21)
  • 讀程序員的README筆記04_防御式編程

    讀程序員的README筆記04_防御式編程

    1.2.1.1.?切記讓你的代碼安全而有彈性 1.2.1.2.?編寫擁有良好防御性的代碼是一種對那些運(yùn)行你的代碼的人(包括你自己?。└挥型樾牡谋憩F(xiàn) 1.2.1.3.?防御性的代碼較少發(fā)生故障,就算它發(fā)生故障,也更有可能恢復(fù) 1.2.1.4.?安全的代碼利用編譯時的校驗來避免運(yùn)行時的故障,使

    2024年02月05日
    瀏覽(20)
  • 讀程序員的README筆記01_學(xué)習(xí)如何學(xué)習(xí)

    讀程序員的README筆記01_學(xué)習(xí)如何學(xué)習(xí)

    6.3.2.1.?錯誤是不可避免的。成為一名軟件工程師的路途艱辛,我們有時會失敗 6.5.4.1.?代碼從不說謊。注釋有時卻會。 6.5.4.1.1.?Code never lies. Comments sometimes do 6.5.4.1.2.?去讀源代碼,因為它并不總是與設(shè)計文檔相吻合 6.5.4.1.3.?不要只讀你自己的代碼庫,還要去閱讀高質(zhì)量的開

    2024年02月05日
    瀏覽(24)
  • 讀程序員的README筆記11_軟件交付(下)

    讀程序員的README筆記11_軟件交付(下)

    1.3.5.1.?通過持續(xù)交付,人力被完全從部署環(huán)節(jié)中移除 1.3.5.2.?打包、測試、發(fā)布、部署,甚至展開環(huán)節(jié)都是自動化的 1.3.6.1.?Puppet、Salt、Ansible和Terraform等現(xiàn)成的解決方案可以與現(xiàn)有的工具集成,并且它們是專門為了自動化部署而設(shè)計的 1.4.4.1.?只需再次指向舊的版本 1.5.1.1.?

    2024年02月04日
    瀏覽(23)
  • 讀程序員的README筆記13_技術(shù)設(shè)計流程(上)

    讀程序員的README筆記13_技術(shù)設(shè)計流程(上)

    3.4.1.1.?外界干擾是深度工作的“殺手” 3.4.1.2.?避免所有的交流方式 3.4.1.2.1.?關(guān)閉聊天 3.4.1.2.2.?關(guān)閉電子郵件 3.4.1.2.3.?禁用電話通知 3.4.1.2.4.?換個地方坐 3.4.2.1.?有形產(chǎn)出是一份設(shè)計文檔 4.2.3.1.?如果有一個以上的問題,詢問哪些問題是最優(yōu)先的 4.3.7.1.?注意與外人交流時不

    2024年02月04日
    瀏覽(53)
  • 讀程序員的README筆記14_技術(shù)設(shè)計流程(下)

    讀程序員的README筆記14_技術(shù)設(shè)計流程(下)

    1.4.2.1.?該項目將需要至少一個月的工程時間 1.4.2.2.?變更將對軟件的擴(kuò)展和維護(hù)產(chǎn)生長期的影響 1.4.2.3.?變更將顯著影響其他團(tuán)隊 1.5.2.1.?設(shè)計文檔是一種工具,可以幫助你思考、獲得反饋、讓你的團(tuán)隊了解情況、培養(yǎng)新的工程師,并推動項目規(guī)劃 1.5.5.1.?閱讀大量的設(shè)計文檔

    2024年02月04日
    瀏覽(20)
  • 讀程序員的README筆記05_日志、監(jiān)控與配置

    讀程序員的README筆記05_日志、監(jiān)控與配置

    6.1.1.1.?測量的是某個事件發(fā)生的次數(shù) 6.1.1.2.?通過使用計數(shù)器獲得緩存命中數(shù)和請求總數(shù),你就可以計算出緩存命中率 6.1.2.1.?一個基于時間點的測量值 6.1.2.2.?既可以上升又可以下降 6.1.3.1.?根據(jù)事件的大小幅度分成不同的范圍 6.1.3.2.?每一個范圍都會有一個計數(shù)器,每當(dāng)某

    2024年02月05日
    瀏覽(50)
  • 讀程序員的README筆記18_職業(yè)生涯規(guī)劃

    讀程序員的README筆記18_職業(yè)生涯規(guī)劃

    3.1.5.1.?他們的工作職責(zé)之一是管理他們的團(tuán)隊,而管理的一部分就是對你投入時間 3.1.5.2.?對管理者而言,反復(fù)取消一對一面談可以是一個有價值的信號 3.3.2.1.?每個目標(biāo)都附有3到5個關(guān)鍵結(jié)果,它們是標(biāo)志著目標(biāo)達(dá)成的具體指標(biāo) 3.3.2.2.?不要把關(guān)鍵結(jié)果變成待辦事項清單 3.

    2024年02月04日
    瀏覽(18)
  • 讀程序員的README筆記12_On-Call

    讀程序員的README筆記12_On-Call

    4.4.2.1.?回應(yīng)不一定代表解決方案 4.4.3.1.?每次更新時,提供一個新的時間預(yù)估 4.5.3.1.?如果請求者沒有回應(yīng),就說你將在24小時內(nèi)因缺乏回應(yīng)而關(guān)閉該任務(wù)票,然后真的這樣做 5.3.1.1.?工程師必須找到問題,確定其嚴(yán)重性,并確定誰能修復(fù)它 5.3.1.2.?確認(rèn)問題并了解其影響,以

    2024年02月04日
    瀏覽(40)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包