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