W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
測(cè)試是軟件開發(fā)的一個(gè)重要組成部分。不管我們是否意識(shí)到,我們一直在不斷地進(jìn)行測(cè)試。 例如,當(dāng)我們?cè)谟?PHP 寫一個(gè)類的時(shí)候,我們可能用 echo 或者 die 語句一步一步簡(jiǎn)單的調(diào)試 驗(yàn)證我們實(shí)現(xiàn)的代碼是否按照最初的計(jì)劃工作。在開發(fā) web 應(yīng)用的時(shí)候,我們?cè)诒韱沃休斎?一些測(cè)試數(shù)據(jù)來確保頁面能夠如預(yù)期那樣和我們進(jìn)行交互。
測(cè)試過程可能是自動(dòng)的,所以每次我們需要驗(yàn)證的時(shí)候,我們只需要調(diào)用它就可以測(cè)試代碼 了。 驗(yàn)證代碼執(zhí)行結(jié)果是否符合我們的計(jì)劃叫做測(cè)試,測(cè)試過程的創(chuàng)建以及進(jìn)一步執(zhí)行叫做 自動(dòng)化測(cè)試,這是這些測(cè)試章節(jié)的主要主題。
測(cè)試驅(qū)動(dòng)開發(fā)(TDD)和行為驅(qū)動(dòng)開發(fā)(BDD)在開始編寫實(shí)際代碼之前,首先通過描述一段 代碼的行為或?qū)⑵渥鳛橐唤M場(chǎng)景或測(cè)試的全部特征,然后創(chuàng)建符合這些測(cè)試預(yù)期驗(yàn)證的行為 實(shí)現(xiàn)。
開發(fā)一個(gè)功能的過程如下:
走完上面的過程之后,為其他功能或者擴(kuò)展重復(fù)上面測(cè)試過程。如果功能發(fā)生變化,測(cè)試也需 要跟著變化。
技巧: 如果你覺得你做一些很小很簡(jiǎn)單的迭代是在浪費(fèi)時(shí)間,請(qǐng)嘗試覆蓋更多的測(cè)試 場(chǎng)景,這樣你就可以在執(zhí)行測(cè)試之前做更多的嘗試。如果你的調(diào)試過多,試著做相反的工作。
在做一些具體的實(shí)現(xiàn)之前創(chuàng)建測(cè)試的原因是,這允許我們后期專注于我們想要的實(shí)現(xiàn),并且 可以花費(fèi)更多的精力到實(shí)現(xiàn)細(xì)節(jié)。在涉及功能調(diào)整的時(shí)候,這會(huì)使得抽象更合理、測(cè)試維護(hù) 更簡(jiǎn)單或者使得耦合元件更少。
這種做法的優(yōu)點(diǎn)如下:
在很長(zhǎng)一段時(shí)間內(nèi),這通常會(huì)給你提供一個(gè)有效的時(shí)間節(jié)省。
技巧: 如果你想了解更多關(guān)于收集軟件需求和建模的原則,最好去學(xué)習(xí)?Domain Driven Development (DDD)。
在測(cè)試的時(shí)候,對(duì)于一些相對(duì)復(fù)雜的項(xiàng)目上面的內(nèi)容是非常有意義的,但對(duì)于一些比較 簡(jiǎn)單的項(xiàng)目就做的有些極端了。適用場(chǎng)景如下:
在現(xiàn)有的實(shí)現(xiàn)行為中進(jìn)行覆蓋測(cè)試是非常適合的。
在一些情況下,任何形式的自動(dòng)化測(cè)試都是過于極端的:
假如你有很多的時(shí)間,在這種情況下進(jìn)行自動(dòng)測(cè)試也很好。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: