敏捷測試的思考和新發展(2)

發表于:2011-09-05來源:CSND作者:朱少民點擊數: 標簽:
在敏捷測試中,當我們沒有清晰的可參照文檔、沒有機會創建測試,我們自然會采用探索式測試。在James A.Whittaker 的《探索式 軟件測試 》出版之后,探索

  在敏捷測試中,當我們沒有清晰的可參照文檔、沒有機會創建測試,我們自然會采用探索式測試。在James A.Whittaker 的《探索式軟件測試》出版之后,探索式測試再次被推向高潮,人們覺得有更多成熟的探索方法可以使用,例如:賣點測試法、破壞測試法、地標測試法、收藏家測試法、極限測試法、超模測試法、深巷測試法、配角測試法、強迫癥測試法、取消測試法、通宵測試法、混票測試法。

  但探索式測試缺乏良好的系統性、復用性,而且有些探索執行最終被證明是沒有價值的。而我們關注有價值的探索式測試,將它們記錄下來,使之成為固定的測試用例,用于將來的(后繼的迭代周期)回歸測試?;貧w測試驗證已有功能是否正常運行,需要良好的系統性和很高的覆蓋率,確保發布產品的質量,而且回歸測試是不斷重復的,在極有限的時間內完成越來越多的測試任務,這需要自動化執行、高效率執行回歸測試。而這一切,依賴于相對穩定的測試用例。概括起來,敏捷測試可以看成:新功能的(手動)探索式測試 + 腳本化(基于測試用例的)自動回歸測試。

  敏捷測試的自動化

  沒有自動化,就沒有持續集成,也就沒有敏捷。在敏捷測試中自動化測試就更加迫切,這一點比較容易理解,每個迭代(如Scrum中的Sprint)都在增加新的功能,而迭代周期的時間相對固定,隨著時間的推移,已實現的功能越來越多,這就要求越來越多的回歸測試在時間相對固定的周期內完成。如果沒有自動化測試,這是不可能完成的任務。

  在過去一年中,敏捷測試的自動化又發生了哪些變化?如何重構自動化測試腳本以提高產出投入比(ROI)?下面就簡單討論一下敏捷自動化測試框架和敏捷測試工具等內容。

  敏捷測試對測試工具要求簡單、實用,隨時可用,而對敏捷測試來說,自動化測試框架更為重要,它將負責集成各種測試工具,包括單元測試工具和驗收測試工具等,還負責與持續集成、缺陷管理系統等整個開發環境集成。作為敏捷測試的自動化框架,一般會選擇輕量型、開放類型的框架。說到這種類型的框架,可以參考RobotFramework(http://code.google.com/p/robotframework/)。在最近一年,其版本發布比較頻繁,也日漸成熟。RobotFramework是基于Python開發的、可擴展的框架,所以適用于多種接口的復雜軟件(如用戶接口、命令行、Web Service、編程接口等)的測試。適合敏捷測試的框架還有Thoughtworks Mingle + Cruise + Twist,它能幫助測試人員和開發人員敏捷項目管理和協同工作、持續集成、測試自動化,允許使用BDD開發模式和Groovy動態語言來編寫測試腳本,包括手動和自動方式來創建可復用的自動化測試腳本,并結合測試領域特定語言(DSL)實現自動化測試。無論是RobotFramework,還是Twist,它們都支持Selenium 2.0,這也反映了Selenium在敏捷自動化測試中的重要地位。當然,敏捷測試也可以采用類似Selenium 2.0+ WebDriver +PushtoTest那樣的組合框架。

  敏捷測試工具很多,但對敏捷測試來說,我們更要關注能夠適應ATDD或BDD的測試工具,如Cucumber、RSpec、NBehave /CBehave /JBehave、EasyB、JDave等。也可以結合先前熟悉的測試工具開展工作,例如用自己熟悉的WatiN來結合SpecFlow 完成BDD模式的自動化測試。采用傳統的微軟Visual Studio也是可以的,因為在其 2010版本中,增強了對敏捷測試的支持,包括:

  發布了Scrum流程模板Visual Studio Scrum 1.0;

  支持“測試優先”的開發,支持ATDD;

  TDD的插件TestDriven.NET。

  敏捷測試管理

  基于敏捷測試的管理,更多體現了基于需求測試和基于風險測試的平衡。對于新功能測試,不僅采用探索式測試,還要考慮基于需求的測試方法,借助類似BenderRBT這樣的工具,進行需求的因果分析,建立其判定表并進行優化,從而建立非常高效的測試用例,使敏捷測試跟上開發的節奏成為可能。但整個測試周期,包括跨迭代周期的回歸測試,都需要對測試風險進行有效的評估,在效率和質量上達到平衡,以保證所發布的產品的質量。

  敏捷測試的管理,一定不要急躁、不要急于求成,要循序漸進獲得改進,特別是從相對傳統的測試方法轉型到敏捷測試的團隊來說,更要逐漸轉型,如同敏捷方法本身所追求的“小步快跑”式迭代,這種轉型本身也應被視為迭代過程,而不是突然某個早上,一切都變了。在敏捷測試管理中,不要試圖通過一個迭代解決所碰到的各種問題,而是一個迭代只解決一兩個問題,隨著時間的推移,踏踏實實地、逐步地解決各個問題,即進入一個良性的循環,最終解決各種問題,使團隊轉型成功,無論在測試效率和質量上獲得質的飛躍。

  在敏捷測試管理中,盡管有比較多的原則要支持,例如“以人為本、為客戶創造價值、面對面的溝通、簡單化、響應變化和享受樂趣”等,但最重要的是以下幾個方面。

  持續的質量反饋:在整個開發過程中,持續關注質量,關注用戶需求,發現任何階段性成果的問題,持續向產品經理、開發人員等提供質量反饋。

  持續改進測試方法,不斷學習新方法和提高測試技術能力,不僅和開發人員保持技術同步,而且團隊成員能力保持同步成長,想方設法把工作做到極致。

  讓團隊具有很高的自我組織能力,每個成員都積極主動工作,自己能夠解決自己的問題。

  讓我們享受敏捷測試的樂趣,享受成功!

  作者朱少民,網迅(中國)軟件有限公司資深QA總監。中國科技大學軟件學院教學指導委員會委員,中國軟件測試認證委員會(CSTQB)資深專家。在軟件工程領域頗有建樹,先后獲得多項科技進步獎、出版十多部著作和高校精品教材,如《全程軟件測試》、《軟件測試方法和技術》等。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97