敏捷測試實踐.ppt_第1頁
敏捷測試實踐.ppt_第2頁
敏捷測試實踐.ppt_第3頁
敏捷測試實踐.ppt_第4頁
敏捷測試實踐.ppt_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Page 1,敏捷測試實踐,蔣曉東,Page 2,敏捷測試,簡而言之,敏捷測試是指在采用敏捷技術(shù)的項目中開展的測試 同時,敏捷測試也意味著測試遵循敏捷的基本原則,接納敏捷的核心價值觀(交流,簡單,反饋,勇氣) 保持簡單 以任務(wù)為導(dǎo)向,而不以過程或是角色為導(dǎo)向 通過溝通和反饋保證測試能夠建立合適的質(zhì)量標準 盡可能減少測試周期的時間需求 敏捷測試要求“交付可用產(chǎn)品”而非單純的“發(fā)現(xiàn)缺陷”,Page 3,敏捷測試 vs. 傳統(tǒng)意義上的測試,Page 4,敏捷測試帶來的挑戰(zhàn)(一),質(zhì)量文化上的挑戰(zhàn) 發(fā)現(xiàn)缺陷 vs. 在產(chǎn)品中內(nèi)建質(zhì)量 敏捷帶來的擔心:測試工程師應(yīng)該做什么? 敏捷帶來的擔心:測試工程師能

2、夠做什么?,Page 5,敏捷測試核心價值觀,共享質(zhì)量目標 開發(fā)和測試團隊共享同樣的質(zhì)量目標,當然也共享同樣的質(zhì)量責(zé)任,每個工程師在測試方面都同樣承擔任務(wù) 在產(chǎn)品中內(nèi)建可測試性 為產(chǎn)品建立更好的自動化測試不僅僅依賴于測試工程師的工作,更重要的是,產(chǎn)品本身內(nèi)建的可測試性 關(guān)注產(chǎn)品質(zhì)量的提升,測試周期的縮短,而不是僅專注于發(fā)現(xiàn)缺陷,Page 6,敏捷測試中的測試工程師可以做什么,獲取和明確用戶的質(zhì)量期望 建立合適的系統(tǒng)測試、用戶驗收測試質(zhì)量標準 建立可見的質(zhì)量度量體系,讓產(chǎn)品和代碼質(zhì)量反饋持續(xù)可見 推進單元測試、開發(fā)測試,促進代碼質(zhì)量 建立持續(xù)構(gòu)建框架 建立與維護合適的自動化測試以減少測試的時間投

3、入,Page 7,敏捷測試帶來的挑戰(zhàn)(二),測試工程師面臨的挑戰(zhàn) 必須通過與開發(fā)團隊的密切合作獲取產(chǎn)品信息,制定測試計劃而不是依賴文檔 必須密切介入開發(fā)過程,參與設(shè)計,甚至是代碼 必須能夠自我驅(qū)動 必須具有足夠的自動化測試技能與探索性測試技能,Page 8,擁抱變化,改變工作方式,與開發(fā)工程師密切合作 轉(zhuǎn)變角色,測試工程師不再是“裁判”,而應(yīng)該是“支持者”和“幫助產(chǎn)品具有更好質(zhì)量的角色” 將測試推動到上游 自我驅(qū)動,積極參與敏捷過程,主動工作而非僅僅被動接受任務(wù) 提升自己的技能,尤其是自動化測試方面的技能、探索性測試能力、快速學(xué)習(xí)能力,Page 9,敏捷測試帶來的挑戰(zhàn)(三),測試團隊面臨的挑戰(zhàn)

4、 與傳統(tǒng)測試不同的考核標準 與傳統(tǒng)測試不同的人員技能要求 與傳統(tǒng)測試不同的測試過程管理 與傳統(tǒng)測試不同的團隊管理方式,Page 10,建立適合敏捷測試的團隊,建立以“質(zhì)量和生產(chǎn)率”為核心的激勵機制 提升團隊成員技能,招聘合適的測試工程師 質(zhì)量驅(qū)動,而非過程驅(qū)動 在團隊內(nèi)形成對敏捷的認知和認可 給團隊成員更大的自主空間 鼓勵團隊關(guān)于自動化測試技術(shù),Page 11,敏捷測試的四個象限,Page 12,敏捷測試體現(xiàn)的與傳統(tǒng)測試的不同,作用于產(chǎn)品(Critique product)的測試 探索性測試(Exploratory Testing) 場景測試(Scenario Testing) 用戶驗收測試(

5、UAT) 性能測試,安全性測試 作用于支持團隊(Supporting the team)的測試 單元測試 模塊/組件級別的測試 功能測試 用戶故事(User Story)測試 ,Page 13,敏捷測試的目標,作用于支持團隊的測試,作用于產(chǎn)品的測試,Page 14,敏捷測試實踐,There are good practices in context, but are no best practices. -來自Agile Testing A Practical Guide For Testers and Agile Teams,Page 15,敏捷測試過程,針對一個迭代周期 計劃一個迭代周期內(nèi)

6、的測試 了解細節(jié),確定測試范圍 創(chuàng)建并執(zhí)行測試 發(fā)布 敏捷測試中的持續(xù)任務(wù) 提高代碼質(zhì)量與產(chǎn)品質(zhì)量 從更多層面建立測試(單元測試、模塊測試、系統(tǒng)測試等) 建立產(chǎn)品的質(zhì)量度量 改進自動化測試(更穩(wěn)定,更高的覆蓋率),Page 16,計劃一個迭代周期內(nèi)的測試,計劃的內(nèi)容 產(chǎn)品發(fā)布標準(驗收測試準則) 需要在本迭代周期內(nèi)測試的內(nèi)容 需要安排的測試類型 需要使用的測試環(huán)境(包括數(shù)據(jù)) 管理計劃管理 一頁紙測試計劃( One Page Test Plan) 可以使用各種形式表達測試計劃:在線文檔,測試點列表,自動測試列表,白板或是電子表格,Page 17,Page 18,了解細節(jié),確定測試范圍,了解本次

7、迭代的產(chǎn)品細節(jié) 有哪些新增加的功能? 開發(fā)工程師為相應(yīng)的功能建立了哪些測試? 需要增加哪些驗收測試? 應(yīng)用的哪些部分可以通過自動化測試覆蓋? 應(yīng)用的哪些部分需要通過手工測試覆蓋? 確定測試范圍 哪些部分應(yīng)該被納入回歸測試內(nèi)? 哪些部分需要新增加自動化測試? 哪些部分需要新增加手工測試?,Page 19,用自動化手段幫助確定測試范圍,Diff技術(shù),Page 20,Diff工具,Diff的作用 識別應(yīng)用中發(fā)生變化的部分 包括對接口,UI等各層面的檢查 發(fā)生變化的部分是需要重點測試和覆蓋的部分 不同的Diff方法 HTML diff DOM tree diff Image Diff 接口數(shù)據(jù)Diff

8、 ,Page 21,創(chuàng)建測試并執(zhí)行,建立測試執(zhí)行的基礎(chǔ)架構(gòu)(Test Infrastructure) 持續(xù)集成框架 建立自動運行的Sanity Check Test Suite 維護驗收測試集(Accept Test Suite) 在一個迭代周期中創(chuàng)建與執(zhí)行測試 創(chuàng)建各個層次的測試 使用自動化測試框架運行測試 使用基于腳本的手工測試與探索性測試完成對新功能,以及部分原有功能的回歸測試,Page 22,敏捷測試中的測試方法,探索性測試:主要用于探索和測試新功能,或是基于對應(yīng)用的了解發(fā)現(xiàn)可能的缺陷 基于腳本的手工測試:在某些無法自動化測試的部分,使用手工測試或是半自動測試執(zhí)行某些回歸測試用例 自動

9、化測試 從不同層次/級別驗證應(yīng)用 性能測試,安全性測試,模糊測試(Fuzz Testing)等 通過重構(gòu)等方式建立更加穩(wěn)定的自動化測試,Page 23,敏捷測試中的自動化測試工具,單元測試與模塊測試 xUnit工具 Mock工具 HTTP/HTML層面測試工具 HttpUnit WebDriver(HtmlUnit) UI層面的測試工具 Selenium/Webdriver Watir/WatiN,Page 24,性能測試工具 JMeter 持續(xù)集成工具 安全性測試工具 其他測試工具 Link Checker Crawler Fuzz測試工具,Page 25,發(fā)布,為達到質(zhì)量標準的產(chǎn)品進行Si

10、gn off 面向用戶發(fā)布本迭代周期得到的Release 在產(chǎn)品環(huán)境中驗證本Release 數(shù)據(jù)遷移(可能) 為可能的回滾做準備 總結(jié)本迭代周期內(nèi)的測試,持續(xù)改進 缺陷分析 發(fā)現(xiàn)可測試性的問題,持續(xù)提高可測試性 在團隊中分享測試知識,Page 26,敏捷測試中的自動化測試工具,單元測試與模塊測試 xUnit工具 Mock工具 HTTP/HTML層面測試工具 HttpUnit WebDriver(HtmlUnit) UI層面的測試工具 Selenium/Webdriver,Page 27,軟件可測試性,Testability is the degree to which it can be es

11、tablished that a system performs according to the requirements.,Page 28,軟件可測試性,可操作性:易于測試執(zhí)行,允許同時開發(fā)和測試 可觀察性:應(yīng)用有明確的可觀察的輸出 可控制性:可以通過靈活的方式控制應(yīng)用 可分解性:系統(tǒng)模塊之間的獨立性強 簡單性:功能簡單,代碼簡單,結(jié)構(gòu)簡單 穩(wěn)定性:軟件的變化是可控的 易理解性:軟件是自明的,具有良好的技術(shù)文檔,Page 29,可測試性示例驗證碼,提高可控制性的方法 在測試版本中取消驗證碼 萬能驗證碼 向應(yīng)用注入鉤子,Page 30,代碼可測試性,class Hello String sa

12、yHello() Calendar cal = new GregorianCalendar(); int hour = cal.get(Calendar.HOUR); if(t 12) return “Morning”; else if(t 18) return “Afternoon”; else ,Page 31,使代碼可測試,class Hello String sayHello(Calendar cal) /Calendar cal = new GregorianCalendar(); int hour = cal.get(Calendar.HOUR); if(t 12) return “Morning”; else if(t 18) return “Afternoon”; else ,Hello hellotest = new Hello(); mockCal = EasyMock.createMock(Calendar.class); expect(mockCal.get(Calendar.HOUR).adnReturn(10); replay(mockCal); String res

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論