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