B/S結(jié)構(gòu)ERP管理軟件的測試方法研究
引言
隨著科技的發(fā)展和技術(shù)的進步,當今社會各個行業(yè)的運營和管理都離不開計算機軟件。應運而生的問題是如何才能保證軟件產(chǎn)品的質(zhì)量。事實上,軟件測試是獲得高質(zhì)量軟件產(chǎn)品的重要保證。
1軟件測試的概念
軟件測試是根據(jù)軟件開發(fā)各個階段的規(guī)格說明和程序內(nèi)部結(jié)構(gòu)而精心設(shè)計的一組測試數(shù)據(jù),并利用這些數(shù)據(jù)運行程序,以發(fā)現(xiàn)程序錯誤的過程。根據(jù)測試數(shù)據(jù)設(shè)計方法,軟件測試可分為結(jié)構(gòu)測試和功能測試。在結(jié)構(gòu)測試過程中,測試者對程序的語句、分支和邏輯路徑進行各種覆蓋測試,可以在不同點檢查程序的狀態(tài),以確定實際狀態(tài)與預期狀態(tài)是否一致%
2B/S結(jié)構(gòu)的ERP系統(tǒng)特點和難點
早期的B/S結(jié)構(gòu)Web應用系統(tǒng)使用的技術(shù)有限,但隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,B/S的結(jié)構(gòu)越來越復雜,出現(xiàn)了很多的框架和設(shè)計模式。各種技術(shù)不斷地推陳出新,HTML、ASP、JSP、JavaScript、XML、CSS以及現(xiàn)在使用廣泛的Struts、Hibernate,Spring框架[2]?同時,B/S結(jié)構(gòu)的系統(tǒng)規(guī)模也在不斷地擴大,系統(tǒng)的性能以及安全性也成為B/S結(jié)構(gòu)的主要問題。
ERP管理軟件不同于其他的應用軟件。它是一個以管理會計為核心的信息系統(tǒng),用于識別和規(guī)劃企業(yè)資源,從而獲取客戶訂單,完成加工和交付,最后得到客戶付款。由于涉及企業(yè)的財務(wù)、人力資源、采購途徑等敏感信息,所以,ERP軟件對精確性和安全性要求都很高。
鑒于B/S結(jié)構(gòu)和ERP管理軟件的特點,應用對基于B/S結(jié)構(gòu)的ERP系統(tǒng)提出了很高的要求。由于互聯(lián)網(wǎng)的不安全性和ERP系統(tǒng)的高安全性相悖,所以基于B/S結(jié)構(gòu)的ERP系統(tǒng)應該采用安全超文本傳輸協(xié)議(HTTPS)。實際上,HTTPS就是應用了Netscape的完全套接字層(SSL)作為HTTP應用層的子層。SSL使用40位關(guān)鍵字作為RC4流加密算法,這對于商業(yè)信息的加密是合適的。B/S結(jié)構(gòu)的系統(tǒng)對程序的健壯性也有很高要求,當互聯(lián)網(wǎng)爬蟲軟件截獲數(shù)據(jù)或者修改數(shù)據(jù)時,一般都要求程序應該能及時地做出反應。
3軟件測試
軟件開發(fā)的每個階段都需要測試,根據(jù)行業(yè)的需求來判定需要在哪個階段開始測試。對于ERP這種行業(yè)應用軟件來說,盡可能早測試對以后實際開發(fā)有很大幫助。在學習和概念階段就應該開始進行自我測試,這個階段的測試沒有明確的測試標準,需要做的是了解該行業(yè)的知識、專業(yè)術(shù)語、基本業(yè)務(wù)流程。要多方面考察驗證,來增加自己對該行業(yè)的了解程度。這就是一個簡單的測試過程。
需求分析階段的測試比學習和概念階段測試更為重要。學習階段只是學習該領(lǐng)域的知識,是主動性地獲取知識的過程。而需求分析階段則需要和客戶討論商量,客戶要求實現(xiàn)符合自己公司業(yè)務(wù)的功能,具有特殊性,有些普遍性的復雜浪費資源的功能可能還會去掉。因此,與客戶的交流溝通非常重要,這一階段必須反復進行測試,多與客戶溝通。由于語言的歧義性可能就會對軟件帶來致命的影響,因此為保證客戶所提功能都能被實現(xiàn),要把所理解的客戶需求的功能文檔化,再提交給客戶進行修正。對于需要量化的功能和結(jié)構(gòu),應該給出具體的數(shù)字。經(jīng)過幾次如此反復的修正測試,功能需求大致就可以達到客戶的預期了。
開發(fā)期包括系統(tǒng)設(shè)計階段以及系統(tǒng)實現(xiàn)階段,這一階段的測試至關(guān)重要,直接關(guān)系到軟件產(chǎn)品的成敗。系統(tǒng)設(shè)計必須是有經(jīng)驗的項目帶頭人,對系統(tǒng)結(jié)構(gòu)和功能非常清楚,必須完成客戶需要的每個功能,以及協(xié)調(diào)功能的實現(xiàn)部分。這部分需要反復對照需求分析,如遇到不清楚的問題,必須重新聯(lián)系客戶確認,這也是一種測試過程。當系統(tǒng)經(jīng)過編碼階段之后,就需要大規(guī)模的測試來驗證客戶的一系列需求。測試用到的主要方法是黑盒測試和白盒測試。
黑盒測試就是把系統(tǒng)看成一個黑盒,從外界取得輸入,然后再輸出。整個測試過程根據(jù)需求文檔,看程序是否實現(xiàn)了需求文檔中所要求的功能。黑盒測試比較簡單,測試者不需要關(guān)注程序內(nèi)部的具體實現(xiàn),主要適用于對系統(tǒng)功能進行測試[3'4]o
黑盒測試的優(yōu)點:一是簡單易懂,不需要了解程序內(nèi)部的代碼及實現(xiàn);二是與軟件內(nèi)部實現(xiàn)無關(guān);三是從用戶的角度出發(fā),能夠很容易知道用戶會用到哪些功能,會遇到哪些問題;四是基于軟件開發(fā)的需求文檔,其測試功能需求很準確;五是實現(xiàn)軟件自動化測試較為方便。黑盒測試的缺點主要是不能覆蓋所有的代碼,大概只能達到總代碼量的30%;另外就是自動化測試的復用性較低叫
白盒測試則是按照程序?qū)崿F(xiàn)的代碼來測試代碼實現(xiàn)的功能。白盒測試常用的測試方法有語句覆蓋、分支覆蓋、條件覆蓋、路徑覆蓋,還有一些其他基于結(jié)構(gòu)的測試技術(shù)等。
白盒測試的直接好處是能知道所涉及的測試用例在代碼級上哪些地方可以被忽略掉,它的優(yōu)點是幫助軟件測試人員增大代碼的覆蓋率,提高代碼的質(zhì)量,發(fā)現(xiàn)代碼中隱藏的問題。但是,白盒測試也有一些缺點:首先是程序運行會有很多不同的路徑,不可能測試所有的運行路徑;其二是測試基于代碼,只能測試開發(fā)人員做得對不對,而不能知道設(shè)計得正確與否,因而可能會漏掉一些功能需求;其三是在系統(tǒng)比較龐大時,測試開銷會非常大。
根據(jù)B/S結(jié)構(gòu)的ERP系統(tǒng)的特點,在進行黑盒測試和白盒測試的過程中,除了需要滿足系統(tǒng)設(shè)計的基本要求外,根據(jù)實際開發(fā)測試,可以得到以下幾點非常重要且容易被忽略的經(jīng)驗:
3.1頁面的測試
系統(tǒng)內(nèi)包含著大量的HTML代碼,不規(guī)范的代碼會帶來安全問題,加之目前市場上瀏覽器種類繁多,即使同一瀏覽器也有不同的版本,可以選用頁面檢查工具來檢查HTML語法,還可以使用一些自動化的測試軟件來抽取連接地址、框架、CSS等內(nèi)容。根據(jù)測試結(jié)果,可以找出一些冗余孤立的頁面,然后進行進一步處理。
3.2頁面內(nèi)容和控件的測試
頁面內(nèi)容一般指的是頁面上的說明文字、圖標等提示客戶正確輸入的指示內(nèi)容,這些內(nèi)容的確認只能人工檢測,確保這些提示性的語言文字不會出錯??丶话惆奢斎牒涂蛇x擇兩種,就是常說的文本框和下拉框。文本框測試比較復雜,包括測試長度(檢測能輸入的最大長度和最小長度)、類型測試(數(shù)字、大小寫英文、空格、特殊符號、漢字以及日語中的全半角數(shù)據(jù))、格式測試、邊界測試等;下拉框的測試則需要保證下拉的內(nèi)容是否完整,是否涵蓋了客戶要求的所有可選的項目,以及選擇該項目后其他項目是否隨之聯(lián)動。頁面測試還需要注意快捷鍵的測試,如常用的Tab、Enter鍵,保證在按下此鍵時選擇框會隨之遷移。
3.3數(shù)據(jù)庫數(shù)據(jù)一致性的測試
要保證數(shù)據(jù)庫中數(shù)據(jù)和畫面表示一致,由畫面錄入的數(shù)據(jù)能正確地在數(shù)據(jù)庫中呈現(xiàn),數(shù)據(jù)庫中的數(shù)據(jù)也能在頁面正確地表示,不會出現(xiàn)數(shù)據(jù)錯位、截斷、丟失的情況。一般來說,如果表格設(shè)計正確數(shù)據(jù)就會是一致的,最可能出錯的情況是開發(fā)過程中修改數(shù)據(jù)庫字段長度或頁面錄入長度時,沒有同步修改對應的頁面或數(shù)據(jù)庫,這樣就會出現(xiàn)多錄入的部分數(shù)據(jù)存不到數(shù)據(jù)庫中,或是從數(shù)據(jù)庫取出的數(shù)據(jù)不能完整地在頁面上表示。還需考慮數(shù)據(jù)庫表的關(guān)聯(lián)性問題,如一個頁面輸入的項目要同時存放的幾個表中,當頁面項目變更時,往往會漏掉其中某些表。
3.4數(shù)據(jù)和單據(jù)測試
ERP軟件中肯定會涉及到數(shù)據(jù)的計算,數(shù)據(jù)運算的精度非常重要,要根據(jù)客戶的需求合理地設(shè)計運算的精度,到最后一位是四舍五入還是截斷都要由客戶需求的精度來決定。雖然看起來是一個很小的問題,但如果數(shù)據(jù)量非常大的話,就會造成很大的誤差,這些貨品入出庫或錢財?shù)膿p失是不可估量的。單據(jù)的測試更為復雜,未分配權(quán)限的操作者不可以做相應的業(yè)務(wù)單據(jù),分配權(quán)限的才可以做權(quán)利允許范圍內(nèi)的操作。單據(jù)表頭部和表體部顯示的問題,表頭的位置、大小以及是否和表體相關(guān)都需要進行測試,表體的內(nèi)容是否會出現(xiàn)覆蓋擠壓在一起的狀況、單據(jù)表體項目的各種操作和算法測試也是我們需要關(guān)注的??刂茊螕?jù)輸出的按鈕也需要測試其預覽、輸出、打印的功能,這里需要注意的是輸出單據(jù)的分頁、打印是否正確。尤其要注意的一點是,對于一些已經(jīng)有表格的打印紙,只需要我們打印進去內(nèi)容的時候,需要仔細確認打印位置是否正確。單據(jù)測試還涉及單據(jù)之間關(guān)系測試,包括單據(jù)之間參照生單測試、單據(jù)之間的控制測試及單據(jù)聯(lián)查等。
3.5,性能測試
性能是用戶對軟件產(chǎn)品是否滿意的一個重要因素。一般采用的方法是手工測試、在程序中插入代碼來計算時間和瓶頸測試。手工測試就是開始運行程序后,通過工具記錄開始和結(jié)束時間。這種方法工作量比較大,一般適用于較少測試的情況,如進行了SQL優(yōu)化。插入代碼來計算時間,這種方法工作量也比較大,而且本身插入的測試代碼可能會影響到程序的性能。瓶頸測試是用得比較多的方法,關(guān)鍵點是找到系統(tǒng)的瓶頸,主要對其進行測試,統(tǒng)計平均的系統(tǒng)響應時間、操作成功率等,還要對瓶頸處進行壓力測試來驗證系統(tǒng)的可靠性和能夠提供的最大的服務(wù)限制。
軟件維護時期的測試顯得格外重要,往往是客戶使用了軟件一段時間后覺得和其需要的功能有所區(qū)別,要求提出修改。這些修改往往是小修改,不會影響軟件的主要功能。因此,當修改了一部分代碼的時候要求不影響系統(tǒng)的主要功能,簡單來說是修改少、測試多。這跟程序的健壯性有很大的關(guān)系,如果系統(tǒng)設(shè)計比較規(guī)范,維護起來也比較容易。這一階段重點是和客戶溝通好,確保在最少的改動的情況下能滿足客戶的要求,然后分析修改的代碼可能影響到的功能,主要進行修正點測試以及正常系測試,需要比較一些單據(jù),可以使用VBA編程來進行測試。尤其要注意的問題是,管理好每次修正的版本,以便下一次修正時使用。
4結(jié)語
軟件的發(fā)展使得測試的規(guī)模在不斷地變大,測試也越來越專業(yè)化、產(chǎn)業(yè)化。近些年涌現(xiàn)出了大量的自動化的測試軟件,大大地提高了測試效率。大部分公司都采用自動化的測試工具,但是自動化的程度都不高,可見自動化的測試工具還只是輔助的工具。對于ERP軟件來說,測試正確性要求極高,畢竟自動化測試軟件也是軟件,其正確性也難以保證,所以對于單據(jù)測試還是有針對性地編寫自己的測試程序更為準確。相信隨著技術(shù)的發(fā)展,自動化測試離我們并不遙遠,測試中繁瑣的工具將由測試軟件來完成,測試人員只需要指定高效快捷的測試方案即可。
20211019_616eca34116a2__B