企業如何預防軟件缺陷,結合我自己的經驗談一點:(以下是我做測試幾年來的總結,只是我的個人觀點)

    首先,我認為重要的是,根據需求開發一個Demo,讓測試人員尤其是用戶來確認,因為很多用戶不會提出需求,但是等你軟件開發方做好了,用戶根據你目前所做的軟件他們會提出新需求了,在這方面我深有體會。所以有問題,有不明白的地方讓用戶早提,否則到后大家都很被動。

    第二:重點評審需求中不明確的功能模塊和存在分歧的模塊,對于不明白的地方一定要弄懂,因為需求是軟件開發的源頭。

    第三:對于一些重點模塊和用戶業務常用的模塊,要重點評審,比如說我以前做無線POS機的系統,“銷售”這個功能當然是重重之重了。

    第四:做好單元測試,目前國內很多軟件企業根本沒有一個單元測試的標準,我見過一家小公司,程序員居然極不負責的書:這個功能可能有問題,讓測試人員以后去發現吧。有這樣的心態做出的軟件按怎么可能沒有BUG.

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

    第五:測試人員好能做到交叉測試,因為測試人員畢竟考慮問題產生思維定勢,能做到交叉測試,好了。

    第六:要盡可能模擬用戶的真實使用環境,進行測試。

    第七:在測試階段要弄到用戶的真實數據進行測試,因為有一些Bug,只有用用戶的真實數據才能測試出來,測試人員自己造一些數據是測試不出來的。這一點我在測試歐萊雅系統的時候深有體會。

    第八:要做好各個階段的評審,比如代碼評審,設計評審,測試用例評審,后發布產品階段的評審。因為評審是預防軟件缺陷的一個重要的手段了。

    第九:要做好性能測試。

    另外,補充一點:不要把測試階段和發布階段的版本弄錯了。