您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
試用FIT和JUnit進行需求測試工作
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/2/1 16:09:34 ] 推薦標(biāo)簽:

JUnit 假定測試的所有方面都是開發(fā)人員的地盤,而集成測試框架(FIT)在編寫需求的業(yè)務(wù)客戶和實現(xiàn)需求的開發(fā)人員之間做了協(xié)作方面的試驗。這是否意味著 FIT 和 JUnit 是競爭關(guān)系呢?不是!代碼質(zhì)量完美主義者 Andrew Glover 介紹了如何把 FIT 和 JUnit 兩者好的地方結(jié)合在一起,實現(xiàn)更好的團隊工作和有效的端到端測試。

在軟件開發(fā)的生命周期中,每個人都對質(zhì)量負有責(zé)任。理想情況下,開發(fā)人員在開發(fā)周期中,用像 Junit 和 TestNG 這樣的測試工具保證早期質(zhì)量,而質(zhì)量保證團隊用功能性系統(tǒng)測試在周期末端跟進,使用像 Selenium 這樣的工具。但是即使擁有的質(zhì)量保證,有些應(yīng)用程序在交付的時候仍然被認為是質(zhì)量低下的。為什么呢?因為它們并沒有做它們應(yīng)當(dāng)做的事。

在客戶、(編寫應(yīng)用程序需求的)業(yè)務(wù)部門和(實現(xiàn)需求的)開發(fā)團隊之間的溝通錯誤,通常是摩擦的原因,有時還是開發(fā)項目徹底失敗的常見原因。幸運的是,存在一些方法可以幫助需求作者和實現(xiàn)者之間盡早 溝通。

 
下載 FIT

集成測試框架(FIT)初是由 Ward Cunningham 創(chuàng)建的,他是 wiki 的發(fā)明人。請訪問 Cunningham 的 Web 站點了解關(guān)于 FIT 的更多知識并 免費下載它。

FIT 化的解決方案

集成測試框架 (FIT)是一個測試平臺,可以幫助需求編寫人員和把需求變成可執(zhí)行代碼的人員之間的溝通。使用 FIT,需求被做成表格模型,充當(dāng)開發(fā)人員編寫的測試的數(shù)據(jù)模型。表格本身充當(dāng)輸入和測試的預(yù)期輸出。

圖 1 顯示了用 FIT 創(chuàng)建的結(jié)構(gòu)化模型。第一行是測試名稱,下一行的三列是與輸入(value1 和 value2)和預(yù)期結(jié)果(trend())有關(guān)的標(biāo)題。

圖 1. 用 FIT 創(chuàng)建的結(jié)構(gòu)化模型

好消息是,對于編程沒有經(jīng)驗的人也能編寫這個表格。FIT 的設(shè)計目的是讓消費者或業(yè)務(wù)團隊在開發(fā)周期中,盡早與實現(xiàn)他們想法的開發(fā)人員協(xié)作。創(chuàng)建應(yīng)用程序需求的簡單表格式模型,可以讓每個人清楚地看出代碼和需求是否是一致的。

清單 1 是與圖 1 的數(shù)據(jù)模型對應(yīng)的 FIT 代碼。不要太多地擔(dān)心細節(jié) —— 只要注意代碼有多么簡單,而且代碼中沒有包含驗證邏輯(例如,斷言等)?赡苓會注意到一些與表 1 中的內(nèi)容匹配的變量和方法名稱;關(guān)于這方面的內(nèi)容后面介紹。

清單 1. 根據(jù) FIT 模型編寫的代碼

package test.com.acme.fit.impl;
import com.acme.sedlp.trend.Trender;
import fit.ColumnFixture;
public class TrendIndicator extends ColumnFixture {
  public double value1;
  public double value2;
  public String trend(){  
    return Trender.determineTrend(value1, value2).getName();
  }
}
 


清單 1 中的代碼由研究上面表格并插入適當(dāng)代碼的開發(fā)人員編寫。后,把所有東西合在一起,F(xiàn)IT 框架讀取表 1 的數(shù)據(jù),調(diào)用對應(yīng)的代碼,并確定結(jié)果。


FIT 和 JUnit

FIT 的優(yōu)美之處在于,它讓組織的消費者或業(yè)務(wù)端能夠盡早參與測試過程(例如,在開發(fā)期間)。JUnit 的力量在于編碼過程中的單元測試,而 FIT 是更高層次的測試工具,用來判斷規(guī)劃的需求實現(xiàn)的正確性。

例如,雖然 JUnit 擅長驗證兩個 Money 對象的合計與它們的兩個值的合計相同,但 FIT 可以驗證總的訂單價格是其中商品的價格減去任何相關(guān)折扣之后的合計。區(qū)別雖然細微,但的確重大!在 JUnit 示例中,要處理具體的對象(或者需求的實現(xiàn)),但是使用 FIT 時要處理的是高級的業(yè)務(wù)過程。

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd