您好,登錄后才能下訂單哦!
A-TDD(Acceptance test-driven development ) with Robot framework
在了解A-TTD之前,先了解下TTD。
測試驅動開發,英文全稱Test-Driven Development,簡稱TDD,是一種不同于傳統軟件開發流程的新型的開發方法。它要求在編寫某個功能的代碼之前先編寫測試代碼,然后只編寫使測試通過的功能代碼,通過測試來推動整個開發的進行。這有助于編寫簡潔可用和高質量的代碼,并加速開發過程。
A-TTD(驗收測試驅動開發)非常接近T-DD。 不同點在于A-TDD強調開發-測試-客戶之間的協同, A-TTD是一種協同需求發現方法,利用示例和可自動的測試來明確需求,創建可執行用例方法。
ATTD(驗收測試驅動開發)是敏捷和scrum經常采用的實踐方法。框圖如下:
1. Discuss the requirement in a workshop (在專題討論會中討論需求)
2. Develop them concurrently during the iteration (在迭代中并行開發)
3. Deliver the result to the stakeholder for acceptance. (提交結果給利益相關方進行驗收)
Discuss(討論):
paticipants: product owner, related stakeholder, developer
如何討論:假象系統完成,你會如何使用系統并期待它能實現什么。
研討會的重點是討論并發現需求,而不是實際的測試。
Develop(開發):
將示例提取成測試。
需求實現活動的開發(包括test libraries,tables )
實現需求通過測試。
Deliver(交付):
當測試通過后,需求會被產品負責人和其他利益相關方評審,這可能導致新的需求產生或現有測試的變化
下圖是一個更為詳細的A-TDD框架圖
A-TDD如何map到Scrum迭×××發
討論:在具體的Sprint計劃之前,團隊,產品負責人,相關利益方需要在專題討論會中澄清需求。
并行開發:在迭×××發的過程中,實現需求的開發,驗證實現的測試需要在sprint 的backlog中計劃
交付驗收:交付基于需求的產品和驗收測試的case給相關利益方并組織Sprint review討論。
A-TDD例子示范(ATTD with Robot Framework)
Robot背景:Robot Framework是一個基于關鍵字驅動的自動化測試框架。 具體信息參見
www.robotframework.org
現有一個供應商展銷會的信息查詢系統, 通過該系統參觀者可以用它來查詢下面的信息:
我在哪里可以找到供應商X的展銷攤位?
我怎么才能到達那個地方?
最近的餐廳在哪里?
其他參觀者對本次展銷會的評價。
案例一: 供應商列表
一: 需求澄清(產生具體的示例)
客戶:需要把所有的供應商名單制作成一份“好的表格”
開發:能舉得例子嗎?什么是一份“好的表格”
客戶:下面是一個例子:
討論: 發現假如有微小的不同,將會發生重復的輸入(比如相同的供應商,不同的展位等)。
開發:數據庫中什么樣數據可以導出一份“好的供應商列表”
客戶:
從上面的表格可以發現,相同的供應商由于展位信息不同,有美有logo, 會存在一些重復。
二. 需求示例提取成Robot framework的測試用例。
這里簡單介紹下Robot framework, 具體參見www.robotframework.org
Robot framework 包含4個表格:
測試用例表: 包含實際的測試用例,表頭是“Test Case”
關鍵字表: 包含底層的用戶關鍵字,這些關鍵字組成了測試用例的結構,表頭是Keyword 或者是 “User Keyword”
設置表:允許引用文件,lib. 表頭是“setting”或者“settings”
變量表:聲明變量, 表頭是“Variable”或者 “Variables”
下面是Robot framwork的調用過程:
測試用例和用戶關鍵字是填在Robot Framework 里面的,Framework調用 test libraries, 它再調用待測系統。
現在從示例中抽取測試用例。
測試用例執行,發現keywords “Stand input”, “Is stand output ” , “Has no extra stands” are undefined.
下面我用user keyword 實現 “Is stand output ” , “Has no extra stands”。
再次跑測試用例發現下面keyword 沒有定義:”Stand out”, “Get current log”, “Get current name” , “Get current place”, “Stands left”. 而這些關鍵字將會在test library里面實現。
當前待測系統是用C語言寫的,可以通過用戶接口來調用或者直接調用。該案例采用直接調用(使用 ctypes foreign library)。test library 代碼如下:
結論:
A-TTD是一個相互協作的需求澄清工具,它使用可執行的用例去探索需求。需求--> 需求例子表格--> Robot 表格 --> 可執行用例(表格表述)
Robot Framework 是一個基于A-TDD思想的測試框架。它采用表格化的結構來表述一個用例,再通過test libraries 去實現用例的可執行話。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。