軟件測試人員一般要經歷的幾個階段

軟件測試人員一般要經歷的幾個階段

轉自:http://www.51testing.com/html/79/n-844879.html

一、執行測試用例

  作爲一個測試新手來說,最主要的工作應該就是執行測試用例,最基本的要求當然就是不能夠出現執行漏測了。是的,達到這個要求畢竟簡單,只要嚴格按照用例來執行就可以了,這裏主要考驗的就是一個測試人員的執行力和細心的能力。另外,這個階段測試人員能夠學習到自己測試模塊的一些基本業務知識,以及如何去執行用例,提交和跟蹤bug等等,這個階段也很容易達到,甚至可能會跟第2個階段一起進行,但是該階段雖然簡單卻很重要

  二、發現bug

  經歷第一個階段後,這個時候測試人員可以開始在執行用例的基礎上開始一些自己的發散測試(更好的叫法是探索性測試),來更好的發現一些通過執行用例無法測試到的bug。這個階段就比較考察一個測試人員的發散思維了(個人覺得測試人員的發散思維恩能力是測試人員非常重要的一個能力,這也是軟件測試的魅力所在),有的測試人員就是能夠通過自己的一些想法來發現一些bug(甚至是隱藏很深的bug),並且很享受在其中。個人覺得這些能力(也可以叫對bug的敏感程度)是天生的,當然,並不是說這塊能力不強的人在測試裏面發展不好,因爲測試也有技術(確定的因素)的成分,比如:自動化等。但是,這樣的測試人員不太容易享受到發現bug給自己帶來的成就感(即軟件測試的藝術性)。當然,要達到這樣的程度對於模塊本身的業務邏輯也需要非常熟悉

  三、保證質量

  質量是一個測試人員的生命,當我們將一個功能模塊交給一個測試人員負責的時候,我們肯定是希望對方能夠給保證質量的。但是實際上要達到這個要求是很難的。首先,我們對於保證質量是如何定義的,是保證該模塊到客戶那裏不會影響客戶的業務還是在客戶那裏不出現問題?實際上2者是很難區分的,目前我們對於測試人員的要求大概都是能夠發現所有的bug吧,雖然實際上不可能。其次,作爲一個測試人員,我們自己對於該模塊的測試策略該如何把握呢(因爲測試時間是一定的)?根據個人經驗,要達到這個目標,至少需要做到以下幾點吧!

  1、需求覆蓋:對於的整個需求的理解程度:對於客戶來說,爲什麼需要這個功能?主要是用使用習慣是怎樣的?客戶哪裏可能會出現的一些異常情況等等

  2、業務邏輯覆蓋:對於整個業務邏輯的理解程度:通過看研發的設計文檔和具體的實現邏輯圖,來分析如何覆蓋到所有的邏輯以及異常邏輯(這個時候還需要提前發現一些研發沒有考慮到的地方),並且設計對應的邏輯測試用例,保證我們的測試業務邏輯的覆蓋率(代碼覆蓋率非邏輯覆蓋率)。當然,這個階段是能夠通過一些技術手段做的更好的,比如:接口測試單元測試、代碼的靜態走讀等等,後面再討論...

  3、性能壓力覆蓋(爲什麼就不說了):主要是在前面對業務邏輯非常熟悉的基礎上,對於每個業務邏輯的性能測試點進行分析,看下這些邏輯是否可能有壓力點,比如:當資源不足的時候是否有影響?當併發數或者流量很大的情況下是否會有影響?是否會涉及到多線程通信或者進程之間搶佔資源等等,分析完成後還需要考慮如何去覆蓋到這些地方(包括壓力是否足夠等等)

  4、關聯覆蓋:大部分情況下一個模塊總是會和整個系統的其他模塊存在關聯的地方,那麼我們除了要分析出和哪些模塊有關聯,還需要分析具體的關聯點是什麼?這其實就要求我們對於與之關聯的模塊也足夠的熟悉,這樣才能夠更好的分析到對應點上

  5、當然,還會需要涉及到其他的,比如:模塊的可靠性,安全性等等

  6、發散測試:一般情況下,前面的幾點很難分析到非常的全面和充分,這個時候就需要依賴自己的分析能力和發散思維能力了,如果這方面比較好的話應該是有意外驚喜的,而且前面的一些測試也需要依賴自己的發散思維能力

  如果能夠達到這個階段,相信你已經是一個比較讓人放心的測試人員了,這些階段一個非常重要的就是對被測模塊的業務熟悉程度。

四、提高測試效率

  測試是有成本的,而且測試的週期越長,成本越大,甚至可能影響整個產品在市場的佔有情況或客戶的滿意程度。所以,對於測試人員一個很重要的要求當然是如何在更短的時間內保證質量。要做到這個程度,主要依靠兩個手段吧!

  1、前期缺陷預防:測試人員通過前期和開發人員配合,共同的將很多bug直接扼殺在搖籃,避免bug在後面被發現。下面可以從每個階段來分析測試測試人員需要做好哪些事情。

  (1)需求階段:測試和研發一起將該功能的所有需求點全部列出來,並且分析所有的需求點是否明確和合理。另外,是否還有沒有考慮到的客戶的隱藏需求等等,通過不斷的檢視來完善。需要的能力:測試經驗、對於需求的理解能力和思考問題的全面性

  (2)設計階段:加深對於設計的理解,多跟開發進行交流,能夠根據自己的測試經驗以及對於該模塊的理解程度對研發的設計進行評審,並能夠發現設計存在的一些問題(比如:一些場景可能沒有考慮到,一些異常情況可能沒有考慮到等等)。並且將自己後面可能會怎麼測試提前告訴開發(這個時候心裏應該大概知道該如何去測試該模塊,可能的風險是什麼燈)。需要的能力:對於模塊的理解程度,對於用戶場景的理解程度,對於整個業務的理解程度(參考測試人員的第3個階段)。

  (3)編碼階段:這個時候可以通過一些改進,比如:對研發的代碼進行靜態走讀,通過工具覆蓋,思考單元測試或者藉口測試,對用例實現自動化等,目的就是在黑盒測試前就能夠提前發現該模塊存在的代碼邏輯問題,減少後面的手工測試時間。需要的能力:代碼理解能力、代碼測試工具的使用能力,一定的編碼能力,自動化開發能力等

  2、測試分析能力

  進入測試後,需要對我們前期的缺陷預防進行分析和總結,並且分析下該模塊的質量:看下哪些地方是存在風險的,哪些地方是前面做的比較充分的,從而來制定我們的測試策略,減少一些沒有必要的測試點或增加一些有效的測試點,讓我們的整個測試更加的有效,並且通過不斷的測試和分析,來及時調整測試策略,來減少我們的測試時間(比如:以前需要測試500個測試用例,後面通過分析後能夠減少到300個,並且證明測試結果是一樣的),當然我們需要對我們的測試結果負責,要達到這個程度應該是比較難的!

  以上純屬個人觀點,歡迎大家討論。

版權聲明:本文出自 pengyongbo 的51Testing軟件測試博客:http://www.51testing.com/?181625

原創作品,轉載時請務必以超鏈接形式標明本文原始出處、作者信息和本聲明,否則將追究法律責任。


發佈了28 篇原創文章 · 獲贊 25 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章