999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

計算機軟件開發中的數據庫測試技術研究

2022-04-11 22:23:00胡航語
中國新通信 2022年3期
關鍵詞:計算機

【摘要】? ? 數據庫是指在按照一定的規則與數據結構,來組織、儲存、管理數據的倉庫,如今市面上常見的任何一款軟件應用程序都離不開數據庫的使用,而每一款軟件都必須要經過數據庫測試通過后,才能正式投入使用。基于此,本文主要是對計算機軟件開發中,數據庫測試的內容與測試方法進行簡要探究。希望此文能夠在開發測試上,帶給軟件工作者一點理論幫助。

【關鍵詞】? ? 計算機? ? 數據庫測試? ? 軟件開發

引言:

隨著人們在多種生活情景中對應用軟件的功能性需求越來越高,催生設計出了越來越多樣化的軟件應用程序。軟件程序的復雜程度增加之后,就需要功能更加穩定、處理更加高效、安全系數更高的數據庫來支持。像是數據處理、信息配置、圖像管理這些功能若是完全放到程序中讓程序自行管理,那么將會是一個非常巨大的計算量,那軟件程序就不存在快速響應的優勢了。而軟件開發中,數據庫測試正是其中一步關鍵的測試環節。

一、數據庫的基礎操作

如今市面上的數據庫工具多種多樣,舉幾個比較常見的例子,如MS SQL Server2008 r2、Oracle Financial、DB2、PostgreSQL等,在成本、功能性、安全性、穩定性上表現各有千秋。但不論是哪種數據庫工具,普通用戶在使用軟件對應的數據庫時都只有四種操作:

Creat-創建用戶,建立一種與數據庫的映射關系,取得相應的數據庫管理權限、數據庫用戶也就是數據庫的使用者,擁有在當前數據庫中創建對象、調取數據、備份數據以及處理數據的權限。

Retrieve-檢索,為數據調用設置一條邏輯規則,以特定的信息需求為目的,在信息庫集合內所有的信息元素中,找出對應的內容并調用,通常情況下為視圖檢索。

Update-更新,數據表是數據庫中最基本的數據存儲單元,在舊的數據表結構搭建完成后,根據某種特殊功能用途,將新的數據表以插入的形式來“頂替”舊的信息表,實現對已有數據的修改。

Delete-刪除,將已經不需要的數據從數據庫的列表中清除,并且在原有的儲存位置允許其他新數據進行覆寫,此后在數據庫內將不會再檢索到此信息。

二、數據庫測試的內容

Atocity-原子性,它是數據庫能夠正常運行的基礎判定標準。在數據庫執行某一事務時,它包含的所有數據操作,只有全部完成與全部未完成兩個動作,在數據處理的中間環節將不會突然意外終止,即使事務意外報錯未能完成,也會被自動恢復到事務未被執行的狀態。數據庫中,事務必須是進程的最小量級單位,而軟件事務則是指由數據庫的操作所成立的一個完整邏輯事件。以銀行扣款為例,扣除款項后,還必須要有打款賬戶,而一扣一進完成兩個數據庫的對接,才能算作一個完整的邏輯事件,而這種邏輯事件就是軟件數據庫的事務[1]。

Consistency-一致性,當數據庫需要執行某一事務時,期間與事務相關的數據完整性不能遭到破壞,在數據庫中后寫入的數據,必須在預設規則上與此前保持一致。這樣才能確保數據庫檢索的數據是相對準確的,且由于數據執行同一種預設規則,所以數據庫中具有相同特征的數據才會具有一定關聯性關系。

Isolation-獨立性,數據庫在執行多種不同事務時,會同時對各自對應的數據進行調用與修改。而若是不能將它們完全獨立開來,就會因為事務交叉執行導致同一組數據因前后不一出現邏輯錯誤。因此在數據庫中需要將多種并行事務以四個不同的管理級別進行隔離:讀未提交、讀提交、串行化和復讀。

Durability-永續性,軟件庫在執行事務時,數據處理必須是永久性質的改動。即使是數據刪除,也應當是將信息調出后再進行清除的過程,而不是數據丟失。哪怕是系統出現了故障,改動后的數據也應當是被存儲在數據庫中的。數據庫的穩定性問題,正是來源數據修改儲存的永續性特點[2]。

三、數據庫測試的基本流程

(一)創建查詢

以SQL數據庫工具為例,創建查詢首先需要使用Transact-SQL語句創建信息庫的標識,而后將Transact-SQL語句描述的數據庫名稱與標識設置為第一key值,再保存該數據庫的信息作為第一value值,得到第一組KV數據記錄。然后在該數據庫中建立一個數據表,將數據表的名稱與數據庫的名稱設置為第二key值,再保存建立的數據表名稱作為第二value值,得到第二組KV數據記錄。最后再在上一步建立的數據表中寫入新的數據,將數據表與數據的名稱設置為第三key值,保存這組寫入數據的信息作為第三value值,得到第三組KV數據記錄。可供SQL數據庫工具使用的查詢語句只有“Select”,在利用KV數據庫創建查詢時,還需要開發人員結合其他語句一同組成不同的查詢功能指令[3]。

(二)數據表查詢

查詢數據表是數據庫測試中最容易簡單理解的過程,它是通過對SQL數據庫的數據表形成來驗證應用程序GUI操作的結果是否合理,其主要操作分為單表查詢與多表查詢兩種:

單表查詢的工作相對于多表查詢來說工作量要少,但它需要開發人員足夠的細致耐心。首先要對數據表的所有字段的所以方式進行查詢,制定一個特定的字段條件后,查詢被制定的記錄。而后需要對帶有“in”與“like”字符的所有關鍵字符的匹配關系,進行查詢比對。接著需要查詢數據表的條件描述,查看“and”與“or”的邏輯關系是否嚴密,除此之外還要對數據庫的COUNT、SUM、MAX、MIN、AVG五類集合函數進行查詢[4]。最后是對數據表中的空值進行查詢,空值Null是一個不可用的,沒有被分配且無法得到的值,它與0和空格有著本質上的區別,在數據表中空值可能會引起一些算法結構發生改變,會使這組算法的快速訪問與索引功能失效。在完成單表的所有查詢工作后,需要將查詢結果全部分類排序后,使用LIMIT工具對查詢結果的數量進行修改與限制。

而多表查詢,則是在單表查詢的基礎上,展開對含有any、some、all、exists、in等關鍵字以及運算符的子查詢。除此之外還要對多表連接的形式進行查詢,以雙表連接為例,一共分為:內連接查詢、外連接查詢與復合條件查詢三種形式。但該過程需要軟件開發人員投入大量的時間精力,對于數據容量龐大的數據庫,想要完成所有數據表的查詢工作也是非常困難的。

(三)開發人員查詢

開發人員查詢是測試數據庫最容易操作的方法,利用GUI工具在數據庫上運行任意CRUD操作與SQL查詢后,在開發人員中獲得它的驗證結果。若是在開發人員中找到了語句描述錯誤,或是與用戶需求不符的語句描述,就可以直接對不合適的語句進行修改了。

四、數據庫測試的內容

(一)設計測試

為了使數據庫能夠更好地滿足于應用程序的CRUD操作,對數據庫中的數據表都是采用規范化設計的,常見的規范化范式有很多種,如第一范式到第五范式,和BCNF范式等。而常見類型的應用程序數據庫的邏輯設計,都以第三范式的要求規范為參考,這是一種將單個的數據表拆分為多表連接結構的查詢管理規則,盡管犧牲了一定程度的查詢速度,但換來的卻是容易維護的表結構。我們暫時將數據庫理解為一個有形實體,它的內部主要是由表、視圖與儲存規則組成的,那么設計測試就是以數據庫的表、視圖、儲存規則三個實體結構為對象,展開的測試,通過設計測試可以檢驗數據庫的三個組成元件是否在設計上合理、充分,是否存在邏輯紕漏,以及每個元件是否具備極佳的拓展性。設計測試主要是為了檢驗應用軟件在功能上存在的不足,以及刪去影響軟件響應效率的冗余數據,而設計測試的過程并不是測試技術人員獨立完成的,一些存在著爭議的問題,還需要通過與軟件的設計人員的溝通了解來解決。

設計方面的測試通常情況下若無特殊需求,可以僅僅對數據一致性進行測試,其中主要包括了表主鍵測試、表與表主外鍵關系測試、刪除一致性測試三種:

1.表主鍵測試。表主鍵的測試應當遵循下列原則:一是測試人員必須要能夠對數據庫的表結構擁有一定了解認識,并基于表結構的特性展開相應的測試,如過程性表結構與非過程性表結構的測試邏輯方法和語句描述均有不同;二是在對數據庫內部表主鍵進行測試時,必須是基于數據庫的實際運行基礎上的,以滿足測試結構的精準性要求;三是按照各個不同的表信息規定,對測試結果對應的顯示記錄進行同步記錄,如果出現測試結果對應多種不同記錄的情況,應當重新對表主鍵進行測試,而如果顯示記錄未出現,則說明在測試過程中,表主鍵始終保持一致性,無需進行下步優化。在實際測試時,為了減少測試工作量,可以考慮找出一個SQL腳本,如SELECT * FROM information_schema.tables`類型的循環代碼,用于測試表內主鍵的存在。

2.表與表外主鍵之間的關系測試。測試表主外鍵的要點在于建立搜索語句的邏輯,表主外鍵同樣是一種主鍵,應當以表主外鍵的語句字段長度與語句類別為突破口。這種通過檢查表與表主外鍵關系,來確認數據庫檢索邏輯一致性的方法被稱為Dbcc,它是通過兩個方面來實現的:一是利用checkstorage、checktable或checkdb工具,以頁級或行級為單位檢查頁鏈、行鏈以及指針的準確性,其中可供優化的部分是指針的空間占用問題;二是利用checkstorage工具來檢查行或頁的分配關系。關于表與表外主鍵關系的一致性測試,通常在下列情況必須要進行:一是備份數據庫操作時,為了備份數據庫的完整性,必須進行Dbcc測試;二是當軟件系統出現報錯信息時,必須要檢查數據庫是否受到損壞;三是對數據庫運行有日常維護檢查需求的軟件,這種軟件的數據庫完整性完全取決于sa或dbo,需要定期運行Dbcc來進行測試;四是當出現單一某個表損壞時,提取該表的損壞信息,檢查同主鍵關系性質的其他數據表是否同樣存在損壞。

3.刪除一致性測試。基于上文中的CRUD操作理論,出于保護隱私或者其它功能目的,數據刪除本身就是用戶經常使用的一個訪問數據庫功能。因此在對存在級聯性質數據表的數據庫進行測試時,必須要保證數據庫數據刪除的一致性。級聯關系的數據表我們可以簡單地理解為一種插入臨時表的性質,如數據表1是對包括數據表2在內多種數據集合的描述,如果我們將數據表2全部刪除,那么數據表1中與之相關的所有數據描述都理應被一同刪除。但這種級聯關系的數據表經常會使用的一種存在關系是依靠主鍵ID來記錄的,當將下一級表信息刪除后,因為數據庫本身在一致性上的邏輯設計上存在不足,而留下被刪除信息的主鍵ID。因此確保數據庫刪除的一致性,能夠為軟件用戶在處理海量無用數據時,帶來極大的便利。

(二)容量測試

鑒于數據庫容量對于數據庫功能實現的重要性,它的測試優先級甚至還要高于性能測試。我們都知道數據庫所能存儲的數據量并不是無限大的,為了使數據庫能夠適應不斷激增的數據處理量,除了數據庫本身邏輯合理之外,還要對數據庫容量進行初步估算,為軟件程序的用戶提供可靠的參考。那么數據庫的容量測試,可以利用以下公式來進行簡單估算:數據庫容量=Sum所有表數據量;表數據量=每條記錄的單個數據量*總記錄目數;記錄數據量=Sum單個記錄包含所有字段的占字節。其中需要注意的是,容量測試時需要分析單表單行的各種數據類型占字節情況,如char類型的字節是固定的;number類型字節可變長,但最多也只能占用22字節;而varchar類型的是按照2/3總長度進行折算的。熟悉各個類型數據的占字規律后,利用數據字典指令來查詢每張表的占用空間似乎是一個不錯的選擇,具體代碼為:SELECT*FROM USER_TAB_COLUMNS WHERE TABLE_NAME=”。查詢數據字典的顯示結果中,在DATA_LENGTH一項中,就記錄了該數據表的最大占用字節。但數據表并不是數據庫容量的全部,還要考慮系統表、視圖表以及實體的存儲過程中所占用的實際容量。如何界定一個數據庫的容量是否合格,就是看它的容量是否擁有兩倍數據庫文件量的預留空間,來存放數據庫日志文件。

(三)性能測試

確認過數據庫的邏輯設計以及容量都能符合用戶需求實際后,還需要對數據庫的性能進行測試分析,軟件程序的性能,很大程度是由數據庫的性能來決定的。而應用軟件的性能問題,就是用戶最關注且最能直接反映程序應用體驗的參數。數據庫的性能測試由于計算量與操作量極大,無法完全由軟件開發測試人員以人工的方式來完成,需要應用一種DATA Factory數據產生器來自動對數據庫進行測試。在這個數據產生器中,可以以每秒上百萬行的數據生成量,來實際模擬數據庫投入使用后在長期運行的條件下對海量數據的存儲處理情況。這樣測試人員就能夠在性能測試過程中,及時發現數據庫的潛在問題,對數據庫進行性能優化了。當然在性能測試中,需要開發人員注意使用數據產生器時,要注意環境變量條件始終與用戶端保持一致,如操作系統、軟件版本、硬件配置等。若從軟件的長期運行視角來看,在進行性能測試時,必須要能夠對實際使用狀況進行有效模擬,用專業的測試技術與測試軟件來進行性能測試。軟件性能測試通常情況下,就是通過數據發生器,在正常的使用環境與系統條件下,通過重復性地物理驗證操作,來驗證軟件是否滿足了某些性能指標。

(四)壓力測試

數據庫的壓力測試就是一種對數據庫的訪問上限、并行事務上限以及響應速度展開的一種物理測試。假如某一軟件后臺同時登錄訪問數據庫的用戶過多,那么數據庫同一時間內單次訪問操作的響應速率一定會慢于正常情況,一旦超過了軟件數據庫的壓力閾值,甚至會使軟件在訪問數據庫時出現卡頓甚至崩潰,而這是軟件開發的客戶所不愿意看到的。我們對軟件進行壓力測試的目的,就是假想一種理論上的該軟件最大用戶承載的情況,查看數據庫的壓力閾值是否能夠滿足一定比例的軟件用戶同時訪問數據庫操作的需求。該階段與性能測試一樣都無法由人工獨立操作完成,需要借助自動化測試軟件來對數據庫的索引、觸發器、實體存儲過程以及數據鎖進行承載性驗證。通過自動化測試軟件描述的測試結果,我們就可以間接地獲知SQL語句與數據存儲過程是否還存在繼續優化的空間與必要了。進行壓力測試的自動化測試軟件的類型有很多,例如Jmeter適用于所有的JAVA基礎的軟件項目,而Net項目則在本身自有的開發環境中含有用于壓力測試的工具與方案。

五、結束語

綜上所述,數據庫測試是軟件開發中必不可少的重要環節,它是指對軟件的數據庫結構、與調用數據的方式和邏輯關系進行驗證、分析的過程。只有完成數據庫測試,找出邏輯設計與功能性上的缺陷并對其進行修改優化,才能使軟件程序各項功能的正常使用,與程序本身的運行穩定性得到保障。

參? 考? 文? 獻

[1]王天云.軟件開發中的數據庫測試技術研究[J].無線互聯科技,2013(2):69-69.

[2]周國裕.淺談計算機軟件開發的數據庫測試技術[J].網絡安全技術與應用,2021(05):62-63.

[3]郭俊杰.數據庫測試技術在計算機軟件開發中的應用[J].信息與電腦(理論版),2021,33(07):113-115.

[4]張赟.計算機軟件開發的數據庫測試技術[J].電子技術與軟件工程,2020(17):150-151.

作者單位:胡航語? ? 西北工業大學計算機學院

胡航語(2001.05-),男,漢族,陜西西安,本科,研究方向:數據庫、軟件。

猜你喜歡
計算機
計算機操作系統
穿裙子的“計算機”
趣味(數學)(2020年9期)2020-06-09 05:35:08
基于LabVIEW的計算機聯鎖仿真系統
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
計算機多媒體技術應用初探
科技傳播(2019年22期)2020-01-14 03:06:30
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
計算機應用軟件開發技術的幾點探討
電子制作(2017年14期)2017-12-18 07:08:10
計算機網絡安全
iLOCK型計算機聯鎖開發中的需求開發管理
計算機聯鎖系統配置軟件設計與實現
主站蜘蛛池模板: 欧美国产日韩在线| 亚洲永久免费网站| 网友自拍视频精品区| 国模视频一区二区| 爱做久久久久久| 亚洲国产清纯| AV天堂资源福利在线观看| 亚洲国产天堂久久综合| 亚洲91精品视频| 国产男女XX00免费观看| 免费看黄片一区二区三区| 国产资源免费观看| AV在线天堂进入| 视频一区亚洲| 免费看美女毛片| av性天堂网| 亚洲视频免| 亚洲日本韩在线观看| 中国国语毛片免费观看视频| 日韩成人午夜| 国产jizzjizz视频| 在线观看欧美精品二区| 午夜一级做a爰片久久毛片| 亚洲国产精品不卡在线| 国产精品久久国产精麻豆99网站| 亚洲一级毛片在线观| 精品一区二区三区视频免费观看| 成人av专区精品无码国产| 国产美女精品一区二区| 粉嫩国产白浆在线观看| 成人综合久久综合| 九九线精品视频在线观看| 99热这里只有精品免费| 亚洲欧美精品在线| 国产香蕉97碰碰视频VA碰碰看| 精品91自产拍在线| 亚国产欧美在线人成| 国产精品无码影视久久久久久久| 素人激情视频福利| 美女视频黄又黄又免费高清| 国模私拍一区二区| 免费无码AV片在线观看国产| 黑色丝袜高跟国产在线91| 欧美色伊人| 亚洲综合在线网| 天天躁夜夜躁狠狠躁躁88| 精品久久香蕉国产线看观看gif| 一级香蕉人体视频| 日本亚洲国产一区二区三区| 多人乱p欧美在线观看| 激情無極限的亚洲一区免费| 精品三级网站| 夜夜操国产| 色综合网址| 国产黄色片在线看| 婷婷色一区二区三区| 成人伊人色一区二区三区| 好紧好深好大乳无码中文字幕| 无码网站免费观看| 日本在线亚洲| 免费无码网站| 国产精品免费福利久久播放 | 小说区 亚洲 自拍 另类| 亚欧美国产综合| 97se亚洲综合在线天天| 色婷婷综合激情视频免费看| 欧美激情伊人| 国产91蝌蚪窝| 国产一级小视频| 亚洲日产2021三区在线| 亚洲三级成人| 91福利在线观看视频| 免费看美女自慰的网站| 国产免费网址| 亚洲综合极品香蕉久久网| 久久青草精品一区二区三区| 国产日韩久久久久无码精品| 日韩欧美国产另类| 久久久久无码精品| 国产精品不卡永久免费| 免费无码又爽又刺激高| 毛片免费试看|