做好軟件測試管理工作需要具備的基本要素 

 

 1. 符合軟件開發(fā)計劃時間框架的軟件測試計劃


  軟件測試計劃是一個老生常談的問題了,不同的人對計劃的理解往往是大相徑庭的。這里讓我們回顧一下何為計劃,一般來說計劃的目的是用來識別任務(wù),分析風(fēng)險,規(guī)劃資源和確定進(jìn)度。從計劃的定義上來看,計劃并不是一張時間進(jìn)度表,而是一個動態(tài)的過程,終以系列文檔的形式確定下來。擬定軟件測試計劃需要測試項目管理人員的積極參與,這是因為主項目計劃已經(jīng)確定了整體項目的一個時間框架,軟件測試作為階段工作必須服從時間和資源上的約定。

  2. 一個完整的測試計劃應(yīng)該包含以下幾個方面:


  (1) 對測試范圍的界定,簡單的說是測試活動需要覆蓋的范圍。在有時間約束,工作產(chǎn)品質(zhì)量約束的情況下,能夠調(diào)整是范圍。在實際的工作中,我們總是不自覺的在調(diào)整軟件測試的范圍,比如在時間緊張的情況下,通常優(yōu)先完成重要功能的測試。這是一種測試范圍上調(diào)整。所以作為測試管理者在接收到一項任務(wù)的時候,需要根據(jù)主項目計劃的時間來確定測試范圍。如果在確定范圍上出現(xiàn)偏差,會給測試執(zhí)行工作帶來消極的影響,例如加班。確定范圍前需要管理人員來進(jìn)行任務(wù)的劃分,簡單的說是分解測試任務(wù)。分解任務(wù)有兩個方面的目的,一個是識別子任務(wù),二是方便估算資源的需求。完成了上述的任務(wù)之后,管理者便需要根據(jù)項目的歷史數(shù)據(jù)估算出完成這些子任務(wù)一共需要消耗的時間和資源。通常意義上說,執(zhí)行一次完整的全面測試幾乎是不可能的事情,我們總是要在測試的范圍上面做出有策略的妥協(xié)。

  (2) 風(fēng)險的確定,項目中總是有不確定的因素。這些因素一旦發(fā)生之后記錄對項目的順利執(zhí)行產(chǎn)生相當(dāng)大的消極影響。所以在項目中,首先需要識別出存在的風(fēng)險。風(fēng)險識別的原則可以有很多,常見的一種是如果一件事情發(fā)生后,會對項目的進(jìn)度產(chǎn)生較大影響,那么可以把該事件做為一個風(fēng)險。風(fēng)險識別出之后,管理者需要按照這些風(fēng)險制定出規(guī)避風(fēng)險的方法。在小的項目中,識別風(fēng)險和制定規(guī)避方法可以省略。

 

  (3) 資源的規(guī)劃,確定完成任務(wù)需要消耗的人力資源,物資資源。這些是保證項目執(zhí)行的物資要素。物資資源是管理者容易忽略的問題,實際上物資資源是人得以開展工作的工具,細(xì)致的規(guī)劃可以讓人更有效的去執(zhí)行項目。常見的物資資源有計算機(jī)硬件,軟件,測試環(huán)境的搭建等等。

  (4) 時間表的制定,在識別出子任務(wù)和資源之后,我們便可以將任務(wù),資源和時間關(guān)聯(lián)起來形成時間進(jìn)度表。本質(zhì)上說,時間表是對前3項任務(wù)的一個概括。沒有前三步的工作,時間進(jìn)度表是沒有意義的。

 

  3. 溝通

  溝通的測試管理人員的必須的技能。雖然我們制定出詳細(xì)的項目計劃,當(dāng)這不意味著有了這個契約之后,項目中的各種角色不需要溝通了。做為測試的管理者,需要將測試發(fā)現(xiàn)的問題及時的反饋給開發(fā)人員,同時也要積極的去了解外界產(chǎn)生的變更。項目中存在變化是普遍現(xiàn)象,而作為管理者是要去管理這里變化,及時的修訂計劃。嚴(yán)格的說,如果沒有這些變化,做為測試管理者的你沒有多少存在的價值。有些人認(rèn)為一旦有了計劃這個契約之后,只要按照要求去執(zhí)行可以,但是項目本身是一個動態(tài)的過程,計劃是項目在某一個時刻、段的靜態(tài)體現(xiàn),所以要按照發(fā)展的眼光來對待計劃。溝通是了解外界變化的積極手段,所以測試管理者而言。其計劃溝通能力的要求要高于測試技能的要求。

 

  4. 執(zhí)行

  去年國內(nèi)流行一本書,名稱為執(zhí)行力。書中的作者認(rèn)為大多數(shù)項目沒有成功的原因在于執(zhí)行。軟件測試也存在一個執(zhí)行的能力問題,有人會說我把要求的事情按照要求做完了不可以了嗎? 的確,按照期望去執(zhí)行任務(wù)是正解,但是這里有一個問題是如何保證執(zhí)行者對期望的理解同要求者的期望是完全一致的呢?所以執(zhí)行的背后還是一個溝通的問題,這里的溝通是測試管理者和執(zhí)行者之間的溝通。所以作為一名測試管理人員一定要在測試工程師開始工作之前明確任務(wù)的意圖,前提和結(jié)果。

 

  5. 版本控制

  前面說道的幾點都是過程,個人技能方面的要求。這里我們要討論的是純粹的工程活動??版本控制。對于版本控制這個概念大家都不陌生,它是軟件配置管理的初期表現(xiàn)形式,來于于測試對穩(wěn)定環(huán)境的要求。測試版本控制簡單的說是測試版本有明確的標(biāo)識,說明。并且測試版本的交付是在項目管理人員的控制之下的。

  測試版本的標(biāo)識用來識別所用的版本。版本號碼的用處很多,例如在填寫錯誤報告的時候往往需要提供發(fā)現(xiàn)錯誤的那個版本。在做缺陷分析時,我們可以利用版本號來區(qū)別缺陷和判斷缺陷的發(fā)展趨勢。

 

  測試版本的說明,它是開發(fā)人員和測試人員之間交流的有效形式。測試人員可以通過這份文檔了解到當(dāng)前的測試版本中上一版本而言有那些顯著的變化,明確了這些之后,測試人員可以更加高效,有針對性的執(zhí)行測試。


  測試版本交付,測試版本的控制必須納于測試管理人員的控制之下。常見的形式是測試管理者控制測試版本的更新和發(fā)布。開發(fā)人員在看到錯誤報告之后,總是傾向于馬上修正這些錯誤并且發(fā)布給測試工程師做驗證。

  考慮到大多數(shù)的開發(fā)人員是典型的完美主義者,這樣的做法無可厚非,但是過于頻繁的版本更新會較低測試的效率。試想,如果你是一名測試工程師,當(dāng)測試用例剛剛執(zhí)行到一半的時候突然發(fā)布出一個新的測試版本,在這樣的情況下,已經(jīng)執(zhí)行完畢的測試用例是否還需要再次執(zhí)行一遍呢? 為了規(guī)避修改代碼帶來的副作用,我們有必要執(zhí)行回歸測試。質(zhì)量是有保證了,但是效率較低了。測試在進(jìn)度上被迫延遲了。所以測試版本的控制有助于保證進(jìn)度和測試的效率。