IntelliTest(3) - Test to Code Binding, Test Case Management[譯]

[作者提醒:從Visual Studio 2015 RC 版本開始冀惭,“Smart Unit Tests”已經(jīng)更名為“IntelliTest”]


??在這篇文章中尊浓,我們講到IntelliTest如何自動(dòng)生成測試用例伪窖,以及當(dāng)被測代碼改變時(shí),如何更新這些用例。針對一段被測代碼,IntelliTest會生成一個(gè)PUT方法滞谢,和一個(gè)或多個(gè)測試用例方法。在下面的示例圖中除抛,展示了以Pex開頭的特性的使用狮杨,它用于定義用例和被測代碼的約束關(guān)系,這些特性都定義在Microsoft.Pex.Framework命名空間下到忽。

image.png

在編譯時(shí)橄教,這些特性將作為它們所作用的類或方法的元數(shù)據(jù),嵌入到程序集中喘漏。在后續(xù)的調(diào)用中颤陶,IntelliTest通過反射,拿到元數(shù)據(jù)陷遮,并拿到定義在PUT上的契約。

??也許你已經(jīng)發(fā)現(xiàn)了垦江,自動(dòng)生成的測試用例都是傳統(tǒng)單元測試帽馋,它們也會顯示在Visual Studio 的測試用例瀏覽窗口中,就像你手寫的那些測試用例一樣比吭。不過绽族,自動(dòng)生成的測試用例并不希望被編輯。每一個(gè)自動(dòng)生成的測試用例都會調(diào)用PUT方法衩藤,PUT方法又會調(diào)用被測代碼吧慢。

??將自動(dòng)生成的單元測試和PUT測試方法分開,使得PUT測試方法可以作為一個(gè)統(tǒng)一的可以驗(yàn)證被測代碼正確性的地方赏表,通過PUT測試方法的調(diào)用检诗,所有測試用例都將被驗(yàn)證。在以后的博客中瓢剿,我們會討論正確性驗(yàn)證的方法逢慌,但這不是本篇博客討論的重點(diǎn)。將自動(dòng)生成的測試用例和PUT測試方法放在同一個(gè)程序集中也是非常重要间狂。

??關(guān)于自動(dòng)生成的測試用例的管理攻泼,可遵循如下規(guī)則:

  • 防止重復(fù)的用例。使用IntelliTest的過程中,測試引擎會經(jīng)常性的探測被測代碼忙菠,并生成測試用例何鸡,因此很可能會生成一些重復(fù)的用例,這些重復(fù)的用例都需要被移除掉牛欢。
  • 刪除那些無關(guān)緊要的測試用例骡男。隨著被測代碼的修改,之前的測試用例很可能變得無效氢惋,因此這部分測試用例需要被移除掉洞翩。

??那么如何實(shí)踐以上規(guī)則呢?
??將自動(dòng)生成的測試用例和PUT測試方法放在一個(gè)程序集中焰望,測試引擎通過掃描程序集中的Pex特性骚亿,優(yōu)先處理已經(jīng)存在的測試用例(這些測試用例都被PexGeneratedBy修飾),它獲取到這些用例的源碼熊赖,然后移除其中的空白占位符来屠,然后使用最終的字符串計(jì)算hash值。做完這些之后震鹉,測試引擎就有了一個(gè)測試用例集合對應(yīng)的hash字典俱笛,有了這個(gè)字典,在新的一次探測過程中传趾,就可以決定哪些測試用例已存在迎膜,而哪些是新添加的。對于那些沒有在新的探索中生成的用例浆兰,引擎會主動(dòng)刪除之磕仅。

??讓測試用例和隨時(shí)有變更可能的代碼保持同步是一件很困難的事情,主動(dòng)去修改大量測試用例以適配新的被測代碼簸呈,開銷無疑是巨大的榕订。我們希望這套自動(dòng)管理的測試用例的機(jī)制可以在面對這種變更時(shí),可以更加輕松的應(yīng)對蜕便。

強(qiáng)烈建議閱讀英文原文



2017-10-20 10:43:52

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末劫恒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子轿腺,更是在濱河造成了極大的恐慌两嘴,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件族壳,死亡現(xiàn)場離奇詭異溶诞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)决侈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門螺垢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喧务,“玉大人,你說我怎么就攤上這事枉圃」睿” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵孽亲,是天一觀的道長坎穿。 經(jīng)常有香客問我,道長返劲,這世上最難降的妖魔是什么玲昧? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮篮绿,結(jié)果婚禮上孵延,老公的妹妹穿的比我還像新娘。我一直安慰自己亲配,他們只是感情好尘应,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著吼虎,像睡著了一般犬钢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上思灰,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天玷犹,我揣著相機(jī)與錄音,去河邊找鬼洒疚。 笑死箱舞,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拳亿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼愿伴,長吁一口氣:“原來是場噩夢啊……” “哼肺魁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起隔节,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鹅经,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后怎诫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瘾晃,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年幻妓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蹦误。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,030評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖强胰,靈堂內(nèi)的尸體忽然破棺而出舱沧,到底是詐尸還是另有隱情,我是刑警寧澤偶洋,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布熟吏,位于F島的核電站,受9級特大地震影響玄窝,放射性物質(zhì)發(fā)生泄漏牵寺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一恩脂、第九天 我趴在偏房一處隱蔽的房頂上張望帽氓。 院中可真熱鬧,春花似錦东亦、人聲如沸杏节。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奋渔。三九已至,卻和暖如春壮啊,著一層夾襖步出監(jiān)牢的瞬間嫉鲸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工歹啼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留玄渗,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓狸眼,卻偏偏與公主長得像藤树,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子拓萌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理岁钓,服務(wù)發(fā)現(xiàn),斷路器微王,智...
    卡卡羅2017閱讀 134,659評論 18 139
  • 文章來自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鵬閱讀 9,193評論 2 126
  • 1.測試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過程屡限、活動(dòng)和任務(wù)的結(jié)構(gòu)性框架。軟件項(xiàng)目的開發(fā)包括:需求炕倘、設(shè)...
    宇文臭臭閱讀 6,725評論 5 100
  • 1.測試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過程钧大、活動(dòng)和任務(wù)的結(jié)構(gòu)性框架。軟件項(xiàng)目的開發(fā)包括:需求罩旋、設(shè)...
    Mr希靈閱讀 21,961評論 7 278
  • 今天上午在竹園賓館與中國十大名廚啊央,中國烹飪大師相聚會一一一
    廖其定閱讀 317評論 0 0