費雯靖

摘 要 隨著軟件在產品中占比的逐漸增大,軟件質量對產品質量的影響也日益加劇,如何提升軟件產品質量已經成為從事軟件的人員關注的重點和難點。軟件測試作為軟件研發過程的重要環節及保障軟件質量的主要手段之一,已逐漸成為產品相關利益方衡量產品質量的重要手段之一。本文通過對內部測試和三方測試進行分析比較,分析了兩者的相同點和不同點,總結了內部測試對軟件質量提升方面的局限性,從局限出發,提出了幾點建議,能有效提升內部測試對軟件質量的控制力,從而確保通過內部測試手段,有效保障軟件質量得到切實提高。
關鍵詞 內部測試;軟件質量;局限性;控制力
引言
隨著社會信息化程度的快速加深,軟件在項目占比日益增重,用戶對軟件質量提出的要求也將越來越高。
軟件測試作為產品項目(含軟件)交付用戶前的重要環節,也是保證軟件質量的主要手段之一。目前國內許多大中型軟件企業,尤其是軍工企業已經認識到軟件質量的重要性,建立了企業質量保證體系以及內部測試隊伍。但在項目面臨時間壓力、必須加快研制速度的情況下,測試往往會成為換取項目進度的犧牲品。為了進一步滿足軟件產業的發展需求,專業的第三方軟件測評機構應運而生。內部測試和第三方測試都能一定程度地提升軟件質量,但因其自身特點,又都存在一定的局限性。而就目前雷達行業而言,內部測試對軟件產品質量提升的控制力上弱于第三方測試。如何提升內部測試對軟件產品質量的控制成為從事內部測試人員關注的重難點問題。
1內部測試和三方測試的比較
內部測試是由軟件開發方自我組織的,由機構內部人員進行的軟件測試。第三方測試是有別于開發人員或用戶進行的測試,是為保證測試的客觀性,由與開發方獨立的第三方承擔的測試,由專業且有資質的第三方機構承擔。
目前雷達行業內部測試和三方測試的類型都包含文檔審查、靜態分析、代碼審查、動態測試等。
1.1 測試過程
內部測試和三方測試的過程都是在接收到測試任務后,進行文檔審查、測試需求分析與測試策劃、測試設計與實現、測試執行、測試總結。測試工作流程如圖1所示。
內部測試和三方測試在測試過程上的區別:
(1)接收測試任務:三方測試對測試任務的接收是雙方完成測試合同、委托書或其他等效文件(以下統一稱為測試合同)的簽訂;而內部測試可能僅是在機構內部發布項目任命,一般不簽訂測試合同;
(2)測試需求分析與策劃工作產品:目前雷達行業內三方測試在此階段形成的工作產品是測試大綱文檔,而內部測試的工作產品是測試計劃文檔,兩者在形式上存在細小差別。
1.2 測試進入時機
為滿足GJB5000的工程化管理要求,軟件開發過程一般滿足V字形開發流程。在開發人員進行需求分析和產品功能設計時,測試人員就可以閱讀、審查需求分析的產品,獲取用戶需求及產品的設計特性,確定測試目標,啟動測試需求分析與測試策劃活動;在系統、結構設計和詳細程序設計階段,測試人員可以了解系統設計實現方式及具體設計實現平臺,在此基礎上可以明確測試環境、完善測試計劃,并啟動測試設計與實現活動;在編碼階段,可以開展單元測試,確保盡早找出程序中的錯誤。由此可見,內部測試在項目早期就已經進入,對項目的介入程度較深。
而相對的,用戶在委托第三方測試時,主要是在軟件開發的系統集成和驗收兩個階段[1],通過測試發現軟件功能、效率、信息安全等存在的問題,協助系統完成驗收工作,因此第三方測試一般是在項目后期才開始介入,沒有涉及項目的整個生命周期。
1.3 對測試控制力
因內部測試是由開發方自我組織的,測試人員和開發人員隸屬同一機構,沒有合同及經濟約束關系,測試方對項目的控制力基本依賴于機構的軟件工程化管理水平。這導致在項目緊、任務重的情況下,測試方要求的測試輸入受控、測試環境獨立、測試時間充分等,都會因為其他各項因素做出或多或少的讓步。且因測試介入較早,測試產品可能會因需求的完善、修改等出現多次變更,變更量甚至超過50%。
第三方測試以合同的形式制約了測試方,使得它與開發方存在某種“對立”關系,所以它不會刻意維護開發方的利益[2],也不會為了保障項目進度而對測試環境、測試時間、測試輸入項的受控等做出刻意的讓步。測試合同中關于權利與義務的明確規定也能約束雙方按時提交被測項或測試工作產品。另外,得益于介入的時間較晚,需求已基本明確,測試輸入是較穩定、固定的版本,這避免了因需求的頻繁變更而帶來的測試工作的大量返工。
1.4 外界認可程度
就目前軍工雷達行業,在產品交付給用戶后,針對使用中發現的軟件問題,在進行責任劃分時,內部測試承擔的責任較前幾年越來越多,但相對三方測試人員、開發方而言還是較少,相對應的內部測試結果的受外界認可及重視程度也不及第三方測試。
2內部測試對軟件質量提升具有局限性的原因
通過對內部測試和第三方測試比較分析,內部測試對軟件質量提升具有局限性的原因主要包含以下幾方面。
2.1 專業的內部測試人員不足
軟件作為信息技術的靈魂,已經滲透到各個領域,軟件行業在未來很長一段時間將繼續保持較快的發展速度。而隨著軟件的發展,愈發顯得專業軟件測試人才需求缺口巨大。當前國內軟件測試和開發人員比例大約在1∶4~1∶5之間,而國外測試和開發人員比例為1∶1甚至更高[3]。在開發人員和測試人員同屬一個機構時,機構為滿足生產需求,很容易就會形成重開發、輕測試的軟件態度,在從事軟件行業人員不足的情況下,從事軟件測試的人員數量就更加難以滿足需求,這直接導致專職的內部測試人員數量難以滿足業務發展需求。人員數量不足時,人員往往也會倉促上崗,上崗前不能得到充分有效的培訓,從而導致沒有充足的過渡時間使測試人員成長,機構也將缺少具備過硬專業技術能力、良好溝通協調能力等專業內部軟件測試人員。