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