軟件測試常見的7個誤區,你有踩過這些坑嗎

發表于:2020-11-06 09:43  作者:佚名   來源:博客園

字體: | 上一篇 | 下一篇 |我要投稿 | 推薦標簽: 軟件測試 軟件測試技術

  隨著軟件測試對提高軟件質量重要性的不斷提高,軟件測試也不斷受到重視。但是,國內軟件測試過程的不規范,重視開發和輕視測試的現象依舊存在。因此,對于軟件測試的重要性、測試方法和測試過程等方面都存在很多不恰當的認識,這將會進一步的影響軟件測試活動的開展,并且阻礙軟件測試質量的提高。下面簡單列舉了幾種有代表性的對軟件測試的認識誤區,并作了相應的分析和解釋。
  誤區1:軟件開發完成后才進行測試
  在傳統的瀑布模型中,軟件項目主要有一下幾個階段組成:用戶需求、需求分析、概要設計、詳細設計、編碼和實現、測試以及運行維護。由于軟件測試僅處于運行維護階段之前,是軟件產品交付用戶使用之前保證軟件質量的重要手段。因此人們一般認為,軟件測試只是軟件編碼后的一個階段。
  但隨著軟件測試業的發展,人們越來越認識到:軟件測試不應只是軟件項目的收尾工作,而應該在軟件生命周期的每一階段中都包含測試。軟件測試是貫穿于整個軟件開發生命周期的過程活動,包括軟件測試計劃、軟件測試需求分析、軟件測試用例設計、軟件測試執行、軟件缺陷管理、軟件測試風險管理以及其他的一些軟件測試相關的活動等等組成。在軟件項目的每個階段,都需要進行不同目的和不同內容的測試活動,以保證各個階段工作產品輸出的正確性。軟件測試的對象也不僅僅是軟件代碼,還包括軟件需求文檔和設計文檔等其他所有的軟件工作產品。軟件開發與軟件測試之間應該是交互進行的,比如單元編碼之后需要進行單元測試,模塊組合之后進行集成測試。
  如果等到軟件編碼結束之后才進行測試,測試的時間很有限,很難達到測試的覆蓋率要求和測試的質量要求。同時,假如在項目開發的后期,發現一些軟件需求階段和概要設計階段的錯誤和問題,修改這些缺陷導致的成本將是非常高的。有資料表明:平均而言,如果在需求階段修正一個錯誤的代價是1,那么,在設計階段就是它的3-6倍,在編程階段是它的10倍,在內部測試階段是它的20-40倍,在外部測試階段是它的30-70倍,而到了產品發布出去,這個數字就是40-1000倍。修正錯誤的代價不是隨著時間線性增長的,而幾乎是呈指數增長的。因此,應盡早地不斷地進行軟件測試,發現錯誤并加以修正,而非軟件開發結束后才進行測試。
  誤區2:軟件發布后發現軟件問題,那是測試人員的責任
  許多人認為測試人員需要對發布的軟件質量負責,假如軟件到用戶后,發現很多的問題,那是測試人員的錯和責任。這種認識誤區非常打擊測試人員的積極性。軟件中的缺陷可能來自軟件開發過程中的任何一個過程,而對于軟件測試而言,只能證明軟件存在缺陷,而不能保證軟件沒有錯誤。通過軟件測試,無法發現軟件中的所有錯誤和缺陷。從軟件開發的角度看,軟件的高質量不是軟件測試人員測出來的,而是需要軟件生命周期的各個過程共同來保證的。出現軟件錯誤,不能簡單地歸結為某一個人或某個團隊的責任。比如有些錯誤的產生可能不是技術原因,可能來自于混亂的項目管理;或者客戶發現軟件某些功能并沒有按照原有需求來實現,換言之,軟件沒有完成客戶想做的操作,諸如此類問題很可能是軟件設計人員理解需求錯誤致使設計不當所引起的。
  軟件的質量,不僅僅只是測試人員的事情,軟件項目參與的所有人員都應該關注軟件的質量。軟件質量的提高,需要每個項目人員的努力。測試只是提高軟件質量的一個重要環節,質量保證應該貫穿于整個軟件開發生命周期的所有的開發活動、測試活動、項目管理活動等。同時,采用合適的開發和測試過程,對改進軟件質量也能起到重要的作用。除了測試活動外,同時應該分析軟件項目的各個過程,從過程改進方面尋找產生錯誤的原因和改進的措施。
  誤區3:測試人員不需要具備很高的技能
  不少軟件業人士認為軟件測試行業對軟件測試人員的技能要求不高。認為測試只是對照產品規格書操作軟件,發現軟件與規格說明不一致的地方,是沒有技術含量的工作。
  這種觀點是錯誤的,或者至少是步恰當的。隨著軟件測試行業的發展,測試不僅僅是運行軟件發現缺陷的一個過程,而是從項目早期,測試人員就開始介入,進行測試需求分析、計劃測試等。這要求測試人員有很好的溝通能力、理解能力、分析問題能力,同時還必須對產品開發技術有一定的了解。
  隨著軟件工程學的發展和軟件項目管理經驗的提高,軟件測試已經形成了一個獨立的技術學科,演變成一個具有巨大市場需求的行業。軟件測試技術不斷更新和完善,新工具、新流程、新測試設計方法都在不斷更新,需要掌握和學習很多測試知識。所以,具有編程經驗的程序員不一定是一名優秀的測試人員。軟件測試包括測試技術和管理兩個方面,完全掌握這兩個方面的內容,需要很多測試實踐經驗和測試理論知識,需要我們不斷的學習。
  誤區4:測試是測試人員的工作,和開發人員無關
  我們提倡軟件測試盡早介入軟件項目,或者說我們提倡貫穿于整個軟件開發生命周期的測試。因此,在項目概念、需求和設計階段,軟件測試就應該介入項目中去。開發和測試是相輔相成的過程,需要軟件測試人員和程序員、系統分析員等項目其他成員保持密切的聯系,需要更多的交流和協調,以便提高測試效率。在這些階段所發現的問題將有助于開發設計人員完善需求和設計。
  在項目開發過程中,一般由開發人員針對模塊進行白盒測試,這是早期的測試。后期對于測試人員所發現的缺陷,開發人員應根據優先級來進行修復,針對開發人員的修改,測試人員還要進行再測試和回歸測試工作。因此,在整個項目過程當中,測試也不僅僅是測試人員的事情,而是測試人員和開發人員緊密合作的過程。
  誤區5:由項目進度來決定測試工作量
  規范的測試流程應該是一個整體的連續的過程,包括測試計劃和控制、測試分析和設計、測試實現和執行等階段。每一階段也應有各自的規程。而大多數人對測試的理解往往是隨項目進度而定,即離項目交付空余的時間多,就多做測試;反之,則少做測試。這樣很可能導致測試時間緊張,從而可能放棄其中的一些測試,可能導致遺漏一些重要的缺陷,顯然這種做法存在非常大的風險。
  測試進度由項目開發進度來確定,這個觀念很大程度上是因為“測試是開發生命周期的一個階段”這個誤區造成的。實際上,我們一直強調,測試是貫穿于整個軟件開發生命周期的。在制訂軟件項目計劃的同時,就需要規劃和制訂軟件測試的計劃。測試計劃的一個重要內容是確定測試的進度(也就是測試時間和資源的安排)。因此,測試時間的多少,應該在項目早期根據項目的特點和風險分析結果來確定,而不僅僅是決定于項目進度。
  誤區6:軟件測試是沒有前途的工作,只有開發人員是軟件高手
  由于我國軟件整體開發能力比較低,軟件過程還不規范。項目的成功往往靠個別開發人員的能力,他們負責總體設計和程序詳細設計,認為軟件開發就是編寫代碼,給人的印象往往是程序員是真正的牛人,具有很高的地位和待遇。因此,在這種環境下,軟件測試并不受重視,軟件測試人員的地位和待遇自然就偏低了,甚至軟件測試變得可有可無。
  隨著市場對軟件質量要求的不斷提高,軟件測試將變得越來越重要,相應的軟件測試人員的地位和待遇將會逐漸提高。在微軟等軟件過程比較規范的大公司,軟件測試人員的數量和待遇與程序員沒有多大差別,優秀測試人員的待遇甚至比程序員還要高。軟件測試將會成為一個具有很大發展前景的行業,軟件測試大有前途。市場需要更多具有豐富測試技術和管理經驗的測試人員,他們同樣是軟件專家。
  誤區7:自動化測試效率高,將取代軟件手工測試
  測試自動化在某些情況下可以提高測試的效率(比如完成重復的測試配置、模擬大虛擬用戶等),但是并不是所有的測試都適合自動化,如程序需要處理的數據量不大、程序運行的次數不多、或者測試需要一些人的主觀判斷(如界面測試)等,在這些情況下,自動化測試可能并不是很好的選擇。
  同時,自動化測試需要在前期投入大量的資源和工作量,同時需要維護的成本很高,包括環境的搭建、測試腳本的設計、維護等。因此,要具體情況具體分析,不能盲目推崇測試自動化。

  本文內容不用于商業目的,如涉及知識產權問題,請權利人聯系51Testing小編(021-64471599-8017),我們將立即處理


評 論

論壇新帖

頂部 底部


建議使用IE 6.0以上瀏覽器,800×600以上分辨率,法律顧問:上海瀛東律師事務所 張楠律師
版權所有 上海博為峰軟件技術股份有限公司 Copyright©51testing.com 2003-2020, 滬ICP備05003035號
投訴及意見反饋:webmaster@51testing.com; 業務聯系:service@51testing.com 021-64471599-8017

滬公網安備 31010102002173號

51Testing官方微信

51Testing官方微博

掃一掃 測試知識全知道

日本av