企業(yè)如何預(yù)防軟件缺陷,結(jié)合我自己的經(jīng)驗(yàn)談一點(diǎn):(以下是我做測(cè)試幾年來(lái)的總結(jié),只是我的個(gè)人觀點(diǎn))

    首先,我認(rèn)為重要的是,根據(jù)需求開發(fā)一個(gè)Demo,讓測(cè)試人員尤其是用戶來(lái)確認(rèn),因?yàn)楹芏嘤脩舨粫?huì)提出需求,但是等你軟件開發(fā)方做好了,用戶根據(jù)你目前所做的軟件他們會(huì)提出新需求了,在這方面我深有體會(huì)。所以有問(wèn)題,有不明白的地方讓用戶早提,否則到后大家都很被動(dòng)。

    第二:重點(diǎn)評(píng)審需求中不明確的功能模塊和存在分歧的模塊,對(duì)于不明白的地方一定要弄懂,因?yàn)樾枨笫擒浖_發(fā)的源頭。

    第三:對(duì)于一些重點(diǎn)模塊和用戶業(yè)務(wù)常用的模塊,要重點(diǎn)評(píng)審,比如說(shuō)我以前做無(wú)線POS機(jī)的系統(tǒng),“銷售”這個(gè)功能當(dāng)然是重重之重了。

    第四:做好單元測(cè)試,目前國(guó)內(nèi)很多軟件企業(yè)根本沒(méi)有一個(gè)單元測(cè)試的標(biāo)準(zhǔn),我見(jiàn)過(guò)一家小公司,程序員居然極不負(fù)責(zé)的書:這個(gè)功能可能有問(wèn)題,讓測(cè)試人員以后去發(fā)現(xiàn)吧。有這樣的心態(tài)做出的軟件按怎么可能沒(méi)有BUG.

    你看看SAP的研發(fā)精要中人家是怎么做的:①自我測(cè)試,要求開發(fā)人員在完成自已負(fù)責(zé)的模塊后,馬上進(jìn)行測(cè)試,消除模塊內(nèi)部的錯(cuò)誤;②相互測(cè)試,要求開發(fā)人員之間測(cè)試對(duì)方的模塊,由于不同開發(fā)人員的思維、開發(fā)方式的不同,對(duì)方會(huì)很容易找到一些自已很難發(fā)現(xiàn)的問(wèn)題;③代碼檢查,通常是由開發(fā)人員及開發(fā)經(jīng)理來(lái)進(jìn)行,從模塊功能、性能、可用性、編碼規(guī)范、模塊集成性等角度進(jìn)行全面檢查。這一工作會(huì)在系統(tǒng)實(shí)現(xiàn)的各個(gè)階段定期進(jìn)行。SAP還提供了如CATT等輔助測(cè)試工具。

    第五:測(cè)試人員好能做到交叉測(cè)試,因?yàn)闇y(cè)試人員畢竟考慮問(wèn)題產(chǎn)生思維定勢(shì),能做到交叉測(cè)試,好了。

    第六:要盡可能模擬用戶的真實(shí)使用環(huán)境,進(jìn)行測(cè)試。

    第七:在測(cè)試階段要弄到用戶的真實(shí)數(shù)據(jù)進(jìn)行測(cè)試,因?yàn)橛幸恍〣ug,只有用用戶的真實(shí)數(shù)據(jù)才能測(cè)試出來(lái),測(cè)試人員自己造一些數(shù)據(jù)是測(cè)試不出來(lái)的。這一點(diǎn)我在測(cè)試歐萊雅系統(tǒng)的時(shí)候深有體會(huì)。

    第八:要做好各個(gè)階段的評(píng)審,比如代碼評(píng)審,設(shè)計(jì)評(píng)審,測(cè)試用例評(píng)審,后發(fā)布產(chǎn)品階段的評(píng)審。因?yàn)樵u(píng)審是預(yù)防軟件缺陷的一個(gè)重要的手段了。

    第九:要做好性能測(cè)試。

    另外,補(bǔ)充一點(diǎn):不要把測(cè)試階段和發(fā)布階段的版本弄錯(cuò)了。