敏捷測試是否寫測試用例?答案多種化如果是你,你會選用寫還是不用寫呢?
軟件測試時代風起云涌,問題雖小,意義卻大,讓大家一起學習一起探討!
經過大家的水深火熱的探討答案出來了,但是各有各的想法各有各的不同,但我想他們的所想和所論對于大家都是有幫助的,大家可以看一下這個討論題,希望在技術上能幫到大家一些。
所謂敏捷,就是要快準狠,快速的找到系統中存在的問題,高效率的完成測試任務!
誰來跟我辯論?
傲氣凌云 : 我認為需要寫,因為所有的用例都是人類靠思維來編寫的,不是憑空出現的。就算是敏捷性測試,也是需要記錄的。
tigerbbs : 在敏捷開發中,測試管理者不可能像傳統的項目測試一樣制定詳細的測試計劃,那怎樣執行測試呢?以下是我總結的一些瑣碎經驗: 在敏捷開發中整個團隊都是測試人員,一起需要對產品質量負責,測試管理人員需要指引大家共同測試,需要發動起大家一起執行測試,而不僅僅是測試人員的事情,這同時也要求整個團隊中每個成員對自己的產品了如指掌,測試人員需要共同參與產品的設計和需求分析,在敏捷開發中需求在不斷變化,你不可能等著完整的需求文檔進行測試需求分析,當產品定義和需求不斷的細化時,測試分析也要不斷的細化,我很喜歡讓測試人員去繪制業務流程圖,以及整理功能列表進行測試分析,因為在繪制業務流程圖中你可以發現很多的邏輯問題,和產品定義問題,可以即時的和產品定義人員、需求人員進行溝通,立馬改進產品設計,敏捷測試中,根據業務流程圖或測試分析圖書寫主要測試用例就行了,你根本就沒有時間能面面俱到去維護那么的測試用例,更何況需求和產品定義一直在變化一定要自動化測試,自動化測試腳本中要寫好注釋,這是測試用例的體現,也便于讀取在測試之前制定好測試方案,但測試執行的時間很難控制,一定要熟知數據庫。
LoveTT : 樓上的傲氣凌云 有點狡辯了,混淆視聽,人類的精髓很多,馬克思主義毛澤東思想,都是人類的精華,但是這些老前輩都還說,具體問題具體分析呢,而你一概而論,我覺得站不住腳!我覺得閣下還是好好看看什么是敏捷開發,和敏捷測試再來發表見解吧!否則貽笑大方就不好了!
test110 : 肯定得寫哈,那是測試的依據。
敏捷宣言:
個體和交互比過程和工具更有價值;
能工作的軟件比全面的文檔更有價值;
顧客的協作比合同談判更有價值;
及時響應變更比遵循計劃更有價值。
并非每個企業都能嚴格按敏捷的相關開發方法進行項目管理,例如測試驅動、XP、SCRUM等。也并非都需要按這些方式管理才能實現敏捷。只要我們理解了敏捷的原則和精髓,我認為很多方法、很多地方都可以應用敏捷的思想,實現敏捷的管理。
測試用例的設計是其中一項。
測試用例的粒度
測試用例可以寫得很簡單,也可以寫得很復雜。最簡單的測試用例是測試的綱要,僅僅指出要測試的內容,如探索性測試(Exploratory Testing)中的測試設計,僅會指出需要測試產品的哪些要素、需要達到的質量目標、需要使用的測試方法等。而最復雜的測試用例就像飛機維修人員使用的工作指令卡一樣,會指定輸入的每項數據,期待的結果及檢驗的方法,具體到界面元素的操作步驟,指定測試的方法和工具等等。
測試用例寫得過于復雜或過于詳細,會帶來兩個問題:一個是效率問題,一個是維護成本問題。另外,測試用例設計得過于詳細,留給測試執行人員的思考空間就比較少,容易限制測試人員的思維。
測試用例寫得過于簡單,則可能失去了測試用例的意義。過于簡單的測試用例設計其實并沒有進行“設計”,只是把需要測試的功能模塊記錄下來而已,它的作用僅僅是在測試過程中作為一個簡單的測試計劃,提醒測試人員測試的主要功能包括哪些而已。測試用例的設計的本質應該是在設計的過程中理解需求,檢驗需求,并把對軟件系統的測試方法的思路記錄下來,以便指導將來的測試。
大多數測試團隊編寫的測試用例的粒度介于兩者之間。而如何把握好粒度是測試用例設計的關鍵,也將影響測試用例設計的效率和效果。我們應該根據項目的實際情況、測試資源情況來決定設計出怎樣粒度的測試用例。
軟件是開發人員需要去努力實現敏捷化的對象,而測試用例則是測試人員需要去努力實現敏捷化的對象。要想在測試用例的設計方面應用“能工作的軟件比全面的文檔更有價值”這一敏捷原則,則關鍵是考慮怎樣使設計出來的測試用例是能有效工作的。
基于需求的測試用例設計
基于需求的用例場景來設計測試用例是最直接有效的方法,因為它直接覆蓋了需求,而需求是軟件的根本,驗證對需求的覆蓋是軟件測試的根本目的。
要把測試用例當成“活”的文檔(Effective Software Testing : 50 Specific Ways to Improve Your Testing – Elfriede Dustin),因為需求是“活”的、善變的。因此在設計測試用例方面應該把敏捷的“及時響應變更比遵循計劃更有價值”這一原則。
不要認為測試用例的設計是一個階段,測試用例的設計也需要迭代,在軟件開發的不同的階段都要回來重新審視和完善測試用例。
測試用例的評價
測試用例設計出來了,質量如何,如何提高測試用例設計的質量?就像軟件產品需要通過各種手段來保證質量一樣,測試用例的質量保證也需要綜合使用各種手段和方法。
測試用例的檢查可以有多種方式,但是最敏捷的應當屬臨時的同行評審。我認為同行評審,尤其是臨時的同行評審,應該演變成類似結對編程一樣的方式。從而體現敏捷的“個體和交互比過程和工具更有價值”,要強調測試用例設計者之間的思想碰撞,通過討論、協作來完成測試用例的設計,原因很簡單,測試用例的目的是盡可能全面地覆蓋需求,而測試人員總會存在某方面的思維缺陷,一個人的思維總是存在局限性。因此需要一起設計測試用例。
除了同行評審,還應該盡量引入用戶參與到測試用例的設計中來,讓他們參與評審,從而體現敏捷的“顧客的協作比合同談判更有價值”這一原則。這里顧客的含義比較廣泛,關鍵在于你怎樣定義測試,如果測試是對產品的批判,則顧客應該指最終用戶或顧客代表(在內部可以是市場人員或領域專家);如果測試是指對開發提供幫助和支持,那么顧客顯然就是程序員了。
原文轉自:http://www.anti-gravitydesign.com