李鵬基
(蘭州外語職業學院,甘肅 蘭州 730101)
研究表明,對于已投入運行的軟件而言,其性能往往與數據庫性能密切相關,這也間接說明如若數據庫所表現出運行效果不理想,軟件必然會被影響,在對計算機軟件進行開發時,出于全面優化數據庫性能的考慮,技術人員通常需要將更多精力用在數據庫升級方面,以此來為數據庫各表所具有規范性提供保證[1]。
對數據庫而言,其規范的范式主要分為1NF~5NF以及BCNF,結合實踐經驗可知,在設計軟件系統時,技術人員應優先考慮利用3NF 處理邏輯數據,這是因為經過3NF 處理的數據結構可得到簡化,真正做到了以滿足應用需求為前提,最大程度降低維護難度。 這里要注意一點,雖然3NF 在規范化處理方面有良好表現,但也有尚未解決的問題存在,即:在數據處理環節,3NF需要拆分數據庫各表,當測試工作進行到數據查詢階段,再對各表進行連接。 拆分、連接操作往往需要花費較多時間,不僅檢索、查詢信息的速度會受到影響,整體查詢效果也無法得到保證。
對數據庫設計進行測試的關鍵點,可被歸納如下:其一,對需求分析階段所形成邏輯模型進行測試,該模型與用戶需求密切相關。 其二,對業務進行開發時,測試內容應以實體測試為主,相關測試往往更具專業性。存儲過程、視圖和表均為數據庫實體,要想使測試工作發揮出應有作用,基于上述實體展開測試很有必要,若測試結果表明實體設計有明顯漏洞存在,則需要有關人員對問題成因進行分析,從而制定切實可行的優化對策,使實體設計更加嚴密且科學。 另外,實體測試的作用還體現在對軟件功能合理性、完善性進行檢查方面,除特殊情況外,有關人員均可通過實體測試對軟件功能運行情況和平穩程度加以了解,如果實體測試結果表明數據庫有大量冗余數據存在,則需要酌情對其進行優化,以免系統出現不必要的問題。 待測試環節告一段落,由技術人員聯合設計人員圍繞問題數據庫展開討論,確保設計人員可對數據庫在設計方面所存在不足具有全面了解,通過更改設計方案、制定優化措施等方式,將由于設計失誤導致故障出現的概率降至最低。
待實體測試環節告一段落,技術人員便可著手對數據庫表是否具有一致性進行測試。 相關測試結果往往能夠反映數據庫結構性及完善程度,具體測試流程如下:第一步,由技術人員對測試對象所提出需求加以了解。 第二步,以相關需求為依據,對表主鍵進行測試,通過逐一測試各表存儲過程的方式,了解存儲過程與數據庫容量的關系。 第三步,根據測試結果,判斷數據庫是否具備良好的兼容性,為日后開發軟件系統的工作提供保證,使數據庫所開發系統在功能性、穩定性方面的表現達到預期。
對數據庫測試而言,測試各表對應主外鍵關系極為重要,測試內容通常涉及信息類型和字段長度等方面,旨在保證字段長度所具有合理性得到精確定位,使其最大限度滿足一致性要求[2]。 現階段,無論是設計軟件系統、還是開發軟件系統的工作,均存在未將主外鍵關系納入測試范圍的情況,少數技術人員沒有認識到該測試的重要性,對系統測試而言,缺少該測試所造成的問題主要是測試結果無法準確反映實際情況。 另外,在開展相關測試時,技術人員應密切關注標準字段所表現出的模糊性,這是因為字段模糊性與測試結果息息相關,極易致使測試結果出現不確定或是不準確的問題。 要想有效規避上述情況,關鍵是要以全面性和針對性為指導原則,將字段、信息長度和內在關聯作為切入點,通過全面覆蓋結合集中針對的方式,確保測試工作可得到有序開展,使測試結果得到鞏固。
對級聯表進行測試時,技術人員應確保各項數據信息在刪除操作方面具有良好的一致性,簡單來說,在用戶對主表所存儲數據信息進行刪除后,報表應自行刪除對應數據信息。 以成績管理系統為例,該系統往往包含兩個報表,分別是成績表和信息表,其中,作為信息表的分支,成績表對應級聯表,若管理人員對信息表某一欄信息進行了刪除,系統將自動刪除信息表相關信息。 正是由于數據庫對刪除一致性提出了嚴格要求,才確保數據處理效率得到了顯著提高。 對需要運行大量軟件應用的現代計算機而言,數據更新、變化及增刪的操作不可避免,基于一致性作用對數據進行刪除,其速度和準確度往往可變得更加理想。
作為實質測試階段,性能測試對數據庫具有極為重要的意義。 根據實踐所積累經驗可知,對數據庫進行測試的側重點應落在性能測試方面,為保證測試工作發揮出應有作用,技術人員應做到從軟件開發需求出發,在對測試方法加以明確的基礎上,結合現有工具制定切實可行的應用方案[3]。 另外,在實際工作中,以下內容同樣需要技術人員引起重視:一是確保所應用測試軟件科學且高效。 二是以信息技術為依托,同步開展云測試、在線測試工作,實時保存測試結果,將各項數據交由權威機構進行核實。 三是采取規范且標準的方式定位測試結果,在提高軟件開發質量的前提下,為其順利投入運行提供有力支持。 表1 為測試流程及具體內容。
表1 測試流程及具體內容
隨著技術的進步,由計算機軟件負責存儲并管理的數據量顯著增加,這也給數據庫容量提出了更為嚴格的要求,要想使數據庫容量達到用戶需求,當務之急便是以數據容量增長規律為依據,科學預估其增長情況,為日后維護、使用數據庫的操作提供便利。 對數據庫容量進行測試時,測試所記錄數據量通常是各字段對應字節數之和,而表的數據量為記錄數、記錄數據量的乘積。 在了解各表數據量之和后,技術人員便可根據計算結果對數據庫大小加以確定。 這里要明確一點,對軟件系統所搭載數據庫而言,其容量往往不受基本表影響,數據庫所存儲內容均需要占據一定容量,例如,存儲過程、系統表還有視圖,上述實體所占容量并不固定。 另外,數據庫所存儲日志容量,通常大于軟件系統所預留容量,二者的比值約為2 ∶1。
少數計算機在軟件運行期間,偶爾會出現系統崩潰的情況,導致故障發生的原因主要是數據庫性能無法達到使用要求,由此可見,在將軟件投入使用前,技術人員應對數據庫在不同工況下所表現出性能進行測試,保證數據庫能夠長期處于穩定運行狀態,使軟件在基礎性能方面所提出需求得到最大程度的滿足。 事實證明,基于傳統手工測試模式對數據庫性能進行測試,通常無法取得理想效果,為保證測試工作可發揮出應有作用,技術人員往往更傾向于借助專業軟件展開測試。 目前,多數技術人員均選擇利用DataFactory 輔助測試,該軟件在數據測試、數據生產方面的表現極為突出,可快速形成百萬行正確且有實際意義的測試數據,使測試工作具有堅實的數據基礎[4]。 另外,該軟件還可被用來對SQL 和DB2 等諸多數據庫進行測試,其應用范圍較其他軟件更為廣泛。 對該軟件加以應用,可最大程度還原長期運行工況下,數據庫所處狀態和內部情況,確保技術人員能夠對數據庫性能進行快速且全面的了解。
對于容量不同的數據庫而言,性能測試的目的主要體現在以下方面:首先是明確可使自身性能始終維持在最佳狀態的方法。 其次是以各容量區間對應基本性能為基礎,綜合考慮信息負載量、應用場景等因素,對其性能加以調整。 最后是確保技術人員可及時發現并優化數據庫在性能方面所存在的缺陷,以免在正式投入運行后出現不必要的問題。 與此同時還要明確一點,在測試數據庫性能時,技術人員應確保測試環境完全一致,而提出這一要求的原因,主要是只有在不改變環境條件的前提下進行測試,才能確保測試結果具有比較意義,使測試結果具有的科學性和說服力得到彰顯。
除此之外,壓力測試同樣需要引起重視。 從傳統意義來說,對軟件正確性進行測試的工作為功能性測試分支,只有軟件功能正確,才代表軟件質量合格,而面向數據庫所開展壓力測試,則屬于典型的非功能測試,其作用主要是評價軟件對指令進行響應的速度。對軟件開發工作而言,可給軟件響應速度產生影響的因素極多,既有眾所周知的用戶習慣和數據量,還有專業性較強的級聯方法以及系統算法,如果大量用戶選擇在相同時間對系統進行訪問,系統功能必然會被影響,針對數據庫進行壓力測試的重要性有目共睹。 無論是對淘寶等購物平臺進行壓力測試、還是對銀行系統進行測試,其根本目的都是確保在數據庫空間被大量數據占用的前提下,軟件系統仍然能夠正常運行。鑒于此,對軟件進行壓力測試就顯得很有必要,這樣做有助于用戶對軟件系統所能承受壓力具有更準確的了解,真正做到以系統情況為依據,對業務接口以及對應開放時間加以調整。 當然,壓力測試同樣需要應對專業測試工具加以應用,現階段,常見的測試方法包括數據庫測試、Web 測試,可被用來優化反應時間的工具,則需要根據項目類型加以確定,例如,Java 對應JMeter,為保證優化效果達到預期,有關人員應對軟件開發環境、核心系統有所了解,在此基礎上對現有優化工具加以應用,這點需要尤為注意。
4.1.1 處理接口數據
對負責傳輸數據的接口而言,其可靠性和準確性往往決定了系統功能的發揮效果,基于接口數據所開展測試處理工作,通常需要關注以下內容:首先是對系統接口數據進行提取,根據提取所得數據對臨時表格進行編制。 其次是提取和接口密切相關的數據,并對臨時表格進行編制。 最后是比對上述表格,確保數據信息具有高度一致性。 該技術的優點主要是能夠使接口數據得到直接呈現,為后續管控工作的開展提供便利。 在此期間有關人員可選擇對前臺系統接口所提供數據進行針對性檢查,明確數據所表現出一致性能否達到系統要求,從而確定切實可行的處理及優化方案。
4.1.2 查看日志
前臺操作期間,有關人員應按下新增按鈕,根據新增數據對數據庫日志所記錄內容加以了解,結合日志確定數據流向特征,通過系統分析的方式,為測試可靠性、準確性提供有力保證。 若要對該技術加以應用,有關人員既要對數據庫日志具有系統且準確的了解,還應具備豐富的經驗和突出的能力,確保數據表結構可得到科學處理,使該技術的價值得到最大程度實現。
4.2.1 測試邏輯構架
測試邏輯架構的關鍵是要保證測試方法合理且科學,只有這樣才能使測試效果得到顯著提高。 對相關測試工作進行開展的流程如下:先對數據庫字段名、列名報表和數據類型進行搜集,保證表名及表格直觀且清晰,再利用所搜集信息進行測試。 研究表明,數據庫主鍵值普遍具有位移的特征,而對邏輯架構進行測試的關鍵是對已發現漏洞進行系統分析,確定漏洞特點及成因,并提出相應的處理方案,真正做到利用科學措施對測試效果進行優化[5]。
4.2.2 數據認證
在數據庫測試期間對數據進行系統認證,其作用主要體現在3 個方面,一是可確保數據庫情況得到全面檢查,二是依托測試環境自動生成鏡像備份數據,并利用現有程序驗證方式完成驗證,三是通過提取數據庫所存儲鏡像數據并進行比對的方式,對數據一致性做出判斷。 另外,相關工作還需要對數據準確性加以了解,通過比對隨機調取數據和鏡像數據的方式,對數據準確性進行認證,充分利用合理且科學的方法完成測試處理工作,使數據庫性能達到相關要求。
4.2.3 測試集成度
對集成測試技術加以應用的關鍵是以正確觀念為導向,使測試任務得到高效完成。 該技術又被稱作聯合+組裝技術,強調以單元測試為基礎,根據設計標準對模塊系統進行創建,通過組裝的方式獲得優質子系統,其特點是組織體系科學,可為集成化測試提供支持,使測試效果得到顯著提升。
4.2.4 測試物理構架
集成測試的關鍵是以程序方式或其他現有工具方式為基礎,快速檢查數據庫的數據存儲情況,確保數據庫能夠做到先對數據來源加以了解,再對其進行存儲。對存儲工作而言,程序系統的作用主要是對字符長度、數據類型進行檢查,明確數據庫是否有漏洞或錯誤存在。 一般來說,錯誤數據均會被記錄在測試日志中。待測試工作告一段落,無論測試處理所取得效果是否符合預期,相關程序均會對測試日志進行自動生成,如果存在錯誤,有關人員只需分析日志內容,便可明確錯誤數據所處位置并加以處理,使工作效率得到顯著提高[6]。 由此可見,對數據庫進行測試時,有關人員應形成正確的觀念,明確測試物理構架的意義,充分利用現有技術開展測試工作,使測試效果達到預期。
綜上,在開發計算機軟件時,通常需要對數據庫進行多項測試,這是因為軟件能否發揮出應有功能,主要由數據庫運行狀況決定,只有通過系統測試的方式,確保數據庫無論處于何種工況均能為軟件提供穩定運行所需數據支持,才能使軟件開發整體水平及最終質量得到顯著提高。 而從用戶的角度來看,數據庫測試所具有作用主要是確保資源得到充分利用,使軟件系統所具有良好性能得到直觀且充分的展現。