了解數(shù)據(jù)庫測(cè)試的主要類型
數(shù)據(jù)庫可靠性測(cè)試并不只有大多數(shù)軟件專業(yè)人員所知道的ACID測(cè)試,數(shù)據(jù)庫測(cè)試分為功能測(cè)試、ACID驗(yàn)證和性能測(cè)試。
功能測(cè)試和關(guān)系映射將數(shù)據(jù)庫與信息的前端信息源和該信息的后端使用相關(guān)聯(lián),以確保格式和編輯方面的一致性。然后是原子性、一致性、孤立性、持久性(ACID)驗(yàn)證。最后,還有數(shù)據(jù)庫性能測(cè)試,包括負(fù)載測(cè)試。有些企業(yè)將數(shù)據(jù)庫安全性和合規(guī)性測(cè)試放在最后一類中,或者創(chuàng)建第四類數(shù)據(jù)庫測(cè)試類型。
下面讓我們看看數(shù)據(jù)庫測(cè)試類型和流行的數(shù)據(jù)庫測(cè)試工具。
為什么數(shù)據(jù)庫測(cè)試很重要?
如果沒有數(shù)據(jù)庫,幾乎沒有業(yè)務(wù)應(yīng)用程序可以運(yùn)行。
數(shù)據(jù)庫和應(yīng)用程序測(cè)試相關(guān)聯(lián),有些企業(yè)和項(xiàng)目團(tuán)隊(duì)會(huì)同時(shí)執(zhí)行這兩個(gè)測(cè)試。但是,應(yīng)用程序組件間日益增長(zhǎng)的相互依賴性意味著支持它們的數(shù)據(jù)庫間的日益獨(dú)立性。數(shù)據(jù)庫元素通常是應(yīng)用程序的獨(dú)立組件,而不是與應(yīng)用程序代碼一起開發(fā)。考慮到這些原因,軟件團(tuán)隊(duì)?wèi)?yīng)測(cè)試數(shù)據(jù)庫,并在設(shè)計(jì)測(cè)試方法時(shí)考慮其獨(dú)特的屬性和要求。
對(duì)于數(shù)據(jù)庫測(cè)試,主要爭(zhēng)論是應(yīng)該在供應(yīng)商級(jí)別還是在產(chǎn)品級(jí)別進(jìn)行測(cè)試,以及是否通過查詢功能(SQL)或更直接地通過API測(cè)試數(shù)據(jù)庫。如果企業(yè)在IT領(lǐng)域僅使用一家供應(yīng)商的數(shù)據(jù)庫,則第一個(gè)問題沒有意義。當(dāng)混合使用不同供應(yīng)商的數(shù)據(jù)庫時(shí),請(qǐng)考慮使用不同的工具測(cè)試每種產(chǎn)品,這通常會(huì)比在所有情況下使用一種工具產(chǎn)生更好的評(píng)估結(jié)果。對(duì)于第二個(gè)問題,與其他方法相比,基于SQL的測(cè)試通常對(duì)數(shù)據(jù)庫管理員來說更容易,并且更容易與實(shí)際應(yīng)用程序相關(guān)聯(lián)。
最好在安裝級(jí)別(或至少在開發(fā)團(tuán)隊(duì)級(jí)別),而不是在單個(gè)產(chǎn)品級(jí)別進(jìn)行數(shù)據(jù)庫測(cè)試。應(yīng)用程序和企業(yè)之間越來越多地共享數(shù)據(jù)庫;對(duì)特定任務(wù)進(jìn)行測(cè)試會(huì)導(dǎo)致測(cè)試不完整或多余。這意味著開發(fā)人員和測(cè)試人員應(yīng)廣泛收集數(shù)據(jù)庫測(cè)試要求,并通過常見工具和做法來滿足這些要求。
功能測(cè)試
功能測(cè)試驗(yàn)證的是,用戶和應(yīng)用程序可以訪問和更新數(shù)據(jù)庫中的數(shù)據(jù)。有些測(cè)試人員更喜歡通過測(cè)試依靠數(shù)據(jù)庫的應(yīng)用程序來驗(yàn)證數(shù)據(jù)庫功能。當(dāng)應(yīng)用程序測(cè)試無法使用數(shù)據(jù)庫中的所有字段和條件時(shí),這種方法會(huì)帶來風(fēng)險(xiǎn)。
為確保測(cè)試完全探究數(shù)據(jù)庫中的每個(gè)字段,請(qǐng)使用測(cè)試生成器并直接驅(qū)動(dòng)數(shù)據(jù)庫。這種方法的風(fēng)險(xiǎn)在于糟糕的分析,由于測(cè)試數(shù)據(jù)的原因。如果測(cè)試數(shù)據(jù)不是基于實(shí)際的應(yīng)用程序輸入,則很容易錯(cuò)過字段大小或數(shù)據(jù)格式的問題。
為確保數(shù)據(jù)庫質(zhì)量,請(qǐng)為項(xiàng)目選擇最佳的功能數(shù)據(jù)庫測(cè)試工具,然后為所需的其他測(cè)試功能進(jìn)行補(bǔ)充。
功能測(cè)試工具。IT企業(yè)可以使用通用的或特定于數(shù)據(jù)庫的功能測(cè)試工具。有些團(tuán)隊(duì)通過SQL來測(cè)試數(shù)據(jù)庫,使用SeLite等工具來實(shí)現(xiàn)瀏覽器自動(dòng)化。
通用產(chǎn)品包括:
SolarWinds Orion
Oracle SQL Developer for Oracle
tSQLtfor Microsoft SQL Server
ACID測(cè)試
對(duì)于數(shù)據(jù)庫測(cè)試,大多數(shù)企業(yè)都會(huì)想到ACID測(cè)試。ACID驗(yàn)證整個(gè)數(shù)據(jù)庫的完整性,這可以稱為邏輯完整性:數(shù)據(jù)庫的基本能力,反映其被設(shè)計(jì)為要記錄的條件,而沒有歧義或重復(fù)。
ACID測(cè)試類似于數(shù)據(jù)庫編程。大多數(shù)測(cè)試方法都使用SQL來驗(yàn)證以下四個(gè)需求:
- 事務(wù)在其內(nèi)部完成,并且整體通過或失敗。
- 該活動(dòng)不會(huì)導(dǎo)致數(shù)據(jù)庫以意外方式運(yùn)行。事務(wù)成功完成并創(chuàng)建新狀態(tài),或者失敗,數(shù)據(jù)庫又恢復(fù)到先前狀態(tài)。
- 事務(wù)同時(shí)發(fā)生或按順序發(fā)生,而不會(huì)為數(shù)據(jù)庫創(chuàng)建不一致的狀態(tài)。
- 數(shù)據(jù)庫活動(dòng)可承受電源故障和其他中斷。
ACID測(cè)試、程序和工具在軟件行業(yè)內(nèi)廣泛可用,并已經(jīng)很成熟。由于ACID測(cè)試的盛行,軟件團(tuán)隊(duì)可能已經(jīng)掌握現(xiàn)有信息,可以輕松地部署其方法。但是,這可能會(huì)掩蓋問題。很多用戶將ACID視為他們唯一的數(shù)據(jù)庫測(cè)試類型,因此,可能錯(cuò)過造成重大問題的錯(cuò)誤。
ACID測(cè)試工具。DTM Data Generator和MockupData在此類測(cè)試以及功能測(cè)試中很受歡迎。很多用戶喜歡使用更多特定于數(shù)據(jù)庫的工具進(jìn)行ACID測(cè)試,例如微軟和Oracle的SQL開發(fā)工具。大多數(shù)公司使用大量數(shù)據(jù)生成器驅(qū)動(dòng)SQL腳本來驗(yàn)證數(shù)據(jù)庫。
非功能測(cè)試
負(fù)載和其他性能測(cè)試會(huì)檢查數(shù)據(jù)庫的運(yùn)行,即數(shù)據(jù)庫在生產(chǎn)中處理用戶活動(dòng)的能力。在過去,很多企業(yè)會(huì)同時(shí)測(cè)試數(shù)據(jù)庫和應(yīng)用程序,當(dāng)時(shí)數(shù)據(jù)庫綁定到單個(gè)軟件,而不是在多個(gè)軟件組件之間共享?,F(xiàn)在,這些團(tuán)隊(duì)可能仍然同時(shí)執(zhí)行所有性能測(cè)試,但是在相互關(guān)聯(lián)和組件化的軟件時(shí)代,這并不是正確做法。
其他性能問題源可能會(huì)影響壓力、延遲、負(fù)載以及數(shù)據(jù)庫在各種情況下如何運(yùn)行的相關(guān)測(cè)試。為了測(cè)試性能,請(qǐng)?jiān)跀?shù)據(jù)庫本地而不是遠(yuǎn)程運(yùn)行測(cè)試,因?yàn)榫W(wǎng)絡(luò)延遲會(huì)影響測(cè)試結(jié)果。良好的性能測(cè)試可能需要使用多種工具。測(cè)試人員可以使用適當(dāng)?shù)墓ぞ咴谒x級(jí)別上針對(duì)測(cè)試類型生成負(fù)載,并使用另一個(gè)工具來監(jiān)視性能。
性能測(cè)試工具。針對(duì)非功能測(cè)試的流行工具包括:
Database Performance Analyzer是廣泛使用的數(shù)據(jù)庫性能分析器之一,而Data Factory和MockupData是用于直接測(cè)試的測(cè)試數(shù)據(jù)生成器。