關於計畫測試
本文作者:
陳雷(jackeichan@gmail.*** )
測試人員的目標是盡早的找出缺陷,並確保缺陷真正的解決。而好的測試計畫可以更好的幫助測試人員把握自己的工作情況。
首先明確乙個概念——測試計畫。
這裡的測試計畫,計畫是作為動詞而不是名詞使用,或者應該叫做「計畫測試」更恰當,其中的重點在於對整個測試專案工作的計畫,而通常大家理解的「測試計畫」只是用來記錄最終結果的那份文件。再說得明確一點,是「計畫測試工作」,而不是「編制測試計畫」。
計畫測試通常是開始測試工作的第乙個任務,一般來說應該由團隊中具有豐富測試經驗的工程師或者測試經理來完成,不建議測試新手接手這件事情。不過新手可以幫忙整理一些計畫測試所需要的資料,也可以從中知道計畫測試工作需要哪些資訊,為以後從全域性的角度看待測試問題打好基礎。另外,測試新手還可以通過幫助整理資料學著制定自己的測試任務和計畫自己的工作,也是不錯的鍛鍊。
不知道會不會有人看了上面的內容會說:說了這麼多廢話,到底測試計畫是幹什麼用的?我認為,計畫測試的最終目的是為了交流!
有人認為計畫測試是為了方便安排自己的工作,其實也可以有這個作用。不過在實際的開發過程中,一般由多個團隊相互協調來完成工作,測試工作作為這個過程中的一環也不會例外。在計畫測試的過程中,測試人員要明確測試的範圍、方法、資源和進度,明確正在測試的專案需要測試的特性、每個任務的負責人,還有與測試相關的風險。這些內容的定義是為了說明測試團隊的意圖、期望以及對將要執行的任務的理解,最終同開發部門(或者客戶支援部等相關的部門)交流並確定下來。
下面是我在制定測試計畫時考慮的一些問題和經驗。當然,因為計畫本身應該是乙個動態的過程,所以當發現下面的問題不適用於具體的工作時,可以增加、減少或調整。但是有一點需要注意,最終確定下的問題列表應當在專案組中進行討論,在不同的部門間相互溝通,最終達成一致。另外,限於本人的工作經驗,不能保證這些問題一定適用於所有的專案,而只是包括了一些常見的需要考慮的問題,很多具體的工作問題,大家還是要「一切從實際出發」,自己多研究多思考。
1.計畫測試過程的目的是什麼?
我一向推崇的做事方法是先明確自己到底要什麼,然後明確自己為了這個目標要做什麼,之後才明確該怎麼做,這些對於計畫測試一樣適用。如果你無法找到計畫測試的理由,那麼就不要在這上面費太大力氣了。
關於計畫測試過程的目的,我的觀點已經在上面描述過——為了交流。為了更好的開展工作,測試部門需要各個部門的認可和支援。
2.你所要進行測試的產品和版本是什麼?
可能很多朋友會說:現在我們的專案管理很混亂,在整個測試過程中會不斷的有新版本,測試工作太被動了。
如果真的是這樣,那麼就考慮引入完善的版本管理方法吧。因為一直從事一些大型專案的測試,對於版本的迭代,並且是無序的迭代,我已經吃盡了苦頭。如果無法把測試人員和開發人員的注意力集中到某個版本,那麼工作的情緒和信心會逐漸跌落。
3.產品的質量目標是什麼?
可能在乙個專案中,老闆、市場部、客戶支援部同開發人員、測試人員對於質量的認識都不相同,那麼就有可能會出現爭論。不過不管怎麼說,各部門必須要有乙個明確的質量要求,並且為自己的要求提出乙個準確的定義:要求響應速度,就要明確每秒響應多少業務;要求穩定,就要明確需要執行多少小時不出現問題;要求缺陷級別,就要明確系統在使用時不能出現某個級別的bug……
最終,必須使測試目標明確並一致通過,以免無法確定測試結束和程式發布的時間。
4.需要什麼資源?
首先就是人員的問題。測試工作需要多少人?都有什麼角色?這些角色的責任是什麼?什麼人負責分配的工作?出了什麼樣的問題應該找誰……
這裡建議還要考慮互相之間的交流方法:只有幾個人,在一間大房子裡通過口頭的方式就能有效交流;測試人員太多的時候,就要考慮使用一些工具來方便聯絡。
5.有哪些術語或名詞需要定義?
這裡也是很關鍵的乙個地方。當專案中的一些概念模糊不清,大家都有各自的理解卻沒有有效交流過的時候,可能對工作的開展帶來一系列影響。
6.哪些需要測試,哪些不需要測試?
這裡如果可能,應當盡量說明需要測試和不需要測試的理由。通常我的做法是需要測試的部分作為測試需求,不需要測試的部分作為測試風險。
7.怎樣定義測試階段?
在計畫測試過程中,應當明確每乙個測試階段的具體含義、工作內容和最終交付的工件。對於定義測試階段,我以為更多的是為了形成測試工作的連貫性,幫助你更好的準確衡量測試工作量。
與此相關的概念是進入、退出規則。每乙個定義的階段都應該有明確的進入規則和退出規則。缺少了這兩個規則,你將有可能會發現,原來定義的階段失去了意義,測試工作不再連貫,而是變成了很多毫無關係的單個工作;測試工作變得遙遙無期,誰也說不明白到底到什麼時候可以結束。
8.如何定義測試策略?
這是計畫測試過程中最重要的部分,建議不要由測試新手來完成。
定義系統測試階段的測試策略,考慮的問題有下面幾個:
a.準備涉及哪些測試型別?
不同的軟體涉及到的測試型別可能會有差別。對於這些具體內容的選擇,建議可以參考rup中的內容。
b.不同的測試型別是否準備使用不同的測試方法和技術?這些方法和技術準備在什麼時候採用,如何採用?
比如是否準備使用黑盒測試?是否需要考慮白盒測試?是否需要使用測試工具?哪些採用手工測試?哪些採用自動化測試?……。
c.哪些因素可能對你的測試策略產生影響?是否會導致策略的改變或者影響策略的實施?
9.測試進度如何制定?
測試工作同其他團隊(比如開發部門)的工作是緊密相關、相互依賴的。建議大家在制定進度前一定要明確哪些因素會對你的進度起到消極作用,哪些因素會起到積極作用,哪些因素應該作為必要條件,這些因素發生變化會產生什麼影響。在確定進度開始時間和結束時間時,使用相對日期而不是絕對日期。
10.是否需要明確測試風險?
在實際工作中,測試工作會受到很多因素的影響和限制,有些時候甚至會限制測試工作的完成。測試人員一定要明確的指出計畫中存在的測試風險,並同其他團隊討論,取得一致的意見,測試人員應該盡早提出測試風險,以避免在專案後期發現存在風險問題而引起恐慌。
最後,還要說一下,在實際測試工作中,可以整個專案制定乙個測試計畫;可以不同的測試階段制定不同的測試計畫;可以不同的測試型別制定不同的測試計畫;也可以不同的功能模組制定乙個測試計畫。
工作方法的選擇,關鍵是要有效,對實際的工作可以產生有益的影響。
再次提醒大家兩點:
1.重要的是計畫過程,而不是產生的文件。
2.在工作過程中,如果無法按照自己預定的進度完成,不要害怕或者沮喪。進度的作用就像一把尺子,你在工作中不斷的用這把尺子來衡量自己――哪些地方需要調整,哪些任務需要多少時間。慢慢地,在制定進度和執行進度的過程中,你就會越來越容易把握自己的工作,就算出現突發事件,你也可以有足夠的能力來處理它。
後續這篇文章寫於2023年,如今一年多過去了,在工作中又學到了很多新的東西,寫作水平也得到了提高,並且很榮幸的在2023年的《程式設計師》雜誌中開啟了「軟體測試專欄」,把幾年來的工作經驗化成「軟體測試實踐」系列共三篇文章發表其中。
作者簡介:(黑體三號。一般單起一頁,各種資訊都是可選的,完全尊重個人意見)
姓名:陳雷,
網名:jackei
(宋體5
號和times new roman
五號,以下均如此)
軟體測試工程師,軟體測試和軟體過程改進實踐的積極推動者。堅信「實踐是檢驗真理的唯一標準」,而「『創新』永遠比『記憶』更重要」,願做軟體測試實踐的先行者。
這裡是詳細資訊。
個人教育和成長經歷:
2001
年從某醫學院畢業,踏上了「
it不歸路」,期間從事過一年多的開發工作和兩年多的測試工作,如今致力於軟體測試和軟體過程改進工作的創新和實踐。
擅長的技術領域:軟體測試
/過程改進
/軟體工程方**的研究
目前的工作動態:目前於廣州某通訊公司擔任軟體測試工程師一職
個人主頁:
個人blog
個人作品展示,包括
書評:
《推薦幾本軟體測試方面的經典書籍
》原創文件:請參見我的
blog
計蒜客 鳴人和佐助 bfs
佐助被大蛇丸誘騙走了,鳴人在多少時間內能追上他呢?已知一張地圖 以二維矩陣的形式表示 以及佐助和鳴人的位置。地圖上的每個位置都可以走到,只不過有些位置上有大蛇丸的手下,需要先打敗大蛇丸的手下才能到這些位置。鳴人有一定數量的查克拉,每乙個單位的查克拉可以打敗乙個大蛇丸的手下。假設鳴人可以往上下左右四個...
關於推薦系統
推薦系統實踐和系統接觸了一些,偶然讀到百分點推薦系統設計一文,有些感想總結如下 1.推薦的行業差異性 a 行業共有的 實時性,高可用性等主要體現在架構上 b 差異性主要體現在推薦的內容上 有的購買重複性高,具有週期性,有的產品就不能重複購買,例如相同款式的包包等,這裡需要對行業進行細分,這個差異主要...
鳴人和佐助 計蒜客 T1214(BFS搜尋)
鳴人和佐助 計蒜客 t1214 題意 已知一張地圖 以二維矩陣的形式表示 以及佐助和鳴人的位置。地圖上的每個位置都可以走到,只不過有些位置上有大蛇丸的手下,需要先打敗大蛇丸的手下才能到這些位置。鳴人有一定數量的查克拉,每乙個單位的查克拉可以打敗乙個大蛇丸的手下。假設鳴人可以往上下左右四個方向移動,每...