《持續(xù)交付》 - 自動化驗收測試

一 驗收測試


驗收測試的最終目標就是為了驗證應用程序是否提供了用戶所需要的功能。這在單元測試中是體現(xiàn)不出來的,單元測試只是驗證了代碼的某一部分是按照開發(fā)人員的思路運行的。所以去做驗收測試是很有必要的塌衰,對于每一個驗收測試來說,只有其滿足了驗收從條件(功能和非功能性的)注祖,我們才能確定我們真的完成了當前這一用戶故事或需求猾蒂。 驗收測試階段的工作流程:

驗收測試流程

對項目進行驗收測試是必不可少的,而相對于手工測試來說是晨,自動化驗收測試應該是我們的首先肚菠,它可以帶來:

  • 通過合理的創(chuàng)建和維護自動化驗收測試套件,其成本遠小于手工驗收
  • 發(fā)布高質(zhì)量軟件

二 創(chuàng)建自動化驗收測試


1罩缴、分析人員和測試人員的角色

理想狀況下蚊逢,每個項目開發(fā)團隊中都應該有專門的分析人員和測試人員层扶,而且分析人員在團隊中起著非常重要的作用

  • 與客戶一起識別需求,排定優(yōu)先級
  • 與開發(fā)人員一起工作烙荷,對開發(fā)人員進行指導镜会,確保開發(fā)人員能改很好的理解應用程序從而交付真正有價值的用戶故事
  • 與測試人員一起工作,確保測試人員開發(fā)的驗收條件被合理的闡明出來

但在真實的情況下终抽,很多的項目團隊并沒有專業(yè)的分析人員和測試人員戳表,那么這種情況下,開發(fā)人員便應該去做分析人員的工作或者是測試人員去做分析人員的工作昼伴,又或者團隊在一起擔任分析人員的角色匾旭。

2、迭代開發(fā)項目中的分析工作

迭代開發(fā)的核心就是部署流水線線圃郊,即“在任何時候都可以讓應用程序運行在選定的環(huán)境上”价涝,為了達成這一目的。分析人員和測試人員應該積極的協(xié)作一起編寫有效的驗收測試持舆,編寫完成后應該和客戶進一步的確定色瘩,避免扭曲了用戶的需求。而開發(fā)人員在分析需求時也應該積極且頻繁的去詢問分析人員逸寓。

3居兆、將驗收條件變成可執(zhí)行的規(guī)格說明書

既然是迭代開發(fā)的項目,那么也就意味著需求的變動也會比較頻繁竹伸,那么需求規(guī)格說明書的編寫者便會非常的痛苦了史辙。所以行為驅(qū)動開發(fā)(BDD)的理念就誕生了,即驗收測試應該以用戶期望的應用程序行為的方式來書寫佩伤。也就是說我們應該把驗收條件直接在應用程序上編寫并運行,這樣就可以很好的驗證其是否滿足規(guī)格說明了晦毙。

4生巡、應用程序驅(qū)動層

程序應用驅(qū)動層是一個知道如何與應用程序(即被測試的系統(tǒng))打交道的層次。應用程序驅(qū)動層所用的 API 是以某種領域語言表達的见妒,可以認為是一種針對它自己的領域?qū)僬Z言孤荣。

DSL(Domain-Specific Language,領域?qū)僬Z言)是一種計算機編程語言须揣,用于解決某個具體問題域的某個問題盐股,它與通用編程語言不同,因為它無法像通用編程語言那樣可以解決很多類型的問題耻卡,它專門為解決某個專屬問題域的問題而設計疯汁。
DSL 分為兩種:內(nèi)部的和外部的,外部的 DSL 在其指令被執(zhí)行之前就需要明確的解析卵酪。而內(nèi)部的 DSL 需要直接在代碼中表達幌蚊。

5谤碳、窗口驅(qū)動器模式,讓測試和 GUI 解耦

窗口驅(qū)動器模式是通過提供一個抽象層(相應的測試工具)溢豆,減少驗收測試和被測試系統(tǒng) GUI 之間的耦合蜒简。這樣我們在對 UI 進行了修改后,只需要對窗口驅(qū)動器做相應的應該即可漩仙,不需要去修改測試搓茬。

三 實現(xiàn)驗收測試


1、驗收測試中的狀態(tài)

由于驗收測試要模擬用戶在真實的應用場景下與系統(tǒng)進行交互队他,那么這個時候便會建立并依賴系統(tǒng)中所管理的狀態(tài)信息卷仑,這也就是說在進行測試前,系統(tǒng)就應可處于一個特定的已知狀態(tài)漱挎。面對這種情況系枪,我們應該去編寫一組腳本(存儲在版本庫中)用于初始化當前的狀態(tài)。其次我們應該讓我們的測試具有原子性的(創(chuàng)建自己的初始條件磕谅,結(jié)束時將環(huán)境清理干凈)私爷,保證每個測試都盡量的和其它的測試隔離。從而可以得到快速的反饋膊夹。

2衬浑、過程邊界、封裝和測試

盡量避免為了方便測試而去編寫后門放刨。

3工秩、管理異步與超時問題
4、使用測試替身對象

四 驗收測試階段


1进统、確保驗收測試一直處于通過狀態(tài)
2助币、部署測試

驗收測試的環(huán)境應該盡量和生產(chǎn)環(huán)境保持一致,或者使用虛擬技術來模擬生產(chǎn)環(huán)境螟碎。在部署測試前我們應選擇運行一次冒煙測試用來證明我們的配置環(huán)境是否和期望一致眉菱。一旦部署測試失敗,我們應該讓整個驗收測試失敗掉分。

五 驗收測試的性能


1俭缓、重構通用任務

比如設計測試共用的 API

2、共享昂貴資源

比如在創(chuàng)建一個空白的應用程序?qū)嵗止瑢⑼ㄓ玫膶嵗M行統(tǒng)一的創(chuàng)建华坦,最后統(tǒng)一的銷毀。

3不从、并行測試

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惜姐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子椿息,更是在濱河造成了極大的恐慌载弄,老刑警劉巖耘拇,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異宇攻,居然都是意外死亡惫叛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門逞刷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嘉涌,“玉大人,你說我怎么就攤上這事夸浅÷刈睿” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵帆喇,是天一觀的道長警医。 經(jīng)常有香客問我,道長坯钦,這世上最難降的妖魔是什么预皇? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮婉刀,結(jié)果婚禮上吟温,老公的妹妹穿的比我還像新娘。我一直安慰自己突颊,他們只是感情好鲁豪,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著律秃,像睡著了一般爬橡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上棒动,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天堤尾,我揣著相機與錄音,去河邊找鬼迁客。 笑死,一個胖子當著我的面吹牛辞槐,可吹牛的內(nèi)容都是我干的掷漱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼榄檬,長吁一口氣:“原來是場噩夢啊……” “哼卜范!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鹿榜,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤海雪,失蹤者是張志新(化名)和其女友劉穎锦爵,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奥裸,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡险掀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了湾宙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片樟氢。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖侠鳄,靈堂內(nèi)的尸體忽然破棺而出埠啃,到底是詐尸還是另有隱情,我是刑警寧澤伟恶,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布碴开,位于F島的核電站,受9級特大地震影響博秫,放射性物質(zhì)發(fā)生泄漏潦牛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一台盯、第九天 我趴在偏房一處隱蔽的房頂上張望罢绽。 院中可真熱鬧,春花似錦静盅、人聲如沸良价。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽明垢。三九已至,卻和暖如春市咽,著一層夾襖步出監(jiān)牢的瞬間痊银,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工施绎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留溯革,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓谷醉,卻偏偏與公主長得像致稀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子俱尼,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

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

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理抖单,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,151評論 25 707
  • 文章來自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鵬閱讀 9,193評論 2 126
  • 我們是聽著名言警句長大的孩子,名言警句對我們來說除了是前人智慧的結(jié)晶货矮,同時也是避免我們少走彎路的建議羊精。在投資理財領...
    八條魚理財閱讀 563評論 0 0
  • 筆記僅用于知識積累和自我學習,不作他用次屠。 首先园匹,回顧一下服務設計的定義和背景: 1. Definition UK ...
    小媛閱讀 2,501評論 0 10