1引言
軟件測試是保證軟件質量和可靠性的關鍵性技術,而測試階段的測試,又是對軟件需求規格說明、設計和編成進行最終評價的一個機會。大量統計資料表明,軟件測試的工作量往往占整個軟件開發的40%以上,在極端情況下,測試成本可高達相當于軟件工程其它步驟總成本的3至5倍。軟件測試的工作無疑應予高度重視,對于汽車音響系統軟件更是如此。在軟件產品的測試方面均使用軟件工程中提出的兩種測試方法進行測試,即白盒測試和黑盒測試。白盒測試是已知產品的內部工作過程,可以通過測試證明每種內部操作是否符合設計規格要求,白盒測試又叫結構測試。黑盒是已知產品的功能設計規格,可以進行測試證明每個實現了的功能是否符合要求,黑盒測試又叫功能測試。對汽車音響軟件的測試就采用的是黑盒測試方法。
2測試準則
一個軟件實現后,通過測試來實現該軟件是個合格的產品,但是作為汽車音響軟件,更需要通過軟件測試來控制它的質量. 軟件測試的主要原則是:
² 軟件測試是為了發現錯誤而執行程序的過程。
² 測試是為了證明程序有錯,而不是證明程序無錯誤。
² 一個好的測試用例是在于它能發現至今未發現的錯誤。
² 一個成功的測試是發現了至今未發現的錯誤的測試。
3軟件測試的基本過程
在汽車音響量產以后有時因為軟件故障造成某些功能失常遭到客戶的投訴造成的損失嚴重。所以保證汽車音響軟件質量的可靠性尤為重要,雖然造成軟件質量低劣原因可能有開發人員的責任但如果在軟件測試上加強力度,使用正確的測試方法對控制軟件質量是非常有效的。
軟件測試的包括的基本測試活動:1,擬定軟件測試計劃。2,編寫軟件測試流程。3,設計和生成測試用例。4,實施測試。5,生成軟件問題報告。
汽車音響的軟件測試過程實際上是與整個軟件開發過程是平行的。在需求分析階段開始制定相應的軟件測試計劃,然后由一位對整個系統設計熟悉的設計人員編寫測試大綱,明確測試的內容和測試通過的準則,設計完整合理的測試用例,以便系統實現后進行全面測試。充分的準備工作可以有效地克服測試的盲目性、縮短測試周期、提高測試效率、并且起到測試文檔與開發文檔的互查的作用。
軟件測試的實施階段是由一系列的測試周期組成的,在每個測試周期中,軟件測試工程師將依據預先編制好的測試大綱和準備好的測試用例,對每次糾正了被測試軟件的已知錯誤之后生成的更新版本進行新一輪的測試,理論上,系統需要在達到無錯誤時方可終止測試,但實際上,由于人們無法證明系統是否無錯。因此,終止測試只是標志著系統的當前版本的質量經過確認已經達到預期的要求,不再對其做任何修改。
軟件測試過程中的各項測試活動
4軟件測試用例的設計
在軟件測試過程中,軟件測試用例的設計是非常關鍵的一步。測試用例設計的好壞直接影響到以后的測試質量。測試用例應該包括正常范圍測試用例和異常范圍測試用例。正常范圍測試用例的目的是用來證明軟件響應正常輸入和條件的能力。異常測試用例的目的是要驗證軟件響應異常輸入和條件的能力。在汽車音響軟件的測試中采用黑盒的測試方法,其策略包括:(1)用等價分類的方法和邊值分析法提出基本的測試用例。(2)用猜測法補充新的測試用例。
汽車音響包括內藏CD,內藏MD,TUNER,內藏MP3,外接CD_Changer,MD_changer等source,在對其中的某一功能的軟件進行測試的時候,提前都要徹底詳細閱讀并理解這部分的式樣說明書,對每個部分都要編寫詳細的測試用例。下面以內藏CD為例進行簡單介紹。
1, 完整的測試用例必須包括對輸入數據的描述和由這些輸入數據應產生的程序正確結果
的精確描述,以驗證程序的輸出是否與預期的正確結果一致。在對內藏CD這一功能進行編寫測試用例時,要包括所有在CD source 下進行的所有操作所產生的動作結果和顯示結果。比如在CD正常Play狀態下,進行快進、快退等按鍵,樣機要進行快進快退動作,按鍵發出有效的BEEP音,同時在顯示上要與顯示式樣書上的要求一致。在寫測試用例時按鍵是否發有效音,進行什么動作,進行什么樣的顯示畫面,都要一一列出。當在CD source 下進行source 切換時,可以切換到TUNER source ,如果外接CD_changer,也可以切換到CD_changer source下。切換到不同的source 進行不同source 相應的顯示。關于CD正常范圍測試的測試用例,如下圖所示:
軟件版本號: 評價者: 日期:
當前狀態 按鍵操作 |
CD 通常PLAY中 |
評價結果(OK/NG) | |
Up |
0.5秒未滿 0.5秒以上 |
Track Up動作,開始下一曲的開頭進行play. Forward動作,現曲的結束進行下一曲的Forward動作 |
|
Down |
0.5秒未滿 0.5秒以上 |
Track Down動作。演奏時間不滿一秒時,動作后進行前曲play。 演奏時間一秒以上時,從現曲開頭play。 Backward動作。當進行到當前DISC曲頭時從頭開始進行play |
|
Source/ Power |
2.5秒未滿 2.5秒以上 |
Audio source 進行切換 Audio Power Off |
|
… |
… |
… |
|
2,在設計汽車音響軟件的測試用例時不僅包括合理的操作,而且還要包括不合理的操作,因程序開發人員往往忽略的是對于不合理操作的處理,在軟件功能測試的前期注重基本功能的測試,比如內藏CD正常播放,快進、快退等一些基本的功能都實現了之后,使用預期的不合理的操作進行測試會比合理的操作收獲大。因為程序測試就是一個破壞的過程,其目的就是為了發現程序中更多的錯誤,所以除了測試一些合法操作外,還要對其進行破壞性測試,比如,把CD反插入mech中的動作和顯示;把CD插入一半時強行脫出時的動作以及顯示情況。如下為當時測試的部分破壞性測試(異常測試范圍)的部分測試用例。
3,已使用的測試用例設計應予保留,當程序改錯或者改進之后,需要進行重新測試時,可再次使用,以免重新編寫測試用例。
5 軟件測試的實施
² 測試人員要在測試之前仔細閱讀汽車音響的相應資料,包括產品企劃書,模式遷移表、以及在設計過程中形成的測試大綱,全面熟悉系統,編寫測試計劃,設計測試用例,做好測試前的準備工作。
² 當一個軟件版本由開發人員那邊提交到測試組這邊的時候就要開始測試,按照測試計劃進行,一般都是對每個版本,用編好的測試用例,客戶方提供的產品企劃書,客戶方提供的模式遷移表等分別進行測試,最大程度的減少錯誤流出。
² 在進行測試時,要詳細記錄測試的環境、測試的過程,和測試中發現的錯誤。對于許多組織已經發現的比較經典的錯誤,連同測試報告、測試分析等都要保存起來了,正是每個問題遲早都要通過測試的,所以這樣的文件都是以后測試有用的資源。
² 當每個軟件版本的錯誤改正之后,提交給新一個軟件版本,然后同樣通過不同的測試手法,對其進行測試,并每次測試結束填好測試報告,
6軟件測試的結果與報告
將每次測試的結果都必須詳細記錄,對于測出的bug要做到描述準確。每次測試結束后要詳細填寫測試報告(buglist)。一個典型的測試報告應包括下面的信息:
² 被測試的項目的軟件的當前階段,測試機能,所測程序所使用的硬件模型。
² 負責項目和測試的人。
² 特殊的測試用例(包括它們的編號),還包括軟件版本號和測試日期。
² 測試時所連接的設備以及型號。
² 測試結果,所有發現的錯誤,并包括錯誤的現象的描述和錯誤的數目以及產生錯誤的測試用例,任何測試操作的統計,包括錯誤出現的幾率
7結束語
我國軟件行業迅猛發展,隨著軟件技術水平的提高,軟件測試的地位和重要性將會越來越顯著,雖然軟件測試在軟件開發中是很乏味的工作,但是對提高軟件質量卻有著不可低估的作用。開發一套汽車音響成本很高,低效率的軟件測試已經遠遠不能滿足需求,所以采用正確的軟件測試方法可以顯著提高軟件測試的質量和效率,從而軟件質量得到了很好的控制。
8參考文獻
[1]馮建勛, 軟件測試的規范化過程。 華南金融電腦, 2000、9、10,第9期
[2]陳志才, 作戰軟件的測試技術。 現代防御技術, 1995,第3期