首頁 培訓網(wǎng) 最新資訊 熱門問答

軟件測試

免費試聽 在線客服

您的位置: 深圳培訓網(wǎng) > 軟件測試培訓資訊 > 為什么要測試,測試是如何令人更快樂的?(二)

為什么要測試,測試是如何令人更快樂的?(二)

來源:教育聯(lián)展網(wǎng) | 發(fā)布時間: | 編輯:佚名

來源:51Testing軟件測試網(wǎng)

 

知道測試什么是關(guān)鍵
知道測試什么沒有聽上去得那么容易,并且有很大一部分是由經(jīng)驗所決定的。許多測試測試得太多。知道要測試什么涉及到要了解什么重要,什么不重要,而要知道這些并不是一件隨隨便便就能做到的事情。這里有一個技巧,但:
“盡可能采用**高級別的測試,以便于在實現(xiàn)上覆蓋范圍和靈活性?!?/span>——Brian Lonsdorf,《JavaScript. Air 004》
所以,基本上:
不要測試內(nèi)部的東西,這只會成為你的阻礙。如果你真的覺得你應(yīng)該測試內(nèi)部的東西,那么你**分離成一個新的模塊,使之成為外部的東西。
不要測試過于指定,或處理它們不必和不應(yīng)該知道的東西。
不要只是為了獲得 100% 的覆蓋率而去寫測試。如果有人告訴你應(yīng)該保持 100% 的覆蓋率,那么不要廢話,揍他。
請記住,測試應(yīng)該從模塊外部的角度開始由外到內(nèi)。需要注意的是完全覆蓋的測試還是有可能的,即代碼的所有分支應(yīng)該都可以實現(xiàn)。如果沒有,那么它們基本上是死碼,不是嗎?除非你需要更好地理解它們是如何工作的,否則就不要測試內(nèi)部的東西。
想想當一段時間以后,代碼重構(gòu)的時候,會發(fā)生什么。實現(xiàn)應(yīng)該允許在測試不失敗的情況下被更改。為什么?因為如果將來的程序員需要改測試的話,那么基本上是重寫,而不是重構(gòu)。并且重寫并不安全。對于重構(gòu)內(nèi)部應(yīng)該沒有新的測試。
在測試時要務(wù)實。測試是項目以及創(chuàng)造價值的一部分,什么都拿來測試沒有任何意義,就像實現(xiàn)所有按鈕沒有意義一樣。記住文檔方面。如果測試涉及許多實施細節(jié),那么我們就會失去模塊的重點。我們就會失去文檔的價值。
至于文檔,測試你的領(lǐng)域假設(shè)。這些都是你工作的問題域的代碼解釋,這些問題域往往是一些程序員不擅長的地方。用代碼的形式文檔化這些假設(shè)解決了兩個問題:自我文檔化假設(shè),并證明它們能夠如解釋那樣有效工作。
當你發(fā)現(xiàn) bug 的時候,編寫測試。不要只是修復(fù)它。去寫測試,確保它既是紅的,又對齊 bug 所沒有意識到的期望。修復(fù) bug,使其呈現(xiàn)綠色。保存。
代碼覆蓋作為一個具體的數(shù)字被高估了,但作為一種工具它還是很有用的。不要為了覆蓋范圍而力求覆蓋。請記住,覆蓋范圍只能告訴你測試在代碼行運行什么,而不會告訴你測試將運行什么組合。不過,這可以成為事情是否朝著正確方向前進的一個很好的風向標。如果重構(gòu)導致更糟的代碼覆蓋范圍,那么就應(yīng)該響起警鈴,尤其是如果它是重構(gòu)的話。不要只是為了增加覆蓋數(shù)值就讓自己去編寫測試。經(jīng)過充分測試和編寫良好的代碼的覆蓋數(shù)值更大。
編寫測試的觸發(fā)器是當你的代碼片段有新的行為的時候。測試應(yīng)該盯牢這種行為,但不要矯枉過正。
測試庫可能比測試終端應(yīng)用程序更容易,更為重要。畢竟,庫會被多個應(yīng)用程序使用。
如何編寫特別棒的測試
知道如何寫出好的測試是關(guān)鍵,因為很容易寫得不好。事實是,和其他所有一切一樣,它需要實踐。不過,這里有一些小貼士。
好的測試往往是簡單的。它不會嘗試一氣呵成面面俱到。它的名字反映了它要的目的,并且名稱應(yīng)該精簡成一句話。例如,名稱不應(yīng)該是“it works”,而是“it returns 0 for negative values”。
確保測試不要過于指定。 過于指定的測試涉及到太多內(nèi)部東西,并且不允許重構(gòu)。
單元測試運行代碼時會隔離其他測試,不一定是其他代碼的測試。它將代碼帶出它的上下文,并創(chuàng)建其中一個方面的人工上下文,以便于進行調(diào)查。然而,這并不意味著單元測試必須得在隔離其他所有代碼的情況下運行,盡管這通常被認為是“純單元測試”。所有一切都沒有必要 mock 和 stub,因為只會導致更復(fù)雜的設(shè)置,更低的覆蓋率和更加脆弱的測試。
在有意義的地方使用 mock 和 stub。你不想對一個真正的 HTTP API 進行測試,那就 stub。如果你正在測試的東西是你自己對該對象的調(diào)用,或你想要自己的代碼歷經(jīng)某個路徑,那么使用使用 mock 和 stub。
測試讀起來應(yīng)該像一個小故事,遵循 AAA 體系: Arrange、Act、Assert。設(shè)置東西,做出聲明,并且斷言聲明做了它應(yīng)該做的。 “小故事”方面要重視小的方面。“3A”中沒有一個應(yīng)該超過 3 行代碼以上。在階段之間留一些空間會更好。應(yīng)該沒有任何分支和循環(huán),你在斷言時應(yīng)該只涉及一個邏輯內(nèi)容。 (如果一個斷言語句就能表達自然是好,但有時你需要更多,那也沒關(guān)系。)永遠不要在測試的兩個不同的地方斷言,因為這會導致你實際測試的混亂。
測試應(yīng)該只需要一些領(lǐng)域知識就可讀。如果不深入模塊的內(nèi)部運作就很難解釋的話,那么要么你**多花一些時間在測試上,那么徹底棄之不顧。
一般情況下,不要測試依賴。對于某些項目,對一些代碼所做的假設(shè)做一些簡單的測試,可能是有意義的,但要謹慎和小心。測試庫是庫作者的工作。相反,要依靠更新日志進行升級,以及依賴于測試集成而不是庫(不用 mock 一切的一個原因)。
編寫不需要很長時間運行的低成本測試,因為要時常運行這些測試。如果你可以傳遞 --watch 參數(shù)到你的測試運行中,并且在每次有文件改變時運行它,那么這是一件好事。
**后但并非**不重要的一點是,使用你喜歡的測試框架。如果 JavaScript. 是你的菜,那么我會推薦 AVA,因為它清晰簡單,而且沒有復(fù)雜的配置。不管你選擇什么,確保測試框架能和你一起工作,并幫助你編寫測試更高效,更快捷。正如編碼一樣,如果你覺得不好玩,那么可能有什么地方出錯了。


教育聯(lián)展————專業(yè)的軟件測試咨詢服務(wù)平臺。
詳詢:王萍老師18988787201
詳詢:小文老師18988787201
深圳軟件測試培訓 深圳軟件測試培訓班
王萍老師 小文老師


課程精選:

中華考試網(wǎng)軟件測試培訓》
教育軟件測試培訓頻道》
《軟件測試培訓課程——深圳川石
《深圳川石軟件性能測試培訓》
《深圳川石企業(yè)性能測試(PL&LR)提升班
《持續(xù)集成自動化測試UFT Selenium提升班》
《深圳源昊寶安軟件測試培訓班》
《深圳凌岳軟件自動化測試培訓班》
《深圳博睿軟件安全測試培訓》
深圳達內(nèi)軟件測試培訓學?!?/a>

熱門機構(gòu)推薦
軟件測試

免費體驗課開班倒計時

11: 41: 09

稍后會有專業(yè)老師給您回電,請保持電話暢通

咨詢電話:

本周熱門資訊

全國分站 熱門機構(gòu)

北京軟件測試培訓 上海軟件測試培訓 廣州軟件測試培訓 深圳軟件測試培訓 杭州軟件測試培訓 蘇州軟件測試培訓 南京軟件測試培訓 天津軟件測試培訓 佛山軟件測試培訓 南寧軟件測試培訓 長沙軟件測試培訓 重慶軟件測試培訓 太原軟件測試培訓 青島軟件測試培訓 寧波軟件測試培訓 鄭州軟件測試培訓 西安軟件測試培訓 廈門軟件測試培訓 武漢軟件測試培訓 成都軟件測試培訓 無錫軟件測試培訓 濟南軟件測試培訓 昆明軟件測試培訓 貴陽軟件測試培訓 揚州軟件測試培訓 徐州軟件測試培訓 珠海軟件測試培訓 合肥軟件測試培訓 長春軟件測試培訓

深圳博為峰教育廣州博為峰教育深圳中公優(yōu)就業(yè)南京博為峰教育

申請試聽名額

已有10254人申請免費試聽

01電話咨詢 |

QQ:
加盟合作:0755-83654572

今日已有25人申請,本月限額500