資料庫測試 – 面試問題



資料庫測試包括執行資料有效性、資料完整性測試、與資料庫相關的效能檢查以及資料庫中過程、觸發器和函式的測試。

執行資料庫測試有多個原因。由於後端系統負責儲存資料並被用於多種目的,因此需要對資料庫進行資料完整性、驗證和資料一致性檢查。

需要執行資料庫測試的一些常見原因如下:

  • 為了簡化對資料庫後端的呼叫複雜性,開發人員增加了檢視儲存過程的使用。

  • 這些儲存過程和檢視包含關鍵任務,例如插入客戶詳細資訊(姓名、聯絡資訊等)和銷售資料。這些任務需要在多個級別進行測試。

  • 對前端執行的黑盒測試很重要,但難以隔離問題。對後端系統的測試提高了資料的穩健性。這就是為什麼對後端系統進行資料庫測試的原因。

  • 在資料庫中,資料來自多個應用程式,並且有可能將有害或不正確的資料儲存在資料庫中。因此,需要定期檢查資料庫元件。此外,應定期檢查資料完整性和一致性。

執行資料庫測試時,您需要遵循以下步驟:

  • 必須驗證資料庫中的資料。
  • 驗證是否維護了約束條件。
  • 必須檢查過程的效能和觸發器的執行。
  • 必須檢查事務的回滾和提交。

根據資料庫的功能和結構,資料庫測試可以分為以下幾類:

  • 結構化資料庫測試 - 它處理表和列測試、模式測試、儲存過程和檢視測試、觸發器檢查等。

  • 功能測試 - 它涉及從使用者角度檢查資料庫的功能。最常見的函式測試型別是白盒測試和黑盒測試。

  • 非功能測試 - 它涉及資料庫中的負載測試、風險測試、壓力測試、最低系統要求,並處理資料庫的效能。

用於執行儲存過程測試的最常用工具是 LINQ、SP Test 工具等。

連線用於以某種邏輯方式連線兩個或多個表。常見的連線型別包括:內部連線、非等值連線、外部連線、自連線和交叉連線。

您可以將單個表連線到自身。在這種情況下,您將使用同一個表兩次。

步驟 1 - 連線到資料庫

db_connect(query1 DRIVER {drivername};SERVER server_name;UID uidname;
   PWD password;DBQ database_name );

步驟 2 - 執行資料庫查詢 -

db_excecute_query (write the required query that is to execute); Specify the appropriate condition

步驟 3 - 使用以下方法斷開資料庫連線

db_disconnect(query);

使用輸出資料庫檢查點,必須選擇 SQL 手動查詢選項。在這裡,可以選擇編寫查詢。

首先,檢查儲存過程的要求。下一步是檢查索引、連線、刪除、更新是否與儲存過程中提到的表一致。

接下來,執行以下任務:

  • 驗證呼叫過程名稱、呼叫引數和不同輸入引數集的預期響應。

  • 使用 TOAD 或 MySQL 或 Query Analyzer 執行過程。

  • 透過傳送不同的引數重新執行可用的過程,並根據預期值檢查結果。

  • 最後,使用 WinRunner 自動化測試。

測試人員應使用 EXEC 命令在資料庫中呼叫儲存過程。如果需要任何引數,則必須傳遞它們。必須傳遞不同的引數值以確認儲存過程是否執行。呼叫此命令時,它必須檢查和驗證資料庫的性質和行為。

示例 - 如果編寫儲存過程是為了填充某些表,則必須檢查表值。

SQL 語句有三種類型:

  • 資料操縱語言 (DML)
  • 資料定義語言 (DDL)
  • 資料控制語言 (DCL)

DDL 語句用於定義資料庫結構或模式。一些例子:

  • CREATE - 在資料庫中建立物件

  • ALTER - 更改資料庫的結構

  • DROP - 從資料庫中刪除物件

運算子用於在 SQL 語句中指定條件,並作為語句中多個條件的連線詞。

  • 算術運算子
  • 比較/關係運算符
  • 邏輯運算子
  • 集合運算子
  • 用於否定條件的運算子

Union 用於組合兩個或多個 Select 語句的結果。但是,它將消除重複的行。Union 是一個集合運算子。

Union 用於組合兩個或多個 Select 語句的結果。但是,它將消除重複的行

Union All 操作類似於 Union,但它也顯示重複的行。

觸發器用於維護資料庫的完整性。要檢查觸發器是否被觸發,您可以檢查審計日誌。

觸發器不能按需呼叫。當在其定義的表上發生關聯操作(插入、刪除和更新)時,它們就會被呼叫。觸發器用於應用業務規則、稽核以及引用完整性檢查。

首先,獲取功能需求。然後,瞭解使用的表結構、連線、遊標和觸發器、儲存過程以及其他引數。接下來,您可以使用不同的值作為這些物件的輸入來編寫測試用例。

資料庫測試涉及測試對使用者不可見的後端元件。它包括資料庫元件和資料庫管理系統,例如 MySQL 和 Oracle。

前端測試涉及檢查應用程式及其元件(如表單、圖形、選單、報表等)的功能。這些元件是使用前端開發工具(如 VB.net、C#、Delphi 等)建立的。

執行資料庫測試的過程類似於測試其他應用程式。資料庫測試可以用以下關鍵過程來描述:

  • 設定環境
  • 執行測試
  • 檢查測試結果
  • 根據預期結果進行驗證
  • 向相關利益者報告結果

各種 SQL 語句用於開發測試用例。用於執行資料庫測試的最常見的 SQL 語句是 select 語句。除此之外,還可以使用各種 DDL、DML、DCL 語句。

示例 - Create、Insert、Select、Update 等。

檢視是一個本身並不真正存在,而是從一個或多個基本表派生的表。換句話說,沒有直接表示檢視的儲存檔案,而是在資料字典中儲存檢視的定義。

基本表的增長和重組不會反映在檢視中。因此,檢視可以隔離使用者與資料庫中的更改。因此,它解釋了邏輯資料獨立性。

它指定使用者檢視及其到概念模式的對映。

它是一個將表分解成多個表而不丟失任何資訊的過程。規範化的目的是為了實現以下目標:

  • 最小化冗餘。
  • 最小化插入、刪除和更新異常。

索引是一種確定可以多快找到特定資料的技術。它用於查詢效能最佳化。索引可以是以下型別:

  • 二分查詢式索引
  • B 樹索引
  • 倒排列表索引
  • 記憶體駐留表
  • 表索引

SQL 是一種結構化查詢語言,專門設計用於對規範化的關係資料庫結構執行資料訪問操作。

SQL 與其他傳統程式語言的主要區別在於,SQL 語句指定應執行哪些資料操作,而不是如何執行它們。

儲存過程用於執行使用者定義的操作。儲存過程可以有一組複合 SQL 語句。儲存過程執行 SQL 命令並將結果返回給客戶端。

PL/SQL 對所有資料庫資訊訪問語句使用遊標。該語言支援使用兩種型別的遊標:隱式遊標和顯式遊標。

冷備份 - 冷備份是指在例項關閉時備份資料庫檔案、重做日誌和控制檔案。這是一個檔案複製,通常直接從磁碟複製到磁帶。您必須關閉例項才能保證一致的副本。

如果執行冷備份,則在資料檔案丟失的情況下,唯一可用的選項是從最新備份還原所有檔案。上次備份後執行的所有更改都將丟失。

熱備份 - 一些資料庫在製作檔案的備份副本時無法關閉,因此冷備份不可用。對於這些型別的資料庫,我們使用熱備份。

SQL 子查詢是一種同時查詢兩個或多個表的方法。子查詢本身是一個 SQL SELECT 語句,包含在另一個 SQL SELECT 語句的 WHERE 子句中,並用括號括起來。一些子查詢具有等效的 SQL 連線結構,但相關子查詢不能被連線複製。

在這種情況下,您需要測試以下方面:

  • 多值依賴
  • 函式依賴
  • 候選鍵
  • 主鍵
  • 外部索引鍵

您可以訪問資料庫並執行相關的 SQL 查詢。在 WinRunner 中,您可以使用資料庫檢查點功能。如果應用程式提供檢視功能,則可以從前端驗證。

資料驅動測試定義為一種自動化測試過程,其中應用程式將使用多個測試資料進行測試。它比重新測試簡單易行,在重新測試中,測試人員只需坐在系統前,手動從前端介面輸入不同的新輸入值。

執行測試用例並找到已檢測到和修復的缺陷後。使用不同的輸入值重新執行相同的測試以確認原始缺陷已成功刪除的過程稱為重新測試。

重新測試也稱為資料驅動測試,但略有不同:

  • 重新測試 - 這是一種手動測試過程,其中使用全新的資料集進行應用程式測試。

  • 資料驅動測試 - 這是一種自動化測試過程,其中應用程式將使用多個測試資料進行測試。它比重新測試簡單易行,在重新測試中,測試人員只需坐在系統前,手動從前端介面輸入不同的新輸入值。

資料驅動測試有四種類型:

  • 透過鍵盤動態提交測試資料
  • 透過 .txt、.doc 平檔案進行資料驅動測試
  • 透過前端物件進行資料驅動測試
  • 透過 Excel 表格進行資料驅動測試

效能測試是一種軟體測試技術,用於確定系統在繁重工作負載下的速度、靈敏度和穩定性。

執行資料庫恢復測試時,應考慮以下關鍵點:

  • 資料庫系統發生更改或修改的時間跨度。

  • 您希望執行恢復計劃的期限。

  • 資料庫系統中資料的敏感性。資料越關鍵,您就越需要定期測試軟體。

以下工具用於生成測試資料:

  • Data Factory
  • DTM 資料生成器
  • Turbo Data

可以使用兩種型別的備份:

  • 物理備份 - 物理備份包括使用第三方備份工具(如 Veritas NetBackup、IBM Tivoli Storage Manager)或使用作業系統實用程式進行使用者管理備份。

  • 邏輯備份 - 資料庫的邏輯備份包括備份邏輯物件,如表、索引、過程等。

一個常用的資料備份工具是 Oracle Recovery Manager (RMAN),它是一個用於進行資料庫備份的 Oracle 實用程式。

資料庫恢復測試中執行以下操作:

  • 資料庫系統的測試
  • SQL 檔案的測試
  • 部分檔案的測試
  • 資料備份的測試
  • 備份工具的測試
  • 日誌備份的測試

執行資料庫安全測試是為了查詢安全機制中的漏洞,以及查詢資料庫系統的漏洞或弱點。

執行資料庫安全測試是為了檢查以下方面:

  • 身份驗證
  • 授權
  • 機密性
  • 可用性
  • 完整性
  • 彈性

SQL 注入威脅是資料庫系統中最常見的攻擊型別,其中惡意 SQL 語句被插入到資料庫系統中並執行,以獲取資料庫系統的關鍵資訊。此攻擊利用使用者應用程式實現中的漏洞。為防止這種情況,應仔細處理使用者輸入欄位。

以下工具可用於執行資料庫安全測試:Zed Attack Proxy、Paros、Social Engineer Toolkit、Skipfish、Vega、Wapiti 和 Web Scarab。

在執行資料庫測試時,人們面臨的常見挑戰如下:

  • 測試範圍過大
  • 縮小的測試資料庫
  • 資料庫結構的更改
  • 複雜的測試計劃
  • 良好的 SQL 理解
廣告
© . All rights reserved.