現在的軟件應用程序,已經離不開數據庫的支持。無論是在Web應用、桌面應用、客戶端服務器、企業和個人業務,都需要自己的數據庫在後端操作。同樣的在金融、租賃、零售、郵寄、醫療各個領域中,數據庫也是不可缺少的。
随着現在應用的複雜程度增加,應用需要更強大和安全系數高的數據庫才可以滿足需求。為了滿足高頻率的應用程序事務(如銀行或财務應用),數據庫的安全性成為首要之重,今天我們就來介紹下數據庫測試。
一:了解數據庫
1、什麼是數據庫
數據庫是存放數據的倉庫。它的存儲空間一般很大,可以存放百萬條、千萬條、上億條數據。但是數據庫并不是随意地将數據進行存放,是要有一定的規則的,否則查詢的效率會很低。當今世界是一個充滿着大量數據的互聯網世界,充斥着大量的數據。即這個互聯網世界就是數據世界。數據的來源種類很多,比如出行記錄、消費記錄、浏覽的網頁、發送的消息等等。除了文本類型的數據,圖像、音樂、聲音都是數據。
數據庫是一個按數據結構來存儲和管理數據的計算機軟件系統。數據庫的概念包括兩層意思:
(1)數據庫是一個實體,它是能夠合理保管數據的倉庫,用戶在該倉庫中存放要管理的應用事務數據,“數據”和“庫”兩個概念結合成為數據庫。
(2)數據庫是數據管理的新方法和技術,它能更合理的組織數據、更方便的維護數據、更嚴密的控制數據和更有效的利用數據。
2、數據庫系統的組成:
1)硬件
數據庫系統的硬件包括計算機的主機、鍵盤、顯示器和外圍設備(例如打印機、光盤機、磁帶機等)。由于一般數據庫系統所存放和處理的數據量很大,加之DBMS豐富的功能軟件,使得自身所占用的存儲空間很大,因此整個數據庫系統對硬件資源提出了較高的要求
2)軟件
數據庫系統的軟件除了數據庫管理系統之外,還包括操作系統各種高級語言處理程序(編譯或解釋程序)、應用開發工具軟件和特定應用軟件等
3)數據
數據是數據庫的基本組成,是對客觀世界所存在事物的一種表征,也是數據庫用戶的操作對象。數據是數據庫系統,也是企業或組織的真正财富。數據應按照需求進行采集并有結構地存入數據庫。由于數據的類型多樣性,數據的采集方式和存儲方式也會不同. 數據作為一種資源是數據庫系統中最穩定的成分,即硬件可能更新,甚至軟件也可以更新,但隻要企業或組織的性質不改變,數據将是可以長期使用的财富
4)用戶
數據庫用戶是管理、開發、使用數據庫的主體。根據工作任務的差異,數據庫用戶通常可以分成終端用戶、應用程序員和數據庫管理員等3種不同類型
二、數據庫操作
下面為大家簡單的介紹數據庫中‘CRUD’所代表的操作。
C:創建——創建用戶。
R:檢索——執行檢索視圖操作。
U:更新——更新數據庫信息。
D:删除——執行删除數據庫操作。
普遍用戶在操作數據時,都會用到以上四種操作
1、數據庫事務
ACID屬性
ACID,指數據庫事務正确執行的四個基本要素的縮寫。包含:原子性(Atomicity)、一緻性(Consistency)、隔離性(Isolation)、持久性(Durability)。在數據庫測試期間必須測試這四個要素,确保正确。
數據完整性
考慮到不同模塊的應用程序以不同的方式使用相同的數據,并執行對數據所有的CRUD操作。确保數據庫中包含的數據盡可能地準确和一緻的數據性質,這就是數據完整性。
2、業務準确性
數據庫發展至今,已不再是單純的用來存儲記錄。事實上,數據庫系統已經發展成為強大的工具,為開發者們提供了足夠的擴展支持。數據庫系統比以前具有了更多的強大功能,例如參考完整性,關系約束,觸發器和存儲過程
三:數據庫測試
1、數據準備
為了測試測試數據庫正确和準确性。首先,測試人員要熟練掌握SQL和DML(數據庫語言)語句。其次,測試人員應該掌握數據庫的結構。如果滿足這兩個條件,即可放心測試,測試人員可以根據自己對數據庫的理解,以及本身應用提供的數據庫設計說明,還有相對于的業務說明,設計自己的測試用例及其測試的sql語句,然後進行對應的功能性的數據測試。
測試人員可以通過查看數據表來驗證應用程序GUI的操作結果。但是,這種方式對于擁有大量數據的數據庫,查詢是相當的乏味和繁瑣。驗證多個數據表也是相當困難。
2、系統測試
在系統測試階段,測試主要做的工作是對開發的數據庫設計部分進行評審來發現其設計錯誤或者缺陷
3、集成測試
集成測試主要是針對各種接口進行測試,對于數據庫來說,主要考慮的有以下一些:
數據項的修改操作;
數據項的增加操作;
數據項的删除操作;
數據表增加滿;
數據表删除空;
删除空表中的記錄;
數據表的并發操作;
針對存儲過程的接口測試;
結合業務邏輯做關聯表的接口測試;
同樣我們需要對這些接口考慮采用等價類、邊界值、錯誤猜測等方法進行測試。
四:測試内容
1、數據庫設計的測試
數據庫是應用的基礎,其性能直接影響應用軟件的性能。為了使數據庫具有較好的性能,需要對數據庫中的表進行規範化設計。規範化的範式可分為第一範式、第二範式、第三範式、BCNF 範式、第四範式和第五範式。一般來說,邏輯數據庫設計應滿足第三範式的要求,這是因為滿足第三範式的表結構容易維護,且基本滿足實際應用的要求。因此,實際應用中一般都按照第三範式的标準進行規範化
2、數據一緻性測試
在進行實體測試後,應進一步檢查下面的内容以保障數據的一緻性:
表的主鍵測試根據應用系統的實際需求,對每個表的主鍵進行測試,驗證是否存在記錄不唯一的情況,如果有,則要重新設置主鍵,使表中記錄唯一。
表之間主外鍵關系的測試數據庫中主外鍵字段在名稱,數據類型,字段長度上的一緻性測試。
級聯表,删除主表數據後,相應從報表數據應同時删除的問題例如學生表和學生成績表,學生數據已經删除,成績表中相應學生的成績記錄應同時删除。
3、數據庫的容量測試
随着數據庫系統的使用,數據量在飛速增長,如何在使用前對數據容量的增長情況進行初步估算,為最終用戶提供參考,這在數據庫使用和維護過程中,是非常重要的。可以通過對數據庫設計中基本表的數據大小,和每天數據表的數據産生量進行初步估算
4、數據庫的性能測試
應用軟件除了功能外,很重要的一部分就是軟件的性能,而對于數據庫系統,數據庫性能的好壞會直接影響應用軟件的性能,這部分的測試,一般手工測試就顯得無能為力了,這時就要借助自動化的測試軟件,例如:DataFactory,DataFactory 是一種強大的數據産生器,它允許開發人員和測試人員很容易産生百萬行有意義的正确的測試數據庫,該工具支持DB2、Oracle、Sybase、SQL Server 數據庫。這樣,就可以模拟出應用軟件長期使用後,海量數據存儲的數據庫的性能狀況。從而盡早發現問題,進行數據庫性能的優化
5、數據庫的壓力測試
數據庫在大多數軟件項目中是不可缺少的,對于它進行壓力測試是為了找出數據庫對象是否可以有效地承受來自多個用戶的并發訪問。這些對象主要是:索引、觸發器、存儲過程和鎖。通過對SQL語句和存儲過程的測試,自動化的壓力測試工具可以間接的反應數據庫對象是否需要優化。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!