日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

在敏捷中应用测试驱动开发

發(fā)布時(shí)間:2025/3/20 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在敏捷中应用测试驱动开发 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在敏捷和DevOps領(lǐng)域,企業(yè)越來(lái)越關(guān)注持續(xù)集成和持續(xù)部署問(wèn)題。他們更頻繁地更新軟件,給軟件測(cè)試造成額外的時(shí)間壓力。而測(cè)試驅(qū)動(dòng)開(kāi)發(fā)可以成為解決這個(gè)問(wèn)題的一劑良方。

\\

什么是測(cè)試驅(qū)動(dòng)開(kāi)發(fā)?

\\

測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(Test-Driven Development,?TDD)是一種開(kāi)發(fā)方法,即在開(kāi)發(fā)階段使用自動(dòng)化測(cè)試。與傳統(tǒng)的開(kāi)發(fā)方法相比,一個(gè)很大的區(qū)別是TDD要求你在開(kāi)發(fā)之前先編寫(xiě)測(cè)試

\\

TDD似乎只與軟件測(cè)試有關(guān),但這并不是它的最終目的。TDD的目標(biāo)是通過(guò)自動(dòng)化的方式來(lái)演化系統(tǒng),以滿足所有的功能和非功能性需求。

\\

經(jīng)常會(huì)被提及的另一個(gè)術(shù)語(yǔ)是KISS原則。KISS是“Keep It Simple, Stupid”或“Keep It Simple and Straightforward”的縮寫(xiě)。這個(gè)原則的核心思想是盡可能用最少的精力來(lái)解決給定的問(wèn)題(或挑戰(zhàn))。

\\

那么TDD看起來(lái)是怎樣的?

\\

要正確使用TDD方法,最好先搭建一個(gè)初始的軟件架構(gòu)。我說(shuō)的不一定是宏偉的架構(gòu)設(shè)計(jì),但至少是一個(gè)粗略的架構(gòu)。

\\

當(dāng)然,也要看你都做了哪些架構(gòu)決策。在某些情況下,你不想編寫(xiě)單元測(cè)試,因?yàn)樗鼤?huì)降低代碼的質(zhì)量,或者測(cè)試用例太過(guò)復(fù)雜。你可以改為編寫(xiě)自動(dòng)化的場(chǎng)景或集成測(cè)試。關(guān)鍵是要對(duì)它們進(jìn)行自動(dòng)化。在以下步驟中,我假設(shè)它們是單元測(cè)試。

\\
  • 確定合理的測(cè)試用例;\\t
  • 確定測(cè)試條件;\\t
  • 編寫(xiě)一個(gè)骨架類(lèi)(只有方法簽名),讓代碼可以通過(guò)編譯;\\t
  • 編寫(xiě)測(cè)試代碼;\\t
  • 運(yùn)行測(cè)試(它應(yīng)該會(huì)失敗);\\t
  • 花最少的工作量讓測(cè)試用例可以運(yùn)行;\\t
  • 運(yùn)行自動(dòng)化測(cè)試;\\t
  • 重構(gòu)代碼;\\t
  • 再次運(yùn)行自動(dòng)化測(cè)試,保證軟件仍然可以正常運(yùn)行;\\t
  • 重復(fù),直到符合產(chǎn)品待辦事項(xiàng)(用戶(hù)故事)的驗(yàn)收標(biāo)準(zhǔn)。\
  • 第1步:確定合理的測(cè)試用例

    \\

    第一步是確定要編寫(xiě)的第一個(gè)測(cè)試是什么,你需要考慮到依賴(lài)關(guān)系。首先,你要實(shí)現(xiàn)你所依賴(lài)的變更。

    \\

    第2步:確定測(cè)試條件

    \\

    一個(gè)單元測(cè)試由三部分組成:Arrange、Act和Assert。為了確保只實(shí)現(xiàn)所需的內(nèi)容,你要知道方法的前置和后置條件。

    \\

    比如有這樣的一個(gè)用戶(hù)故事:

    \\\

    作為用戶(hù),我只想安排沒(méi)有沖突的預(yù)約,這樣就不會(huì)讓客戶(hù)失望。

    \\\

    在這個(gè)用戶(hù)故事中,用戶(hù)只想要沒(méi)有沖突的預(yù)約。有五種情況可能會(huì)讓新的預(yù)約產(chǎn)生沖突。

    \\
    • 新預(yù)約的開(kāi)始時(shí)間處于現(xiàn)有預(yù)約的時(shí)間范圍內(nèi);\
    • 新預(yù)約的結(jié)束時(shí)間處于現(xiàn)有預(yù)約的時(shí)間范圍內(nèi);\
    • 現(xiàn)有預(yù)約的開(kāi)始和結(jié)束時(shí)間段處于新預(yù)約的開(kāi)始和結(jié)束時(shí)間段內(nèi);\
    • 新預(yù)約的開(kāi)始和結(jié)束時(shí)間段處于現(xiàn)有預(yù)約的開(kāi)始和結(jié)束時(shí)間段內(nèi);\
    • 新預(yù)約的開(kāi)始和結(jié)束時(shí)間與現(xiàn)有預(yù)約完全一樣。\

    在進(jìn)行單元測(cè)試期時(shí),你檢查所有這些條件,以及方法的預(yù)期結(jié)果。

    \\

    第3步:編寫(xiě)一個(gè)骨架類(lèi)(只有方法簽名),讓代碼可以通過(guò)編譯

    \\

    這一步并不是正式TDD的一個(gè)步驟,不過(guò)這樣做可以給我們帶來(lái)方便,因?yàn)楹罄m(xù)我們就可以利用代碼自動(dòng)完成。

    \\

    你將創(chuàng)建一個(gè)類(lèi)(如果它是新的)和它的方法,但先不要實(shí)現(xiàn)任何功能代碼。

    \\

    第4步:編寫(xiě)測(cè)試代碼

    \\

    現(xiàn)在可以編寫(xiě)實(shí)際的測(cè)試代碼了,可以遵循Arrange、Act、Assert這樣的結(jié)構(gòu)。

    \\
  • Arrange:設(shè)置環(huán)境(如樁和測(cè)試數(shù)據(jù)),這樣就可以斷言你的測(cè)試方法。\\t
  • Act:調(diào)用方法!\\t
  • Assert:檢查結(jié)果、樁等等。\
  • 第5步:運(yùn)行測(cè)試(它應(yīng)該會(huì)失敗)

    \\

    運(yùn)行之前創(chuàng)建的測(cè)試,預(yù)期的結(jié)果是測(cè)試無(wú)法通過(guò)。如果它運(yùn)行成功了,你必須回到第4步。

    \\

    第6步:花最少的工作量讓測(cè)試用例可以運(yùn)行

    \\

    接下來(lái)是代碼時(shí)間!但是有一個(gè)問(wèn)題,你必須用盡可能少的代碼讓測(cè)試運(yùn)行通過(guò)。

    \\

    對(duì)于第2步中的預(yù)約用戶(hù)故事,還沒(méi)有用于檢查錯(cuò)誤日期的測(cè)試,這就是為什么之前先不實(shí)現(xiàn)它。

    \\

    第7步:運(yùn)行所有的自動(dòng)化測(cè)試

    \\

    寫(xiě)完代碼并通過(guò)測(cè)試后,就可以再次運(yùn)行所有的自動(dòng)化測(cè)試。新增加的代碼不應(yīng)該破壞已有的構(gòu)建或?qū)е缕渌麥y(cè)試失敗。

    \\

    如果出現(xiàn)其他測(cè)試失敗,請(qǐng)務(wù)必做出修改,讓所有測(cè)試可以再次通過(guò)。

    \\

    第8步:重構(gòu)代碼

    \\

    在運(yùn)行完所有的自動(dòng)化測(cè)試(全部通過(guò))之后,可以開(kāi)始對(duì)代碼進(jìn)行重構(gòu)了。

    \\

    這次應(yīng)該把重心放在代碼質(zhì)量上。檢查代碼是否符合編碼指南和規(guī)范,刪除重復(fù)的代碼,在不清晰的地方添加注釋。另外,添加用于生成文檔的注釋。

    \\

    還有一點(diǎn)不要忘了,看看當(dāng)前的解決方案是否仍然是能夠解決問(wèn)題的最簡(jiǎn)單的解決方案。

    \\

    第9步:再次運(yùn)行自動(dòng)化測(cè)試,保證軟件仍然可以正常運(yùn)行

    \\

    再次運(yùn)行所有測(cè)試,確保在重構(gòu)代碼后所有測(cè)試仍然可以通過(guò)。

    \\

    如果在代碼重構(gòu)后有測(cè)試失敗,就要做出必要梗概,再次讓所有測(cè)試都通過(guò)。

    \\

    第10步:重復(fù),直到符合待辦事項(xiàng)(用戶(hù)故事)的驗(yàn)收標(biāo)準(zhǔn)

    \\

    在前面的步驟中,你可能一次實(shí)現(xiàn)了一個(gè)或多個(gè)方法。在這一步,你需要驗(yàn)證是否滿足產(chǎn)品待辦事項(xiàng)或用戶(hù)故事所指定的驗(yàn)收標(biāo)準(zhǔn)。

    \\

    如果符合驗(yàn)收標(biāo)準(zhǔn),那么你的任務(wù)就完成了。如果沒(méi)有,請(qǐng)從頭開(kāi)始重復(fù)所有步驟。

    \\

    查看英文原文:https://myhomebase.nl/2018/09/test-driven-development-in-an-agile-world/??

    \\

    感謝張嬋對(duì)本文的審校。

    與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

    總結(jié)

    以上是生活随笔為你收集整理的在敏捷中应用测试驱动开发的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。