【軟件測(cè)試】測(cè)試才是項(xiàng)目的主導(dǎo),憑什么聽(tīng)開(kāi)發(fā)的?-創(chuàng)新互聯(lián)

很多時(shí)候很多公司都是產(chǎn)品說(shuō)了算,在之后就是開(kāi)發(fā),測(cè)試的地位比較低,但是事實(shí)真的是這樣嗎,成熟的項(xiàng)目進(jìn)行中應(yīng)該是測(cè)試人員作為主導(dǎo)的,測(cè)試是唯一一個(gè)最早進(jìn)入項(xiàng)目、最后確認(rèn)項(xiàng)目完工的職位,所以本文就是幫助大家糾正這個(gè)錯(cuò)誤

創(chuàng)新互聯(lián)建站主要從事網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)張家口,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108

那么各位測(cè)試大大準(zhǔn)備好“挾天產(chǎn)品以令開(kāi)發(fā)”了嗎?

一、反應(yīng)真實(shí)需求

這里存在先寫(xiě)測(cè)試和后寫(xiě)測(cè)試的區(qū)別。

先說(shuō)后寫(xiě)測(cè)試。根據(jù)很多經(jīng)驗(yàn),在直接寫(xiě)產(chǎn)品實(shí)現(xiàn)代碼時(shí),需要考慮需求,同時(shí)需要兼顧實(shí)現(xiàn)的細(xì)節(jié),用什么算法和語(yǔ)法。在對(duì)需求和考慮和實(shí)現(xiàn)細(xì)節(jié)間來(lái)回,很容易讓人產(chǎn)生對(duì)其中一方的疏忽,遺漏掉一些需求方面,甚至在實(shí)現(xiàn)上存在缺陷。

有人會(huì)說(shuō)我可以通過(guò)后寫(xiě)測(cè)試來(lái)保證。第一經(jīng)驗(yàn)是,很多人都不會(huì)在實(shí)現(xiàn)完成后,補(bǔ)充測(cè)試,因?yàn)檫€有更多的工作和需求需要實(shí)現(xiàn)。第二是開(kāi)發(fā)人員很容易在后補(bǔ)的測(cè)試中,只是試圖去測(cè)試他已有的實(shí)現(xiàn),而不是需求本身,很容易遺漏掉一些邊界檢查之類,在測(cè)試時(shí),已有的實(shí)現(xiàn)細(xì)節(jié)會(huì)在腦子里面先入為主,即使實(shí)現(xiàn)存在問(wèn)題或有漏洞,也很難在后補(bǔ)的測(cè)試中測(cè)出來(lái)。我閱讀過(guò)很多面試者的測(cè)試代碼,很明顯都是后補(bǔ)的,因?yàn)橐恍┖苊黠@的問(wèn)題沒(méi)有測(cè)出來(lái),甚至已經(jīng)實(shí)現(xiàn)的邏輯也是只測(cè)試了一部分。而這些面試者都承認(rèn)。

結(jié)果就是,一旦代碼簽入,開(kāi)始集成之后,暴露出問(wèn)題,后補(bǔ)的測(cè)試起不到對(duì)于實(shí)現(xiàn)代碼的保障需求的作用,開(kāi)發(fā)者不能不借助調(diào)試工具,單步跟蹤實(shí)現(xiàn)代碼的每一行去尋找問(wèn)題發(fā)生的原因。

再說(shuō)先寫(xiě)測(cè)試。按照TDD的流程,先寫(xiě)失敗的測(cè)試,再寫(xiě)恰好讓測(cè)試成功的實(shí)現(xiàn)代碼,最后重構(gòu),如此往復(fù)。這樣的好處在于,每先寫(xiě)一個(gè)測(cè)試,都是在試圖用自己對(duì)問(wèn)題和需求的理解,來(lái)定義實(shí)現(xiàn)代碼的架子。從測(cè)試的不同角度,范圍、邊界、大小、功能等等,來(lái)定義實(shí)現(xiàn)代碼將來(lái)會(huì)是個(gè)什么樣子。一個(gè)測(cè)試接著一個(gè)測(cè)試,利用TDD的過(guò)程,把實(shí)現(xiàn)代碼恰好不多不少,正好驅(qū)動(dòng)出解決這個(gè)需求和問(wèn)題的實(shí)現(xiàn)代碼來(lái)。

這里的重點(diǎn)在于,先寫(xiě)測(cè)試可以讓開(kāi)發(fā)者把重點(diǎn)放在理解需求和實(shí)現(xiàn)需求上,而不是一開(kāi)始就陷入實(shí)現(xiàn)的細(xì)節(jié)中同時(shí)兼顧需求,掉入兩者都兼顧不好的境地。先寫(xiě)的測(cè)試代碼,作為副產(chǎn)品,可以作為驗(yàn)證需求的得力保障。

二、設(shè)計(jì)在其中

先寫(xiě)測(cè)試對(duì)于設(shè)計(jì)的好處在于,先寫(xiě)測(cè)試先定義新的類,以及定義類與類之間的關(guān)系,就是在定義類與類之間如何交互,每個(gè)類如何暴露自己的接口,類和類之間的引用關(guān)系。這時(shí),測(cè)試代碼會(huì)逼迫開(kāi)發(fā)者認(rèn)真考慮如何分解類與類之間的耦合關(guān)系,這樣產(chǎn)生的實(shí)現(xiàn)代碼更容易利用了IoC和DIP的模式,實(shí)現(xiàn)面向接口編程。

這樣實(shí)現(xiàn)代碼的好處還在于,代碼的可測(cè)試性很高,在加入更多的測(cè)試代碼和新類的時(shí)候,同樣借力于已有類的面向接口和依賴反轉(zhuǎn)所帶來(lái)的可測(cè)試性,達(dá)到新實(shí)現(xiàn)代碼的面向接口和可測(cè)試性,這樣進(jìn)入良性循環(huán)。而這對(duì)于整體的代碼和設(shè)計(jì),獲益良多。換句話說(shuō),測(cè)試即設(shè)計(jì)。

回頭看后寫(xiě)測(cè)試的情況,因?yàn)閺囊婚_(kāi)始開(kāi)發(fā)者把重心放在實(shí)現(xiàn)的細(xì)節(jié)和功能需求的往復(fù)上,對(duì)于代碼設(shè)計(jì)、類的關(guān)系和定義很容易疏于考慮,產(chǎn)生的結(jié)果可能是耦合緊,可測(cè)試性差。

三、增強(qiáng)信息

在我看來(lái),軟件開(kāi)發(fā)周期、軟件交付大的問(wèn)題在于交付后的運(yùn)行和維護(hù)階段,正是這個(gè)階段才是軟件在持續(xù)交付價(jià)值的時(shí)期。在軟件的可維護(hù)性,在這個(gè)階段凸顯價(jià)值。在軟件交付后,包括軟件開(kāi)發(fā)周期期間,不可避免的就是開(kāi)發(fā)者在根據(jù)新的需求,逐漸添加新的功能代碼,或者修復(fù)一些已知的缺陷。

很多經(jīng)驗(yàn)表明,在開(kāi)發(fā)者按照需求添加一些新的代碼進(jìn)入系統(tǒng),或者試圖修復(fù)已有缺陷時(shí),很容易導(dǎo)致既有功能出錯(cuò),也就是新引入的代碼打破了既有代碼的邏輯,導(dǎo)致回歸問(wèn)題的出現(xiàn)。因?yàn)檐浖到y(tǒng)的可測(cè)試性差,無(wú)法做到快速頻繁自動(dòng)的回歸測(cè)試,帶來(lái)的可維護(hù)性自然也很差。

而作為T(mén)DD的副產(chǎn)品之一——可以快速頻繁自動(dòng)運(yùn)行的測(cè)試代碼,可以在開(kāi)發(fā)者新引入代碼之際,給予開(kāi)發(fā)者足夠的信心,每次添加一點(diǎn)新代碼,一個(gè)方法,一個(gè)類,都已頻繁運(yùn)行已有相關(guān)的測(cè)試代碼,來(lái)確保新引入代碼不會(huì)打破已有的功能。

在持續(xù)集成中,這些測(cè)試代碼可以幫助驗(yàn)證每次簽入的代碼都不會(huì)破壞掉已有的功能。這也是《重構(gòu)》里面反復(fù)提到的在每個(gè)重構(gòu)小步驟后都要運(yùn)行所有的測(cè)試代碼的原因所在。

四、粒度與進(jìn)度

按照TDD的原則,先寫(xiě)測(cè)試,可以讓開(kāi)發(fā)者在同一時(shí)間只關(guān)注在功能需求的一小部分,把功能需求且分到一定小的粒度,用測(cè)試代碼去表示這樣的需求,用實(shí)現(xiàn)代碼讓測(cè)試通過(guò),實(shí)現(xiàn)這樣的需求,然后重構(gòu)。

這樣的好處在于,開(kāi)發(fā)者自己的注意力和重心不用在整個(gè)功能需求內(nèi)的小需求點(diǎn)之間猶豫,每次注重解決單個(gè)小問(wèn)題,解決完一個(gè)進(jìn)入下一個(gè)小問(wèn)題的解決。在保證小粒度實(shí)現(xiàn)的同時(shí),保證進(jìn)度可以隨時(shí)被打斷,但同時(shí)被打斷時(shí)已經(jīng)做完的是完整可以運(yùn)行,至少是實(shí)現(xiàn)了部分需求的實(shí)現(xiàn)代碼。

而后寫(xiě)測(cè)試的代價(jià)是,首先實(shí)現(xiàn)代碼很有可能包含設(shè)計(jì)上的問(wèn)題,甚至含有缺陷,在完美的測(cè)試代碼完成之前(事實(shí)上這是不可能的),可以交付的是可能存在嚴(yán)重缺陷,甚至是曲解了功能需求的實(shí)現(xiàn)代碼。

今天送給大家的福利是《標(biāo)準(zhǔn)版測(cè)試需求文檔》文檔為上市公司需求文檔

需要的小伙伴可以在評(píng)論中留言

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前名稱:【軟件測(cè)試】測(cè)試才是項(xiàng)目的主導(dǎo),憑什么聽(tīng)開(kāi)發(fā)的?-創(chuàng)新互聯(lián)
URL地址:http://muchs.cn/article0/coccio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、面包屑導(dǎo)航網(wǎng)站策劃、ChatGPT營(yíng)銷型網(wǎng)站建設(shè)、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司