@import url(http://www.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
根據形式、覆蓋率和有效性來評估測試用例的質量 《轉載》
蔡:如何評估測試用例的質量?
鄭:測試用例質量的評估,我主要考慮下面三個方面。
1、根據測試用例的形式評估其質量,主要包括:
(1)測試用例與需求規格說明中需求條目的可追溯性。例如,每個需求條目至少有1個測試用例與之對應。
(2)測試用例有無明確的期望結果。
(3)是否滿足公司內部定義的測試用例模板。
2、根據測試用例覆蓋率評估其質量,主要包括:
(1)需求的覆蓋率。例如,我們主要負責系統測試級別,因此測試用例的需求覆蓋率要求必須達到100%。
(2)質量特性的覆蓋率。例如,我們在測試用例模板中采用測試類型的概念,要求每個功能的測試用例必須100%覆蓋所有的測試類型。
(3)測試平臺的覆蓋率。例如,針對我們目前的通信產品,每個功能都需要在不同平臺上運行;再如,不同的網元類型、接口類型、業務類型等。測試用例對這些平臺的覆蓋率也要求達到100%。
3、根據測試用例的有效性評估其質量,主要包括:
(1)測試用例的缺陷發現率。我們采用的計算方法是,系統測試發現的缺陷數目除以執行的測試用例數目(百分比)。
(2)腳本化測試的缺陷發現率。我們采用的計算方法是,根據測試用例步驟發現的缺陷數目除以總發現的缺陷數目(百分比)。如果這個百分比很低,則說明設計的測試用例的有效性方面比較差,不少bug是通過探索性測試發現的。
(3)遺漏到用戶現場的缺陷率。我們采用的計算方法是,6個月內用戶現場反饋的缺陷數目,除以系統測試級別發現的缺陷數目與6個月內用戶現場反饋的缺陷數目之和(百分比)。
每個公司和測試團隊在評估測試用例質量方面都會存在不同的度量指標,我們的要求是這些度量指標要簡單容易收集,并且有利于改進測試過程和測試團隊的測試能力,但切記不會做針對測試人員個人的能力與績效的評估。
旁觀者說:從不同的側面去做度量,是一個更好的辦法。這種辦法可以在工作的很多方面得到應用。
成為測試牛人的三個步驟
蔡:有網友提到一個問題,如何成為測試牛人?
鄭:不管是測試管理方向還是測試技術方向,都是可以成為測試牛人的。要成為測試牛人,你要有成為測試牛人的強烈要求。根據我的經驗,下面的步驟有助于你成為某個領域內的專家。
第一步,制訂目標:你希望成為哪個領域的測試牛人?例如,測試技術方面的牛人、測試自動化方面的牛人。
第二步,技能要求:要達到所制訂的目標,你需要具備哪些方面的技能?以我自己為例,希望自己成為測試技術專家,我主要從下面幾個方面不斷積累經驗與技能。
(1)深入了解測試對象的背景知識與業務功能。例如,我是做寬帶接入產品的,除了測試對象的功能之外,我利用空閑的時間學習了VPN、MPLS、IPv6、IP路由交換協議等。
(2)深入了解我公司所采用的開發模型與測試流程,即需要清楚地知道在測試生命周期中,什么階段需要做什么事情,有哪些輸入與輸出。
(3)測試人員要深入了解各種軟件測試技術與方法。例如,我們采用敏捷開發,在面向業務的測試過程中,探索性測試與測試人員的結對測試是我們經常采用的測試方式,不僅可以有效發揮測試團隊的主觀能動性與及時分析反饋能力,而且可以更好地分配資源與加強測試團隊內部的技能共享。
(4)培養測試人員的各種軟技能,例如,溝通與合作。對我而言,在業余時間喜歡看各種類型的書籍,例如,溝通、管理、心理學、演講、理解與記憶、經濟學、思維等。廣泛涉獵各種知識,可以幫助我更好地提高軟技能。
第三步,立即行動。
“千里之行,始于足下”,堅實走出每一步,堅持走出每一步,成功就在前面等你。
旁觀者說:沒有行動,再好的目標也僅僅是紙上的目標。

面試中的考量
蔡:你的測試經驗很豐富,肯定參加和主持過不少的測試職位的面試。你在面試中看重什么?
鄭:在面試過程中,我主要會從下面幾個方面進行考量。
第一,會詳細了解職位候選人在測試對象的產品背景知識與業務知識方面是否滿足職位的要求。
第二,考察應聘者在測試流程、測試技術與方法等方面是否有所了解,結合測試項目和產品的特點,判斷他所掌握的這些技能是否有助于測試團隊的測試能力改進。例如,我們一直做的是系統測試工作,時間與資源經常非常緊張,除了基本功能的驗證之外,測試中很多的精力放在用戶業務的考察上,因此應聘者了解基于場景的測試、基于風險的測試等技能是受歡迎的。
第三,考察候選人在性格特征、為人處世等方面是否符合企業文化和團隊氛圍。
同時,員工的上進心與學習能力也很重要。例如,兩個候選人,一個有一年工作經驗,另一個有三年工作經驗。只要有上進心,有一年工作經驗的那位候選人在半年后就能做與有三年工作經驗的那位朋友一樣的事情,甚至做得更好。
旁觀者說:這里也揭示了一個殘酷的事實:如果沒有高人一等的技能,年資有的時候會在找工作的時候幫倒忙(暫且稱為年資拐點)。我們要盡可能延遲年資拐點的出現。
當然,面試中獲取每個候選人真實的信息并不是一件容易的事情,我自己會從候選人的日常時間安排、個人興趣愛好和業余時間計劃等方面收集與分析信息。
基于我面試的經驗,下面是我給測試職位應聘者的兩條建議。
1、面試前做好充足的準備工作。
2、面試過程中,應聘者誠實很重要。面試過程中有些問題不會,可以直接回答不懂或者沒有經驗,切記不要不懂裝懂。沒有一個人是完人,面試官可以接受存在不足的候選人,但不會接受明顯撒謊的人。
旁觀者說:對,坦誠其實是面試中最好的態度。
軟件測試行業的發展前景
蔡:對軟件測試行業的發展前景,你怎么看?
鄭:我是2001年開始從事軟件測試工作的,從我個人的整個從業經歷來說,軟件測試行業一直在往專業化、系統化、正規化方向發展,因此軟件測試應該是一直在往上走的趨勢。針對軟件測試行業的發展,可以從行業本身與測試從業人員兩個方面進行分析
軟件測試行業前景樂觀
首先,我國的軟件測試行業相對歐美國家,現在還是處于很年輕的階段。借鑒美國等軟件測試的歷史發展經驗,測試行業發展的前景還是樂觀的。在歐美國家,軟件測試行業中經常可以看到有30年甚至40年測試經驗的從業人員;而在國內,像我這樣有11年軟件測試經驗的人都算是“很老的”測試人了。因此,歐美國家中30/40年的軟件測試經驗,可以說明這個行業能夠提供機會,讓他們一直做下去,而且做得不錯。我相信這個現象同樣適用于我國的軟件測試行業。
旁觀者說:有的朋友說,咱們國家的IT公司不養年紀大的人,你看身邊哪有年紀大的?對于這一點不必悲觀。之所以現在IT公司里沒有年紀大的員工,主要是因為我們的IT行業太年輕。只要IT行業持續發展,公司規模增大,慢慢就會出現白發斑斑的IT工程師。
其次,客戶對軟件產品的質量要求越來越高。盡管說軟件產品的質量是構建進去的,而不是測試出來的,但是軟件測試對提高產品質量是建設性的,因此測試在研發中的不可或缺性將會不斷得到提升。這對軟件測試行業而言是利好消息。
旁觀者說:社會對軟件的依賴和對軟件質量要求的提高,是軟件測試行業發展的基礎。從這個方面來說,測試從業人員可以去培育和引導社會對軟件質量的要求。
第三,2012年的軟件測試很熱鬧,除了在上海成功舉行了中國第一屆軟件測試大會之外,在北京、上海等地輪番上陣了ISTQB測試沙龍、測試專題討論、軟件測試俱樂部沙龍等民間測試活動,并且參與的測試從業人員都是幾百人的量級。這樣的現象在前幾年是不可想象的,這從另一個側面反映了測試行業的蓬勃發展。
測試人員要提升自己的技能水平和價值
蔡:測試工程師將來會遇到哪些挑戰呢?
鄭:測試行業前景看好并不代表每個測試從業人員都有好的前景,這依賴于測試人員如何提升自己的測試技能與提供的測試價值。今后一段時間測試業界內的熱點是:
1、自動化測試與手工測試之爭。隨著軟件測試成熟度的提高,加強自動化測試將是一個合理的趨勢,這對于測試從業人員而言是一個發展方向。但是自動化測試并不能代替手工測試,因為自動化測試的基礎來自于測試人員的思維與設計,測試從業人員應該將自動化測試作為一個提高測試效率的手段,而不應該是最終的目標。自動化測試工具并不能保證項目的成功,但是可以幫助優秀的測試人員更加出色地工作。
2、探索性測試與腳本化測試之爭。測試從腳本化測試的關注過程,到探索性測試更關注測試人員的思維與主觀能動性,并不能說明兩者之間誰好誰壞,或者誰替代誰的問題。測試人員需要做的是如何平衡兩者之間的關系,如何更好地發揮兩者各自的優勢,彌補各自的不足。
3、敏捷開發模式下的敏捷測試。敏捷測試更強調整體團隊運作,強調將質量構建進產品而不是在生產出來之后再進行測試,強調自動化測試,以及同時強調面向技術的測試與面向業務的測試。敏捷測試要求測試人員掌握熟悉范圍之外的新技能,例如,測試驅動開發、持續集成。
軟件測試行業將持續往前發展,而測試從業人員能否在這個平臺中同步前進,這依賴于測試人員自己的不斷積累、不斷實踐與不斷交流。要發展,測試人員同樣需要走出去,了解當前的測試熱點、測試發展趨勢、測試理念與思想的趨勢等。
旁觀者說:博取各家所長,兼容并蓄。
書籍推薦
1、《軟件測試藝術》:軟件測試的經典著作,展示了測試大師Glenford Myers多年的軟件測試思想和技術。書中探討了代碼檢查、走查與審查、測試用例的設計、單元測試、系統測試、極限測試等主題,是測試人員入門的一本優秀教材。
2、《軟件測試經驗與教訓》:本書分享了3位作者多年的測試經驗,知道成功的測試需要什么。書中匯總了293條測試經驗建議,闡述了如何做好測試工作,如何管理測試,以及如何澄清有關軟件測試的常見誤解。讀者可以將這些經驗用于自己的測試工作中,避免一些容易犯的錯誤,提高測試效率與有效性。
3、《A Practitioners Guide to Software Test Design》:關注測試用例設計的一本著作,其中包括了白盒測試技術、黑盒測試技術與基于經驗的測試技術。每個測試技術本身都結合了技術原理、案例分析和優缺點分析,是每個測試人員了解和應用測試用例設計的一本好書。
4、《贏在測試:軟件測試先行者之道》:蔡為東寫的這本書,匯集了多名測試行業的測試精英,其中描述了他們是如何認識測試,發展測試,規劃測試,以及如何在測試行業中取得成功的,為測試從業人員的職業發展提供了參考方向。這本書為處于迷茫階段的測試人員規劃自己的測試職業發展,提供了許多現實可行的方向。
5、《思維導圖:大腦使用說明書》:要想在測試領域有所建樹,測試人員持續不斷地學習與積累是非常重要的,而如何有效地閱讀與學習將是決定成敗的一個關鍵。思維導圖是一個簡單易學的革命性思維工具,它可以幫助你提高記憶力和理解力,激發想象力,更好地制訂生活和工作計劃。
小結
在這次采訪中,鄭文強和大家分享了很多寶貴的經驗,摘要如下:
1、勤奮學習能夠彌補基礎的不足。
2、在決定發展方向的時候,不要生活在別人的期望中,而是要知道自己想做什么,擅長做什么。
3、去做自己喜歡的,還是去做人家喜歡的?最終我選擇了前者。從目前的結果看,感覺到自己在公司內部可以做的事情更多了,參與的活動也在增加。不管對公司還是對個人,體現的價值都是在不斷增加的。
4、把好的測試理論、測試思想與工作實踐結合起來。
5、堅持去做自己喜歡的工作,不斷積累、總結和分享。
6、認清楚自己,明確自己的優點和不足。
7、讓跳槽符合自己的發展方向。
8、分享并不會導致“教會了徒弟,餓死了師傅”,因為學習是一個過程。另一方面,同事會因為你的分享而感謝和尊重你。
9、作為測試的負責人,不要期望自己在所有的方面都比其他人強,你的定位應該是為整個測試團隊服務的角色。如果你能在團隊內帶頭分享你的知識與經驗,也一定能帶動其他人的分享,更好地做好測試團隊的知識與技能的儲備,有利于測試經理更好地分配測試工作,并做好備份工作。
10、與腳本化測試相比,探索性測試更強調測試人員的思維自由度與主觀能動性。然而,探索性的自由,并不代表它是不做準備的,它也不是隨機的。好的探索性測試依賴于測試人員綜合應用測試策略、測試技術與方法的能力,例如,獲取測試數據,掌握測試設計技術,建立失效模式,創建測試模型等。口號式的探索性測試并不能幫助測試人員成功。
11、我幾乎每天都會反省自己當天的工作,有了哪些收獲,有了什么總結,多少時間又被浪費了等。通過這樣的形式,不斷提升自己的信心,提高學習的效率和有效性。
12、軟件發布與否應當綜合多個方面的因素來考慮,而不僅僅是測試的意見。
13、要想獲得成功,勤奮是不可或缺的。
14、多實踐,不要怕失敗。不管是測試領域的知識,還是測試技能,或者是測試思想和方法,測試新人都需要勇敢地去實踐,許多的經驗、思想和收獲來自于失敗的經驗教訓。
15、面對職業發展迷茫的時候問自己喜歡做什么,目標是什么,當前的工作和活動是否能幫助自己達成這個目標。
16、從形式、覆蓋率和有效性方面來評估測試用例的質量。
17、成為測試牛人的三個步驟:制訂目標,明確技能目標,立即行動。
18、在參見面試前做好準備,并在面試過程中保持坦誠。
19、軟件測試行業的發展前景樂觀,同時測試工程師會面對不少的挑戰。測試人員要提高自己的技能水平和價值。
20、軟件測試行業將持續往前發展,而測試從業人員能否在這個平臺中同步前進,這依賴于測試人員自己的不斷積累、不斷實踐與不斷交流。要發展,測試人員同樣需要走出去,了解當前的測試熱點、測試發展趨勢、測試理念與思想的趨勢等。
天貓 軟件自動化測試開發
posted on 2013-09-27 11:25
zouhui 閱讀(181)
評論(0) 編輯 收藏 所屬分類:
2.軟件測試 基礎概念