1. 程式人生 > >單元測試整理(一)——單元測試是什麼,有什麼好處

單元測試整理(一)——單元測試是什麼,有什麼好處

單元測試是什麼

單元測試是開發者編寫的一小段程式碼,用於檢驗被測程式碼的一個很小的、很明確的功能是否正確,通常而言,一個單元測試是用於判斷某個特定條件(或者場景)下某個特定函式的行為1

單元測試的好處

1,單元測試不但會使你的工作完成得更輕鬆。而且會令你的設計會變得更好,甚至大大減少你花在除錯上面的時間
2,提高程式碼質量
3,減少bug,快速定位bug
4,放心地修改、重構
5,顯得專業(玩笑話)

寫單元測試要注意什麼

1,不能只測試一條正確執行路徑,要考慮到所有可能的情況
2,要確保所有測試都能夠通過,避免間接損害
3,如果一個函式複雜到無法單測,那就說明模組的抽象有問題
4,配置不是單元測試的難點,難點是mock(後文講),做單元測試需要偽造被測函式用到的大部分函式

間接損害:在整個系統中,當某一部分加入了新特性,或者修復了一個bug之後,給系統的其他(與前面可能是互不相關的)部分引入了一個新的bug(或者損害)。如果無視這種損害並且繼續開發的話,那麼將可能帶來一個很危險的問題,最後可能會導致整個系統崩潰,並且沒人能夠修復。

為什麼寫單元測試(為什麼會拒絕單元測試)

編寫單元測試太花時間了?考慮下面問題:

1,對於所編寫的程式碼,你在除錯上面畫了多少時間?
2,對於以前你自認為正確的程式碼,而實際上這些程式碼卻存在重大的bug,你畫了多少時間在重新確認這些程式碼上面?
3,對於一個別人報告的bug,你花了多少時間才找出導致這個bug的原始碼位置?
對於那些沒有使用單元測試的程式設計師而言,上面這些問題所耗費的時間的遞增速度是很快的,而且隨著專案深入,遞增速度會變得更快;而另一方面,適當的單元測試卻可以很大程度地減少這些時間,從而為你騰出足夠的時間來編寫所有的單元測試——甚至可能還有剩餘的空閒時間。

執行測試的時間太長?

一般合適的測試是不會讓這種情況發生的。
有些真的會花很長時間的,可以把耗時的測試和其他測試分開。

不清楚程式碼的行為?

如果實在不清楚程式碼的行為,那麼現在應該也不是應該編碼的時候。

程式碼都能編譯通過啊?

ok,你的程式碼語法正確,應該也是可以執行的。但是程式碼的行為和你的預期是一樣的麼?

public void addItem(Object itemObject){
    List myList = new List;
    myList.add(itemObject);
    myList.add(itemObject);
    ...
}

你真的想把同一個物件加到 list 兩次麼?或許是,或許不是,但是編譯器並不能告訴你程式碼是否完成了你所期望的功能。

  1. 單元測試之道Java版——使用JUnit

相關推薦

單元測試整理——單元測試是什麼什麼好處

單元測試是什麼 單元測試是開發者編寫的一小段程式碼,用於檢驗被測程式碼的一個很小的、很明確的功能是否正確,通常而言,一個單元測試是用於判斷某個特定條件(或者場景)下某個特定函式的行為1。 單元測試的好處 1,單元測試不但會使你的工作完成得更輕鬆。而且會

單元測試整理——斷言篇首個單元測試程式

引子 單元測試主要是用來驗證所測程式碼是否和程式設計師的期望一致,如下所示,在實際操作中,我們可以編寫一個函式assertTure()來驗證預期條件是否滿足,也可以進一步編寫一個函式assertEquals()來判斷兩個數是否相等。事實上諸如此類判斷函式,我們

大資料系列之資料庫Hbase知識整理Hbase簡介叢集搭建

1.Hbase簡介   HBase是一個分散式的、面向列的開源資料庫,該技術來源於 Fay Chang 所撰寫的Google論文“Bigtable:一個結構化資料的分散式儲存系統”。就像Bigtable利用了Google檔案系統(File System)所提供的分散式資料儲

談談單元測試:為什麼要進行煩人的單元測試

前言 最近,在網上看到過一個調查,調查的內容是“程式設計師在專案開發中編寫單元測試的情況”。當然,至於調查的結果,我想聰明的你已經可以猜到了。高達 58.3% 的比例,一般情況下不寫單元測試,只有偶爾的情況才會寫寫。16.6%

淺談單元測試單元測試的意義

單元測試是檢查一個獨立工作單元的行為。在JAVA應用程式中,獨立工作單元經常是(但不總是)一個獨立的方法。相比之下,整合測試和驗收測試檢查的是各種元件如何互動。一個工作單元就是一項任務,不直接依賴於其

unittest--python單元測試模組

unittest是python中的單元測試模組,類似於java中的junit包,下面就簡單介紹一下這個模組的使用方法 首先定義一個計算器類:calculator.py,其中有一個加法方法add class Calculator: def __init__(self

JustMock .NET單元測試利器

1.什麼是Mock? Mock一詞是指模仿或者效仿,用於建立例項和靜態模擬、安排和驗證行為。在軟體開發中提及"mock",通常理解為模擬物件。模擬物件的概念就是我們想要建立一個可以替代實際物件的物件,

Python 單元測試框架系列:聊聊 Python 的單元測試框架:unittest

作者:HelloGitHub-Prodesire HelloGitHub 的《講解開源專案》系列,專案地址:https://github.com/HelloGitHub-Team/Article 前言 說到 Python 的單元測試框架,想必接觸過 Python 的朋友腦袋裡第一個想到的就是

談談單元測試測試工具 TestNG

前言 上一篇文章《測試工具 JUnit 4》中提到了 JUnit 4,並對 JUnit 4 做了簡單的討論,這篇文章我們將要圍繞另一款測試工具討論 —— TestNG。其實,這篇文章應該寫在《測試工具 JUnit 3》之後,和《測試工具 JU

談談單元測試測試工具 JUnit 4

前言 上一篇文章《測試工具 JUnit 3》簡單的討論了 JUnit 3 的使用以及內部的方法。這篇文章將會在 JUnit 3 的基礎上,討論一下 JUnit 4 的新特性。同時,與 JUnit 3 做一個簡單的對比。那麼,廢話就不多說了,直

談談單元測試測試工具 JUnit 3

前言 上一篇文章《 為什麼要進行煩人的單元測試?》討論了一下現階段軟體開發中,程式設計師們測試情況的現狀。這篇文章中,我打算介紹一下單元測試的工具(外掛),並且推薦大家以後在開發中,真正的用上單元測試,用好單元測試。

Brup Suite 滲透測試筆記

自動提交表單 .com repeater 運行 圖片 admin 配置 執行 開放 收集的資料整理如下: http://www.nxadmin.com/啊德瑪web安全網站 功能介紹: 1、作為代理,默認端口設置8080上運行,截獲修改客戶端到web應用程序的數

測試人員必知的快速測試方法.

軟件測試 快速測試 測試方法 對有些測試經驗的測試人士來說,都有總結或掌握一些小眾的測試技巧。而快速測試是一組基於風險的測試方法,是針對某些常見的軟件缺陷,實施專項攻擊,一般不需要大量的測試時間,只了解產品基本情況就可以在短時間內在發現一批錯誤 。以下是測試專家James Bachd 在快速軟件測

通用測試內容

按鈕 退出 結束 輸入數據 登陸 命名 設置密碼 次數 文字顏色 1 字符型輸入框:   長度檢查:最小長度、最大長度、最小長度-1、最大長度+1、超入超工字符如把整個文章拷貝過去   空格檢查:輸入的字符間有空格、字符前有空格、字符後有空格、字符前後有空格   多行文本框

性能測試入門:性能測試中的各項指標告訴我們什麽

並不是 速度 阿裏 機制 找到 客戶 測試過程 著名 HP 性能測試 性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。 按照不同的目標,可以分為負載測試、壓力測試、容量測試、穩定性測試。平時工作中如果不是專業的測試機構,開

ngrinder 壓力測試實踐 -- ngrinder介紹及部署

ngrinder dockr ngrinder ngrinder 介紹 ngrinder 是一款操作簡單,功能強大的分布式壓力測試工具,其可以簡單快速的開始測試,也可以靈活根據實際需求設計場景完成壓力測試工作。 快速開始第一步:輸入待測地址 第二步:設定壓測參數 第三步:設定預約或立刻開始 第四

性能測試基礎

並發測試 資源 數量級 記錄 依據 峰值 發生 數量 描述   性能測試包括執行效率、資源占用率、系統穩定性、安全性、兼容性、可靠性、可擴展性等,性能測試就是為描述測試對象與性能相關的特征並對其進行評價而實施和執行的一類測試。性能測試主要通過自動化的測試工具模擬多種正常

網路相關基礎知識總結吞吐量測試&吞吐量與頻寬區別

一.概念 網路中的資料是由一個個資料包組成,防火牆對每個資料包的處理要耗費資源。吞吐量是指在沒有幀丟失的情況下,裝置能夠接受的最大速率。 1.作用地位 網路吞吐量測試是網路維護和故障查詢中最重要的手段之一,尤其是在分析與網路效能相關的問題時吞吐量的測試是必備的測試手段。 作為驗證和測試網

效能測試基本知識

一、如何辨別效能出現問題? 1、響應時間長 2、卡頓、掉幀,如擼啊擼遊戲,關閉特效會速度快 3、無響應 4、有響應,但無法服務,如12306刷不出車票 5、長時間loading 二、效能為什麼會出現問題? 1、硬體處理能力不足 對於單機應用來講,卡頓可能是本機處理能力不足 對於網路或手遊,卡

如何估算測試工作量常規的估算測試工作量的方法

相關 風險 delphi 積累 log 不同 功能點 經驗 依賴 如何估算測試工作量(一)常規的估算測試工作量的方法作為一個管理者,你是否被詢問到某個項目要花多少時間,多少人力測試;或是作為一個普通的測試員,你是否被詢問到要花多少時間來完成某個任務或是一次回歸測試?我想大多