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

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

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

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

 
下載 FIT

集成測(cè)試框架(FIT)初是由 Ward Cunningham 創(chuàng)建的,他是 wiki 的發(fā)明人。請(qǐng)?jiān)L問(wèn) Cunningham 的 Web 站點(diǎn)了解關(guān)于 FIT 的更多知識(shí)并 免費(fèi)下載它。

FIT 化的解決方案

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

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

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

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

清單 1 是與圖 1 的數(shù)據(jù)模型對(duì)應(yīng)的 FIT 代碼。不要太多地?fù)?dān)心細(xì)節(jié) —— 只要注意代碼有多么簡(jiǎn)單,而且代碼中沒(méi)有包含驗(yàn)證邏輯(例如,斷言等)。可能還會(huì)注意到一些與表 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)代碼的開(kāi)發(fā)人員編寫。后,把所有東西合在一起,F(xiàn)IT 框架讀取表 1 的數(shù)據(jù),調(diào)用對(duì)應(yīng)的代碼,并確定結(jié)果。


FIT 和 JUnit

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

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

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