胡宇翔
摘 要 隨著軟件產(chǎn)業(yè)的發(fā)展,軟件產(chǎn)品的質(zhì)量控制與質(zhì)量管理正逐漸成為軟件企業(yè)生存與發(fā)展的核心,而軟件測(cè)試就是軟件質(zhì)量保證的關(guān)鍵。雖然軟件測(cè)試得到了很多人的認(rèn)識(shí)與推廣,但是仍有不少人對(duì)其存在認(rèn)識(shí)上的偏差,本文就此做了初略的分析。
關(guān)鍵詞 軟件測(cè)試 誤區(qū) 程序 質(zhì)量
中圖分類(lèi)號(hào):TP31 文獻(xiàn)標(biāo)識(shí)碼:A
近年來(lái),隨著信息技術(shù)的飛速發(fā)展,軟件產(chǎn)品應(yīng)用到社會(huì)的各個(gè)領(lǐng)域與各個(gè)行業(yè)。軟件產(chǎn)品的質(zhì)量也就成為大家共同關(guān)注的焦點(diǎn)。質(zhì)量不佳的軟件產(chǎn)品不僅會(huì)導(dǎo)致軟件開(kāi)發(fā)商的維護(hù)費(fèi)與用戶(hù)的使用成本大幅增加,還可能產(chǎn)生其他的風(fēng)險(xiǎn),造成公司信譽(yù)下降,繼而影響市場(chǎng)開(kāi)拓,甚至可能造成災(zāi)難性的后果。因此軟件測(cè)試就顯得尤為重要。
1軟件測(cè)試是軟件開(kāi)發(fā)結(jié)束后的一道工序
很多軟件開(kāi)發(fā)人員在組織開(kāi)展一個(gè)軟件項(xiàng)目時(shí),通常將其歸結(jié)為需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、軟件編程、軟件測(cè)試、軟件發(fā)布等幾個(gè)階段。將軟件測(cè)試看作是軟件編碼后的一個(gè)檢查與確認(rèn)的過(guò)程。這個(gè)觀(guān)念是對(duì)軟件測(cè)試周期的一種錯(cuò)誤認(rèn)識(shí)。如果等到軟件編程結(jié)束后才進(jìn)行測(cè)試,那么,測(cè)試的時(shí)間通常較短,測(cè)試的覆蓋面不全面,測(cè)試的效果也將大打折扣。更嚴(yán)重的是如果此時(shí)發(fā)現(xiàn)了軟件需求階段或概要設(shè)計(jì)階段的錯(cuò)誤,如果要修復(fù)該類(lèi)錯(cuò)誤,將會(huì)耗費(fèi)大量的時(shí)間和人力。軟件開(kāi)發(fā)的每一個(gè)階段都要進(jìn)行不同目的和內(nèi)容的測(cè)試工作,以保證各個(gè)階段的正確性。因此,軟件開(kāi)發(fā)與軟件測(cè)試應(yīng)該是交互進(jìn)行的,軟件測(cè)試貫穿于軟件開(kāi)發(fā)的全過(guò)程每一個(gè)環(huán)節(jié)。
2軟件測(cè)試只需對(duì)軟件程序進(jìn)行測(cè)試
有些軟件開(kāi)發(fā)人員認(rèn)為軟件測(cè)試只需要進(jìn)行程序測(cè)試,測(cè)試程序在運(yùn)行中是否存在問(wèn)題,就可以了。其實(shí),軟件測(cè)試包括靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。靜態(tài)測(cè)試通過(guò)人工或程序分析來(lái)證明軟件的正確性,不在計(jì)算機(jī)上實(shí)際執(zhí)行程序;而動(dòng)態(tài)測(cè)試通過(guò)執(zhí)行程序做分析,測(cè)試程序的動(dòng)態(tài)行為,以證實(shí)軟件是否存在問(wèn)題。也就是說(shuō),軟件測(cè)試的對(duì)象不僅僅是程序測(cè)試, 軟件測(cè)試應(yīng)該包括整個(gè)軟件開(kāi)發(fā)期間各個(gè)階段所產(chǎn)生的文檔,比如需求規(guī)格說(shuō)明、概要設(shè)計(jì)文檔、詳細(xì)設(shè)計(jì)文檔等。
3軟件測(cè)試可做可不做
有些人員認(rèn)為只要軟件運(yùn)行沒(méi)問(wèn)題就行,不一定要進(jìn)行軟件測(cè)試。受到費(fèi)用、時(shí)間、人員等因素的影響,在費(fèi)用不足、時(shí)間不夠、人手不夠的情況下,不做測(cè)試或者少做測(cè)試;在費(fèi)用充足、時(shí)間充裕、人員配置到位的情況下,才考慮做測(cè)試或多做測(cè)試。這是未對(duì)軟件測(cè)試引起足夠重視的表現(xiàn),是軟件過(guò)程管理混亂的體現(xiàn),必然會(huì)影響到軟件測(cè)試的效果。一個(gè)軟件項(xiàng)目的順利實(shí)現(xiàn)需要有合理的項(xiàng)目進(jìn)度安排,其中包括開(kāi)發(fā)過(guò)程中并行的軟件測(cè)試計(jì)劃,對(duì)項(xiàng)目實(shí)施過(guò)程中的任何問(wèn)題,都要有風(fēng)險(xiǎn)分析和相應(yīng)的對(duì)策,不得因?yàn)殚_(kāi)發(fā)進(jìn)度的延期而簡(jiǎn)單的縮減或者取消測(cè)試時(shí)間、人力和資源。否則,軟件質(zhì)量就存在潛在風(fēng)險(xiǎn),甚至?xí)虼硕a(chǎn)生更大的浪費(fèi)。
4軟件質(zhì)量問(wèn)題是測(cè)試人員的問(wèn)題
任何產(chǎn)品質(zhì)量都是生產(chǎn)設(shè)計(jì)出來(lái)的,而不是檢測(cè)出來(lái)了,軟件的高質(zhì)量不是軟件測(cè)試人員測(cè)出來(lái)的,是靠軟件生命周期的各個(gè)過(guò)程中設(shè)計(jì)出來(lái)的。所以,期望通過(guò)檢測(cè)或者測(cè)試將所有的問(wèn)題都找出來(lái),通常只是理想的情況下才可能,現(xiàn)實(shí)中基本難以實(shí)現(xiàn)或者根本實(shí)現(xiàn)不了。軟件中存在的問(wèn)題或者錯(cuò)誤可能來(lái)自軟件項(xiàng)目中的各個(gè)過(guò)程,軟件測(cè)試只能確認(rèn)軟件存在錯(cuò)誤,不能保證軟件沒(méi)有錯(cuò)誤,軟件測(cè)試也不可能發(fā)現(xiàn)全部的錯(cuò)誤。從軟件開(kāi)發(fā)的角度看,出現(xiàn)軟件錯(cuò)誤,不能簡(jiǎn)單地將責(zé)任歸結(jié)為某一個(gè)環(huán)節(jié)或者某一個(gè)人,有些問(wèn)題的產(chǎn)生可能不是技術(shù)原因,可能來(lái)自于混亂的項(xiàng)目管理。應(yīng)該分析軟件開(kāi)發(fā)項(xiàng)目的每個(gè)階段,從過(guò)程改進(jìn)方面尋找產(chǎn)生錯(cuò)誤的原因和改進(jìn)的措施。
5軟件測(cè)試就是證明軟件能正常運(yùn)行
如果把測(cè)試目標(biāo)定位于要證明程序中沒(méi)有缺陷,那么就會(huì)在潛意識(shí)中傾向于實(shí)現(xiàn)這個(gè)目標(biāo)。也就是說(shuō),測(cè)試人員會(huì)傾向于挑選那些使程序失效的可能性較小的測(cè)試數(shù)據(jù)。把程序測(cè)試定義為在程序中找出錯(cuò)誤的過(guò)程,就使測(cè)試成了可以做到的任務(wù),從而克服了心理上存在的問(wèn)題。軟件測(cè)試更適宜被視為試圖發(fā)現(xiàn)程序中錯(cuò)誤的破壞性的過(guò)程。一個(gè)成功的測(cè)試,通過(guò)誘發(fā)程序發(fā)生錯(cuò)誤,可以在這個(gè)方向上促進(jìn)軟件質(zhì)量的改進(jìn)。因此,不要只是為了證明程序能夠正確運(yùn)行而去測(cè)試程序。相反,應(yīng)該一開(kāi)始就假設(shè)程序中隱藏著錯(cuò)誤,然后測(cè)試程序,發(fā)現(xiàn)盡可能多的錯(cuò)誤。事實(shí)上,如果把測(cè)試目標(biāo)定位于要證明程序中存在缺陷,那么就會(huì)選擇一些容易發(fā)現(xiàn)程序缺陷的測(cè)試數(shù)據(jù)。而后一種態(tài)度會(huì)比前者給程序增加更多的價(jià)值。
6軟件測(cè)試與程序員無(wú)關(guān)
開(kāi)發(fā)和測(cè)試是相輔相成的過(guò)程,需要軟件測(cè)試人員、程序員和系統(tǒng)分析師等相關(guān)人員保持密切的聯(lián)系,需要更多的交流和協(xié)調(diào),以便提高測(cè)試效率。而且軟件的單元測(cè)試部分應(yīng)該主要由程序員完成,必要時(shí)測(cè)試人員可以幫助設(shè)計(jì)測(cè)試樣例。對(duì)于測(cè)試中發(fā)現(xiàn)的軟件錯(cuò)誤,很多需要程序員通過(guò)修改編碼才能修復(fù)。程序員可以通過(guò)有目的的分析軟件錯(cuò)誤的類(lèi)型、數(shù)量,找出產(chǎn)生錯(cuò)誤的位置和原因,以便在今后的編程中避免同樣的錯(cuò)誤,積累編程經(jīng)驗(yàn),提高編程能力。
參考文獻(xiàn)
[1] Paul C.Jorgensen,韓柯,杜旭濤譯.軟件測(cè)試(第2版)[M].機(jī)械工業(yè)出版社, 2002.
[2] (美)Frank Cohen.Java.測(cè)試與設(shè)計(jì)—從單元測(cè)試到自動(dòng)Web測(cè)試[M].新華書(shū)店總店北京發(fā)行所,2005.
[3] 岳曉紅.對(duì)Web測(cè)試測(cè)試技術(shù)的探討[J].隴東學(xué)院學(xué)報(bào),2006.
[4] 段念.軟件性能測(cè)試過(guò)程詳解與案例剖析[M].清華大學(xué)出版社,2006.