影響軟件測試的幾個誤區

隨着客戶對軟件產品質量的要求越來越高,軟件測試的重要性也在逐步增加。然而,重視開發而輕視測試的現象依舊存在,其中存在的軟件測試的一些誤區,將會進一步影響軟件測試活動的有效開展,並且阻礙測試質量和能力的提高。

本文將從軟件測試的幾個誤區入手,對軟件測試過程中的一些現象進行分析和梳理,以幫助測試人員更好定位和開展測試工作。

1) 軟件測試只是開發過程中的一個階段

在傳統的瀑布軟件開發模型中,軟件測試只是開發過程中“編碼和實現”階段之後的一個階段,是軟件產品交付給用戶之前的保證軟件質量的一個手段。

但是,隨着客戶對軟件質量的要求越來越高,以及軟件測試行業的不斷髮展,軟件測試在開發過程中扮演的角色越來越重要。人們逐步認識到軟件測試不只是軟件項目的收尾工作,而應該貫穿於整個軟件開發生命週期。

軟件測試過程應該並行與軟件開發過程,具體的測試過程應該包括測試計劃階段、測試設計階段、測試執行階段、測試結束階段,以及貫穿於整個過程的測試監控。在軟件開發生命週期的每個階段,都需要進行不同目的和內容的測試活動,以保證每個階段軟件工作產品的正確性。同時,軟件測試的對象也不僅僅是代碼,同時也包括需求規格說明、設計規格說明等工作產品,即軟件測試不僅僅包括動態測試,也需要評審這樣的靜態測試。

2) 測試人員是軟件質量的責任人

很多人認爲測試人員需要對發佈的軟件產品質量負責,假如軟件產品提交給客戶之後發現問題,那就是測試人員的責任。這種認識誤區非常打擊測試人員的積極性,同時也給予了測試人員過高的產品質量方面的壓力。

首先,窮盡測試是不可能的,因此通過測試只能證明軟件中存在缺陷,但無法保證其中沒有缺陷。因此,在用戶現場發現缺陷是正常的,我們需要做的是分析爲什麼會遺漏這樣的缺陷,是由於測試覆蓋不全面,還是原來的需求定義和功能設計方面的錯誤引起的,避免在將來的項目中遺漏同樣的錯誤。

其次,軟件測試可以發現缺陷,開發人員修改缺陷之後可以提高軟件產品的質量。但是光靠軟件測試提高產品質量是遠遠不夠的。產品質量的提升需要所有參與項目的成員參與,即質量保證活動應該貫穿於整個軟件開發生命週期,包括開發活動、測試活動、項目管理等。同時,收集和分析各個開發階段的經驗和教訓,可以幫助實施過程改進,不斷提升產品質量。

3) 軟件測試沒有什麼技術含量

軟件測試沒有什麼技術含量,這好像是很多人潛意識中的觀點。他們認爲測試人員不需要具備什麼技能,認爲測試只是按照需求規格說明或者用戶操作測試對象,並將發現的結果與期望結果進行比較,是沒有技術含量的工作。因此,經常可以發現不適合開發工作的人員會轉到工作崗位,其理由就是開發技能要求高,而測試不需要什麼技能:人人都能做測試。這又是非常打擊測試人員的論斷。

首先,軟件測試已經成爲一門獨立的技術學科,合格的測試人員需要掌握各種不同的知識和技能,例如:深入瞭解軟件產品的背景知識、瞭解開發過程與測試過程中的不同活動與輸出、掌握不同的軟件測試技術與方法,以儘可能多的發現測試對象中的缺陷。

其次,測試活動貫穿於整個軟件開發生命週期,測試人員不僅需要參與需求規格說明、設計規格說明等文檔的評審,發現其中的問題和缺陷;同時測試過程中也需要開展制定測試計劃、測試過程監控等重要測試活動,這也需要測試人員掌握各種相關技術,例如:如何有效估算測試工作量、如何有效應對測試風險、如何評估測試進度和測試質量等。

第三,測試工具和測試自動化重要性的不斷提高,新工具、新的開發模型、新的測試方法和技術的不斷更新,都要求測試人員不斷學習和掌握這些知識和技能,也要求測試人員具備一定的編程經驗。而對於測試管理而言,需要的測試理論知識、項目管理知識和實踐經驗的要求會更加高。

4) 時間多就多做點測試,少就少做點

測試進度由項目開發進度來確定,即離項目交付空餘的時間多,就多做測試;反之,則少做測試。這個觀念很大程度上是因爲“測試是軟件開發過程中的一個階段”這個誤區造成的。

這個誤區常常會導致測試時間緊張,因爲開發能夠按照交付測試對象的可能性是很小的。由於開發的延期,爲了按時交付軟件產品給客戶,導致測試時間一再壓縮,從而使得測試人員疲於奔命,不得不經常加班,或者只能壓縮測試範圍,降低測試覆蓋率。其結果是爲了按時交付軟件產品,不得不以犧牲產品質量爲代價。

軟件測試需要貫穿於整個軟件開發生命週期,測試應該與開發是一個相對並行的關係。在制訂軟件項目計劃的同時,就需要同步開始制訂軟件測試計劃。測試計劃的一個重要內容是確定測試的進度(簡單的講就是測試時間和測試資源等的安排)。因此,測試的工作量應該在項目早期根據項目的特點和風險分析結果來確定,而不僅僅是受制於項目開發進度。

5) 軟件測試沒有什麼前途

與國外成熟軟件企業相比,國內的開發成熟度相對降低,或者軟件開發過程不規範。有時候項目的成功往往靠個別開發人員的能力,他們負責總體設計和程序詳細設計,認爲軟件開發就是編寫代碼,給人的印象往往是程序員是真正的高手,受人崇拜,並具有很高的地位和待遇。因此,在這種環境下,軟件測試並不受重視,軟件測試人員的地位和待遇自然就偏低了,甚至軟件測試變得可有可無。

隨着客戶對軟件質量要求的不斷提高,軟件測試將變得越來越重要,相應的軟件測試人員的地位和待遇將會逐漸提高。在軟件開發過程比較規範的大公司,軟件測試人員的數量和待遇與程序員沒有多大差別,優秀測試人員的待遇甚至比程序員還要高。軟件測試將會成爲一個具有很大發展前景的行業,軟件測試大有前途。軟件市場需要更多具有豐富測試技術和管理經驗的測試人員,他們同樣是軟件專家。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章