軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。它不僅是軟件開發(fā)階段的有機組成部分,而且在整個軟件工程(即軟件定義、設(shè)計和開發(fā)過程)中占據(jù)相當大的比重。軟件測試是軟件質(zhì)量保證的關(guān)鍵環(huán)節(jié),直接影響著軟件的質(zhì)量評估。軟件測試不僅要講究策略,更要講究時效性。驗收測試作為軟件測試過程的最后一個環(huán)節(jié),對軟件質(zhì)量、軟件的可交付性和軟件項目的實施周期起到"一錘定音"的作用。 1、ERP驗收測試的現(xiàn)狀 驗收測試是一種有效性測試或合格性測試。它是以用戶為主,軟件開發(fā)人員、實施人員和質(zhì)量保證人員共同參與的測試。ERP(企業(yè)資源規(guī)劃)作為提高企業(yè)管理創(chuàng)新能力的有力工具,其定義、設(shè)計、開發(fā)、實施和應(yīng)用的過程遵循一定的規(guī)律。這些規(guī)律表現(xiàn)在軟件過程控制、質(zhì)量保證和軟件測試等方面。驗收測試關(guān)系到ERP能否成功驗收,能否平滑步入維護期,能否快速實現(xiàn)效益。ERP驗收測試的全面性、效率性、科學性、規(guī)范性、徹底性在廣大制造業(yè)企業(yè)和ERP軟件供應(yīng)商中還是一個嶄新的話題。 當前很多人對ERP驗收測試工作存在一些誤解: (1)由于ERP軟件的復(fù)雜性、規(guī)模性,人們可能更多地關(guān)注它多變的需求定義、個性化解決方案、定制化開發(fā)過程,卻輕視了項目的驗收工作。這些"只重視開題和過程,不重視結(jié)題和維護"的做法,最直接的后果就是,形成了一個個延期工程或"爛尾"項目。 (2)ERP實施工作做好了,用戶企業(yè)可以把系統(tǒng)跑起來了,文檔移交了,客戶簽字了,還有什么必要做驗收測試。這種誤解源于對驗收測試的目的、流程、方法和意義缺乏認識。 (3)驗收測試是用戶企業(yè)的事,與軟件服務(wù)提供商無關(guān)。事實上,只有兩者密切配合,才能提高測試效率。 (4)將驗收測試理解成給用戶做演示。驗收測試要講究策略,不是走走過場,而是有計劃有步驟的執(zhí)行活動,要進行科學的用例設(shè)計。 (5)驗收測試就是驗證軟件的正確性。驗收測試和其他的測試一樣,既要驗證軟件的正確性,又要發(fā)現(xiàn)軟件錯誤。只不過,驗收測試是以確認軟件功能是否滿足需求為主。 2、ERP驗收測試的流程及方法原則 軟件包括程序、數(shù)據(jù)和文檔。ERP驗收測試的對象應(yīng)當含蓋這三個方面。驗收測試的主體要以用戶企業(yè)為主,ERP軟件服務(wù)供應(yīng)商積極配合;或以第三方測試為主,用戶和軟件供應(yīng)商共同配合。 ERP驗收測試的基本流程如下圖所示,軟件實施人員要適時配合和敦促用戶做好驗收測試的各項準備工作,按計劃按步驟執(zhí)行驗收測試,形成規(guī)范的測試文檔,客觀地分析和評估測試結(jié)果,并跟蹤不合格現(xiàn)象,對軟件問題要分級分類管理,必要時要進行回歸測試,確保所有問題能得到關(guān)閉,最終成功通過驗收。 在測試方法上,由于驗收階段的特殊性,一般以黑盒測試和配置復(fù)審為主,以自動化測試和特殊性能測試為輔,用戶、軟件開發(fā)實施人員和質(zhì)量保證人員共同參與。 ERP驗收測試要注意以下幾個原則問題: (1)驗收測試始終要以雙方確認的ERP需求規(guī)格說明和技術(shù)合同為準,確認各項需求是否得到滿足,各項合同條款是否得到貫徹執(zhí)行。 (2)驗收測試和單元測試、集成測試不同,它是以驗證軟件的正確性為主,而不是以發(fā)現(xiàn)軟件錯誤為主。 (3)對驗收測試中發(fā)現(xiàn)的軟件錯誤要分級分類處理,直到通過驗收為止。 (4)驗收測試中的用例設(shè)計要具有全面性、多維性、效率性,能以最少的時間在最大程度上確認軟件的功能和性能是否滿足要求。 3、ERP驗收測試的內(nèi)容及用例設(shè)計 ERP驗收測試的目的是確認系統(tǒng)是否滿足產(chǎn)品需求規(guī)格說明和技術(shù)合同的相關(guān)規(guī)定。通過實施預(yù)定的測試計劃和測試執(zhí)行活動確認軟件的功能需求、性能需求和文檔需求。ERP是較復(fù)雜的大規(guī)模性軟件,其驗收測試應(yīng)當涵蓋確認測試和系統(tǒng)測試兩個方面的內(nèi)容。具體包括以下測試內(nèi)容:安裝測試、功能測試、界面測試、性能測試、文檔測試、負載壓力測試、恢復(fù)測試、安全性測試、兼容性測試等。下面結(jié)合ERP驗收測試的具體內(nèi)容,談?wù)動美O(shè)計的注意事項。 (1)安裝測試 安裝測試的目的在于驗證軟件能否在不同的配置情況下完成安裝,并確認能否正常運行。ERP安裝測試的用例設(shè)計要注意以下幾點: 第一,根據(jù)ERP的可移植性,選擇不同操作系統(tǒng)。 第二,選擇不同層次的硬件配置和軟件配置,一般選用最低、中等和最高三種配置進行測試,驗證系統(tǒng)對軟硬件環(huán)境的依懶性。 第三,觀察ERP安裝程序在軟硬件資源充足的情況下能否正常安裝,安裝過程中是否給予充足的提示,是否存在流氓軟件的一些弊病,安裝完成后能否正常運行,能否徹底刪除。 第四,在資源不充沛的情況下,如磁盤空間不夠、內(nèi)容不足等,系統(tǒng)能否完成安裝,能否給予各種提示。 (2)功能測試 功能測試是驗收測試中的主要內(nèi)容。ERP功能測試要包含以下項目:單個模塊的查詢、增加、刪除、修改、保存等操作;數(shù)據(jù)的輸入與輸出;數(shù)據(jù)處理操作,如導入、結(jié)轉(zhuǎn)等;基礎(chǔ)數(shù)據(jù)定義的精度;計算的準確性,如倉庫的歷史庫存、當前庫存、貨位庫存是否準確;數(shù)據(jù)共享能力;身份驗證和權(quán)限管理;接口參數(shù)和系統(tǒng)控制參數(shù);單據(jù)流轉(zhuǎn)情況;狀態(tài)控制,如系統(tǒng)是否對MPS在執(zhí)行MRP分解、工單下達、車間任務(wù)調(diào)度等操作前后的狀態(tài)做了標識,狀態(tài)的改變是否正確;報表的打印輸出;審批流程定義及各種審批、反審批操作;短信發(fā)送及管理;崗位及部門業(yè)務(wù)的操作,如從請購管理、采購計劃到采購訂單管理,再到采購到貨管理;跨部門的業(yè)務(wù)操作,如從銷售訂單到主生產(chǎn)計劃,從車間領(lǐng)料到倉庫出庫等等。 ERP功能測試的用例設(shè)計要注意以下幾點: 第一,測試項目的輸入域要全面。要有合法數(shù)據(jù)的輸入,也要有非法數(shù)據(jù)的輸入。如,在測試基礎(chǔ)數(shù)據(jù)的定義時,若規(guī)定是數(shù)字,則既要輸入數(shù)字進行測試,也要輸入字母、空格等非數(shù)字進行測試。數(shù)字包含整數(shù)、負數(shù)、小數(shù),因而還要輸入這些不同的數(shù)字驗證數(shù)字的精度。 第二,劃分等價類,提高測試效率。在考慮測試域全面性的基礎(chǔ)上,要劃分等價類,選擇有代表意義的少數(shù)用例進行測試,提高測試效率。如,若MRP記錄有"剛形成"、"已派工""正執(zhí)行"、"已完成"四種狀態(tài),系統(tǒng)只允許對剛形成的MRP記錄做局部性修改或刪除操作,那么在測試時,將MRP記錄劃分為四類,每種狀態(tài)對應(yīng)一類,每類各選一條記錄作為測試用例即可。 第三,要適時利用邊界值進行測試。如"訂單預(yù)排"中一般要求預(yù)排的數(shù)量大于0,那么測試數(shù)據(jù)可以分別為0,-1,1,10000000(一個非常大的正數(shù))。 第四,重復(fù)遞交相同的事務(wù)。 第五,不按照常規(guī)的順序執(zhí)行功能操作。 第六,驗證實體關(guān)系,實體間的關(guān)系有三種:一對一,一對多,多對多。如,一個MPS對應(yīng)多個MRP,一個MRP對應(yīng)多個車間任務(wù)。 第七,執(zhí)行正常操作,觀察輸出結(jié)果的異常性。如,刪除某條記錄對排序的影響;執(zhí)行審批后,單據(jù)的狀態(tài)是否改變。 (3)界面測試 ERP界面要符合現(xiàn)行標準和用戶習慣。軟件企業(yè)可以形成自己的特色,但要確保整個軟件風格一致。界面測試要從友好性、易操作性、美觀性、布局合理、分類科學、標題描述準確等方面入手。測試用例的設(shè)計要重點掌握以下幾點: 第一,背景和前景的顏色是否協(xié)調(diào),顏色反差是否用得恰當。 第二,軟件得圖標、按鈕、對話框等外觀風格是否一致,美觀效果所要求的屏幕分辨率。 第三,窗口元素的布局是否合理,并保持一致。 第四,各種字段標題的信息描述是否準確。 第五,快捷鍵、按鈕、鼠標等操作在軟件中是否一致。 第六,窗口及報表的顯示比例和格式是否能適應(yīng)用戶的預(yù)期需求。 第七,誤操作引起的錯誤提示是否友好。 第八,活動窗口和被選中的記錄是否高亮顯示。 第九,是否有幫助信息,菜單導航能否正常執(zhí)行。 第十,檢查一些特殊域和特殊控件能否運行。 (4)性能測試 性能測試主要測試軟件的運行速度和對資源的消耗。通過調(diào)整ERP所依賴的軟硬件配置、網(wǎng)絡(luò)拓補結(jié)構(gòu)、工作站點數(shù)、數(shù)據(jù)量和服務(wù)請求數(shù)來測試軟件的移植性、運行速率、穩(wěn)定性和可靠性。一般借助WinRunner之類的企業(yè)級自動化測試工具來輔助測試,通過極限測試來分析評估軟件性能。 (5)文檔測試 文檔是軟件的重要組成部分,也是軟件質(zhì)量保證和軟件配置管理的重要內(nèi)容。文檔測試主要通過評審的方式檢查文檔的完整性、準確性、一致性、可追溯性和可理解性。ERP作為一個大規(guī)模軟件,覆蓋了企業(yè)的各種業(yè)務(wù)。它至少要具備需求定義、開發(fā)設(shè)計、測試評估、項目管理、用戶應(yīng)用這五類文檔,具體而言,應(yīng)包含GB8567-88中規(guī)定的14種軟件文檔。 在文檔復(fù)審時,要特別注意以下幾點: 第一,要明確文檔驗收的標準,軟件企業(yè)和用戶企業(yè)要達成一致。 第二,確定文檔的重要性和項目文檔需求,比如,在驗收階段,用戶文檔(用戶手冊、操作手冊、維護手冊、聯(lián)機幫助文件)顯得特別重要,需要認真評審。 第三,檢驗文檔完整性,主要是文檔的種類和內(nèi)容的完整性。 第四,檢驗文檔的一致性和可追溯性,主要是:軟件的設(shè)計描述是否按照需求定義進行展開的;應(yīng)用程序是否與設(shè)計文檔的描述一致;用戶文檔是否客觀描述應(yīng)用程序的實際操作;關(guān)于同一問題的描述是否存在不同的說法。 第五,檢驗文檔的準確性,主要是文檔的描述是否準確,有無歧義,文字表達是否存在錯誤。 第六,檢驗文檔的可理解性,主要審核文檔是否針對特定的讀者群體,表達是否詳細。如,ERP操作手冊,除了描述每個模塊的操作,應(yīng)該還提供關(guān)聯(lián)性崗位業(yè)務(wù)、部門業(yè)務(wù)和跨部門業(yè)務(wù)的操作說明。 (6)其他測試 除了上述的測試外,還有必要對系統(tǒng)的其他特性和需求加以測試。如檢測軟件遇突發(fā)性故障后對數(shù)據(jù)的恢復(fù)能力,軟件的安全保密性和對硬件、軟件、數(shù)據(jù)的兼容性,系統(tǒng)所能承擔的最大數(shù)據(jù)量和健壯性等。 其他測試一般包含以下幾種: 第一,負載壓力測試。它主要包括并發(fā)性能測試、疲勞強度測試、大數(shù)據(jù)量測試和速度測試。一般采用自動化技術(shù)分別在客戶端、服務(wù)器端和網(wǎng)絡(luò)上進行測試。用例設(shè)計時,要以真實的業(yè)務(wù)為依據(jù),選擇有代表性的、關(guān)鍵的業(yè)務(wù)操作作為測試對象。 第二,恢復(fù)測試。通過模擬硬件故障或故意造成軟件出錯,檢測系統(tǒng)對數(shù)據(jù)的破壞程度和可恢復(fù)的程度。 第三,安全性測試。通過非法登陸、漏洞掃描、模擬攻擊等方式檢測系統(tǒng)的認證機制、加密機制、防病毒功能等安全防護策略的健壯性。 第四,兼容性測試。通過硬件兼容性測試、軟件兼容性測試和數(shù)據(jù)兼容性測試來考察軟件的跨平臺、可移植的特性。 4、結(jié)語 ERP用戶和軟件開發(fā)實施人員要明確驗收測試的真正意圖。開發(fā)人員和實施人員不應(yīng)該掩蓋軟件錯誤或不關(guān)心用戶不熟悉的測試項目。用戶也不能因為存在一些當前無法實現(xiàn)的需求而擱置驗收工作。相反,兩者應(yīng)當精誠合作,相互信任,撥云見日。對于那些不可行的需求或不明確的需求,雙方要協(xié)商進行需求變更,并達成一致意見。只有這樣的驗收測試,才能促使ERP工程項目得以快速圓滿驗收。