視頻地址:https://www.zentao.net/programmer/programmer-test-80388.html
測試是怎麼來的?
時間退回到很久之前,大多數程序員都不寫測試。直到程序員葛麗絲·霍波發現了那隻被夾扁在電腦主機內的飛蛾,開始了程序的調試工作,這就是軟件測試的前身。
硬件工程中的Bug很難查,一旦出現,修復成本也很高,稍不留神就需要重新做一套模具。所以硬件工程往往有層層測試,來極早發現問題,儘量保證簡單且質量高。
同樣,軟件開發也不甘示弱。畢竟Bug被發現得越早,維護的成本就越低。SmallTalk世界裏不是有句話這樣說:“編一點,測一點”。
怎樣測試?
軟件開發中,需要測試的工作很多,主要有以下分類:
按測試階段分類:單元測試、集成測試、系統測試、驗收測試 按測試手段分類:黑盒測試、白盒測試、手工測試、自動化測試 按測試類型分類:功能測試、性能測試、兼容性測試 所有的軟件功能最終都會被測試,這是一場測試人員和終端用戶的賽跑。
測試人員沒有檢查出的Bug,最終都會由用戶測試出來,不良體驗會增加我們的用戶維護成本。爲了避免這種情況,可以通過各種測試來抓住漏網的Bug:
-
迴歸測試——確認今天的Bug修正有沒有影響到昨天可以工作的代碼
-
測試數據——測試的數據不能侷限於理想數據,要給出正常、異常狀態下的各種數據
-
對測試進行測試——故意引入Bug,證實這個Bug確實是個Bug
-
徹底測試——測試所有場景,但窮盡測試是不可能的,應設定及時終止的條件
-
對測試進行設計——編碼的同時,加入測試思維,使最終的代碼不僅僅能工作,還有利於後期的代碼維護
-
自動化測試——易出錯、需多次重複的測試,可以用自動化測試代替人力
測試中的二八原則
二八原則始於Pareto(帕雷託)原則,就是這個人(意大利經濟學家Villefredo Pareto)發明的,其實他就想告訴我們,做事要抓重點。二八原則用在軟件中,具體可以表達三個含義。
1、80%的錯誤是由20%的模塊引起的 系統中20%擁有複雜邏輯的關鍵模塊,往往會引起80%的錯誤,只有關鍵模塊穩定了,整個系統才能穩定。
2、80%的測試成本花在20%的軟件模塊中 測試工作中,用低效且量多的用例來測試核心模塊,在測試執行過程中必將導致一部分關鍵Bug找不到。
3、80%的測試時間花在20%的軟件模塊中 複雜的模塊或全新系統,需要投入充足的時間來設計思考測試用例,用時越短,風險越大。
好項目的測試代碼可能比產品代碼還要多。而事實證明,編寫這些測試所花的時間是值得的。因爲只有通過了全部測試,編碼纔算完成,這份高度自信,就是測試給的。