A. 資料庫測試的具體測試方法
1. 分別測試記錄的新增、修改、刪除等操作,以驗證前台與後台數據的一致性為主。
2. 測試記錄的查找功能,檢查返回的數據是否正確,並測試相關功能。
3. 測試數據的不同顯示方式。
4. 測試有效和無效數據對資料庫的影響。完成標准:???? ??所有的資料庫訪問方法和進程都按照設計的方式運行,數據沒有遭到損壞。
B. 資料庫如何做測試
查詢輸入:
(1)分別對單條件進行精確查詢
(2)輸入長度的檢驗,輸入允許的最長值進行查詢,是否支持
(3)兩個查詢條件是否為2選1,來回選擇是否出現頁面錯誤
(4)輸入字元
(5)輸入特殊字元
(6)輸入數字
(7)輸入漢字
(8)輸入關系表達式與、或、異或、非、等於
(9)輸入空格
(10)條件中含有空格
(11)輸入超長字元
(12)輸入全形字元
(13)輸入單引號
(14)輸入單引號引起來的數據
(15)輸入雙引號
(16)輸入雙引號引起來的數據
(17)如果支持模糊查詢,輸入部分查詢條件
(18)輸入系統中不存在與之匹配的條件
查詢結果檢查
(1)查詢結果按什麼順利排序
(2)查詢結果是否根據欄位顯示排序功能
(3)查詢結果是否有分頁,如果有,每頁最多包含多少記錄
(4)查詢結果是否匹配
(5)查詢結果是否與資料庫一致
(6)查詢結果是精確查詢還是模糊查詢
UI驗證
(1)文字顯示是否正確
(2)頁面是否有錯別字
(3)輸入框大小、文字大小是否合適
(4)頁面是否美觀
(5)查詢結果欄位顯示是否與需求一致
性能方面
(1)查詢處理時間是否能接受
(2)資料庫中存在大數據量數據時,查詢時間是否能接受
(3)當多個用戶同時查詢時,輸入相同或不同的查詢條件系統響應是否及時...
C. 資料庫中視圖怎麼進行軟體測試
從測試過程的角度來說我們也可以把資料庫測試分為:
系統測試
傳統軟體系統測試的測試重點是需求覆蓋,而對於我們的資料庫測試同樣也需要對需求覆蓋進行保證。那麼資料庫在初期設計中也需要對這個進行分析,測試。例如存儲過程,視圖,觸發器,約束,規則等我們都需要進行需求的驗證確保這些功能設計是符合需求的.另一方面我們需要確認資料庫設計文檔和最終的資料庫相同,當設計文檔變化時我們同樣要驗證改修改是否落實到資料庫上。
這個階段我們的測試主要通過資料庫設計評審來實現。
集成測試
集成測試是主要針對介面進行的測試工作,從資料庫的角度來說和普通測試稍微有些區別對於資料庫測試來說,需要考慮的是數據項的修改操作、數據項的增加操作、數據項的刪除操作、數據表增加滿、數據表刪除空、刪除空表中的記錄、數據表的並發操作、針對存儲過程的介面測試、結合業務邏輯做關聯表的介面測試。
同樣我們需要對這些介面考慮採用等價類、邊界值、錯誤猜測等方法進行測試。
單元測試
單元測試側重於邏輯覆蓋,相對對於復雜的代碼來說,資料庫開發的單元測試相對簡單些,可以通過語句覆蓋和走讀的方式完成。
系統測試相對來說比較困難,這要求有很高的資料庫設計能力和豐富的資料庫測試經驗。而集成測試和單元測試就相對簡單了。
而我們也可以從測試關注點的角度對資料庫進行分類:
功能測試
對資料庫功能的測試我們可以依賴與工具進行:
DBunit:一款開源的資料庫功能測試框架,可以使用類似與Junit的方式對資料庫的基本操作進行白盒的單元測試,對輸入輸出進行校驗。
QTP:大名鼎鼎的自動測試工具,通過對對象的捕捉識別,我們可以通過QTP來模擬用戶的操作流程,通過其中的校驗方法或者結合資料庫後台的監控對整個資料庫中的數據進行測試。個人覺得比較偏向灰盒。
DataFactory:一款優秀的資料庫數據自動生成工具,通過它你可以輕松的生成任意結構資料庫,對資料庫進行填充,幫助你生成所需要的大量數據從而驗證我們資料庫中的功能是否正確。這是屬於黑盒測試。
資料庫性能雖然我們的硬體最近幾年進步很快,但是我們需要處理的數據以更快的速度在增加。幾億條記錄的表格在現在是司空見慣的,如此龐大的數據量在大量並發連接操作時,我們不能像以前一樣隨意的使用查詢,連接查詢,嵌套查詢,視圖,這些操作如果不當會給系統帶來非常巨大的壓力,嚴重影響系統性能。
性能優化分4部分:
1、物理存儲方面
2、邏輯設計方面
3、資料庫的參數調整
4、SQL語句優化
性能測試:
我們如何對性能方面進行測試呢,業界也提供了很多工具通過資料庫系統的SQL語句分析工具,我們可以分析得到資料庫語句執行的瓶頸,從而優化SQL語句。
Loadrunner:這個不用多說,我們可以通過對協議的編程來對資料庫做壓力測試。
Swingbench:(這是一個重量級別的feature,類似LR,而且非常強大,只不過專門針對oracle而已)資料庫廠商也意識到這點,例如oracle11g已經提供了real applicationtest,提供資料庫性能測試,分析系統的應用瓶頸。
還有很多第三方公司開發了SQL語句優化工具來幫助你自動的進行語句優化工作從而提高執行效率。
安全測試:
軟體日益復雜,而數據又成為了系統中重中之重的核心,從以往對系統的破壞現在更傾向於對數據的獲取和破壞。而資料庫的安全被提到了最前端自從SQL 注入攻擊被發現,冒失萬無一失的資料庫一下從後台變為了前台,而一旦資料庫被攻破,整個系統也會暴露在黑客的手下,通過資料庫強大的存儲過程,黑客可以輕松的獲得整個系統的許可權。而SQL的注入看似簡單缺很難防範,對於安全測試來說,如何防範系統被注入是測試的難點。
業界也有相關的資料庫注入檢測工具,來幫助用戶對自身系統進行安全檢測。
對於這點來說業界也有標准,例如ISO IEC 21827,也叫做SSE CMM 3.0,是CMM和ISO的集成的產物,專門針對系統安全領域的另外一方面,資料庫的健壯性,容錯性和恢復能力也是我們測試的要點
我們也可以發現功能測試,性能測試,安全測試,是一個由簡到繁的過程,也是資料庫測試人員需要逐步掌握的技能,這也是以後公司對資料庫測試人員的要求。
D. 資料庫測試主要測試什麼內容
1、資料庫的基本概念,資料庫系統的構成。
2、數據模型概念和主要的數據模型5.軟體調試,測試方法、技術和用例。
6.軟體質量控制,軟體文檔。
7.軟體
E. 資料庫知識在軟體測試過程中有哪些方面作用
回答這個問題我想可能得考慮多個方面
資料庫本身作用是什麼?我想,簡單的說就是:存儲、管理數據,為前台程序提供支持。
測試掌握資料庫可以:
1、方便使用測試管理軟體,因為管理軟體是要以數據做支撐的,必然有自己的資料庫,你要懂基本的維護、簡單的備份還原操作,同時,最好能簡單了解數據調用。
2、軟體測試工作本身,是做什麼?測試軟體對吧?那在你測試軟體的時候,絕大多數的軟體都是有其資料庫的,光是在前台點點、操作一下,那是最最基礎的軟體測試;深入點測試,你必須把前台操作和後台資料庫數據變動關聯起來考慮,這樣才能做到功能測試的全面性要求。
3、軟體測試種類有哪些?
功能、性能、壓力、驗收等等
在做性能、壓力測試時,必須對資料庫性能分析等有較為深入的了解;
在做驗收測試時,必須會搭建用戶環境、恢復備份資料庫。
白盒、灰盒、黑盒測試
白盒即知曉所有代碼路徑,這時,對資料庫相關語句必須非常了解,才能寫出有效測試用例並執行。當然,一般公司白盒測試都是程序員自己完成了。
自動化測試、手工測試
自動化測試時,你必須編寫測試腳本,使用測試工具,而腳本、工具都和資料庫息息相關
4、測試支撐,測試工程師必須要學會測試環境的搭建,而環境中一般都包含資料庫;
5、其他,為了自己的職業發展,更要多了解、深入學習資料庫知識!!!
總之,資料庫對測試,很重要!
F. 軟體開發資料庫如何進行測試
比如:數據冗餘,功能和性能方面存在的問題已經嚴重影響應用軟體的使用。軟體測試人員往往重視對軟體功能和編碼的測試,而忽略對軟體性能,特別是資料庫訪問並發測試。因為,他們固有的思想中認為資料庫設計存在問題對系統性能影響不大,或從根本上忽略了資料庫在軟體開發中的地位,直到出現了問題,才想到對資料庫的測試,但往往也是僅僅通過對編碼的測試工作中捎帶對資料庫進行一定的測試,這遠遠是不夠的。目前,中鐵網上訂票系統在大用戶同時在線訂票中系統頻頻癱瘓,就是最好的佐證。 所以,在應用軟體的測試工作中,應該將資料庫作為一個獨立的部分進行充分的測試,這樣才可以得到應用軟體所需要的性能優化的資料庫。那麼,應該對哪些內容進行測試,如何進行測試呢? 2、資料庫設計的測試 資料庫是應用的基礎,其性能直接影響應用軟體的性能。為了使資料庫具有較好的性能,需要對資料庫中的表進行規范化設計。規范化的範式可分為第一範式、第二範式、第三範式、BCNF範式、第四範式和第五範式。一般來說,邏輯資料庫設計應滿足第三範式的要求,這是因為滿足第三範式的表結構容易維護,且基本滿足實際應用的要求。因此,實際應用中一般都按照第三範式的標准進行規范化。但是,規范化也有缺點:由於將一個表拆分成為多個表,在查詢時需要多表連接,降低了查詢速度。故資料庫設計的測試包括前期需求分析產生資料庫邏輯模型和後期業務系統開發中的測試兩部分(這里指的是後者),我在這里稱為實體測試。 資料庫是由若乾的實體組成的,包括(表,視圖,存儲過程等),資料庫最基本的測試就是實體測試,通過對這些實體的測試,可以發現資料庫實體設計得是否充分,是否有遺漏,每個實體的內容是否全面,擴展性如何。 實體測試,可以用來發現應用軟體在功能上存在的不足,也可以發現數據冗餘的問題。經過測試,測試人員對有異議的問題要及時和資料庫的設計人員進行溝通解決。 3、數據一致性測試 在進行實體測試後,應進一步檢查下面的內容以保障數據的一致性: 3.1 表的主鍵測試根據應用系統的實際需求,對每個表的主鍵進行測試,驗證是否存在記錄不唯一的情況,如果有,則要重新設置主鍵,使表中記錄唯一。 3.2 表之間主外鍵關系的測試資料庫中主外鍵欄位在名稱,數據類型,欄位長度上的一致性測試。 3.3 級聯表,刪除主表數據後,相應從報表數據應同時刪除的問題例如學生表和學生成績表,學生數據已經刪除,成績表中相應學生的成績記錄應同時刪除。 3.4 存儲過程和觸發器的測試存儲過程可以人工執行,但觸發器不能人工處理,所以在對存儲過程和觸發器執行的過程中針對SQL SERVER2005及以上版本可以使用Microsoft SQL Server Profiler性能測試工具進行測試。 Microsoft SQL Server Profiler 是 SQL 跟蹤的圖形用戶界面,用於監視資料庫引擎或 Analysis Services 的實例。測試人員可以捕獲有關每個事件的數據並將其保存到文件或表中供以後分析。例如:可以對生產環境進行監視,了解哪些存儲過程由於執行速度太慢影響了性能。 4、資料庫的容量測試 隨著資料庫系統的使用,數據量在飛速增長,如何在使用前對數據容量的增長情況進行初步估算,為最終用戶提供參考,這在資料庫使用和維護過程中,是非常重要的。可以通過對資料庫設計中基本表的數據大小,和每天數據表的數據產生量進行初步估算。 記錄數據量=各個欄位所佔位元組數的總和表的數據量=記錄數據量*記錄數資料庫大小=各表數據量的總和 當然,資料庫的大小不僅僅只是基本表的大小,還有系統表,視圖,存儲過程等其它實體所佔的容量,但最基本的數據是表的數據。另外,資料庫的容量還包括資料庫日誌文件的容量,一般應預留資料庫文件的2倍左右。 5、資料庫的性能測試 應用軟體除了功能外,很重要的一部分就是軟體的性能,而對於資料庫系統,資料庫性能的好壞會直接影響應用軟體的性能,這部分的測試,一般手工測試就顯得無能為力了,這時就要藉助自動化的測試軟體,例如:DataFactory,DataFactory是一種強大的數據產生器,它允許開發人員和測試人員很容易產生百萬行有意義的正確的測試資料庫,該工具支持DB2、Oracle、Sybase、SQL Server資料庫。這樣,就可以模擬出應用軟體長期使用後,海量數據存儲的資料庫的性能狀況。從而盡早發現問題,進行資料庫性能的優化。 這里要注意,進行性能測試的時候,一定要注意測試環境的一致性,包括:操作系統、應用軟體的版本以及硬體的配置等,而且在進行資料庫方面的測試的時候一定要注意資料庫的記錄數、配置等要一致,只有在相同條件下進行測試,才可以對結果進行比較。否則無法和用戶對軟體的性能的觀點達成一致。 6、資料庫的壓力測試 說起測試,我們首先想到的就是軟體正確性的測試,即常說的功能測試。軟體功能正確僅是軟體質量合格指標之一。在實際開發中,還有其它的非功能因素也起著決定性的因素,例如軟體的響應速度。影響軟體響應速度的因素有很多,有些是因為演算法不夠高效;還有些可能受用戶並發數的影響。 在眾多類型的軟體測試中,壓力測試正是以軟體響應速度為測試目標,尤其是針對在較短時間內大量並發用戶的訪問時,軟體的抗壓能力。但壓力測試往往是手工難以測試的,必須藉助自動化測試工具。常用的壓力測試有:Web測試、資料庫測試等。 資料庫在大多數軟體項目中是不可缺少的,對於它進行壓力測試是為了找出資料庫對象是否可以有效地承受來自多個用戶的並發訪問。這些對象主要是:索引、觸發器、存儲過程和鎖。通過對SQL語句和存儲過程的測試,自動化的壓力測試工具可以間接的反應資料庫對象是否需要優化。 這些自動化的測試工具很多,各有特點,基於Java的項目可以使用JMeter,.Net項目可以採用.Net集成開發環境中提供的測試方案。 7、結束語 總之,在應用系統的測試中,把資料庫應當作為獨立的系統來測試,這無疑會為應用軟體的質量增加可靠的保障,同時還必須結合應用軟體進行集成測試,只有二者有機結合起來,才能最大限度的發揮資料庫和應用軟體的功能。
G. 在測試驗證資料庫加固檢查中,哪個內容是所有資料庫檢查中包含的
1. 修改sys, system的口令。
2. Lock,修改,刪除默認用戶: dbsnmp,ctxsys等。
3. 把REMOTE_OS_AUTHENT改成False,防止遠程機器直接登陸。
4. 把O7_DICTIONARY_ACCESSIBILITY改成False。
5. 把一些許可權從PUBLIC Role取消掉。
6. 檢查資料庫的數據文件的安全性。不要設置成666之類的。檢查其他dba 用戶。
7. 把一些不需要的服務(比如ftp, nfs等關閉掉)
8. 限制資料庫主機上面的用戶數量。
9. 定期檢查Metalink/OTN上面的security Alert。比如:http://otn.oracle.com/deploy/security/alerts.htm
10. 把你的資料庫與應用放在一個單獨的子網中,要不然你的用戶密碼很容易被sniffer去。或者採用advance security,對用戶登錄加密。
11. 限止只有某些ip才能訪問你的資料庫。
12. lsnrctl 要加密碼,要不然別人很容易從外面關掉你的listener。
13. 如果可能,不要使用默認1521埠
H. 如何測試資料庫的安全
什麼意思?
是什麼資料庫,SQL ACCESS 或其他 什麼的 ,雖然資料庫本身可設置密碼。但現在都有破解軟體能破解的。
所以,最好的方法就是,在對資料庫進行寫入時,把原數據加密後的數據寫到資料庫。調用時,先讀取出來,然後解密讀取的數據,在調用。
比如,我往資料庫存放數據「abc」,我自己定義了,用 y代表a h代表b n代表c 那麼加密「abc」後就是「yhn」,把「yhn」存入資料庫中。這樣別人就算查看了 資料庫的內容 看到是「yhn」,不能知道原來的數據是什麼。你調用數據時,取出資料庫的進行解密為「abc」就行了。
------------------------------------------------------------------------------------------------------------------
詳細,可追問
I. 資料庫安全的防護手段
Xsecure產品系列實現對資料庫的全方位防護 ,需要覆蓋資料庫的事前、事中、事後安全;覆蓋資料庫應用安全、維護安全、使用安全和存儲安全;是最全面的資料庫防泄露產品。 資料庫漏洞掃描系統Xsecure-DBScan ,是一款幫助用戶對當前的資料庫系統進行自動化安全評估的專業軟體,能有效暴露當前資料庫系統的安全問題,提供對資料庫的安全狀況進行持續化監控,幫助用戶保持資料庫的安全健康狀態。
發現外部黑客攻擊漏洞,防止外部攻擊:實現非授權的從外到內的檢測;模擬黑客使用的漏洞發現技術,在沒有授權的情況下,對目標資料庫的安全性作深入的探測分析;收集外部人員可以利用的資料庫漏洞的詳細信息。分析內部不安全配置,防止越權訪問:通過只讀賬戶,實現由內到外的檢測;提供現有數據的漏洞透視圖和資料庫配置安全評估;避免內外部的非授權訪問。
監控資料庫安全狀況,防止資料庫安全狀況惡化:對於資料庫建立安全基線,對資料庫進行定期掃描,對所有安全狀況發生的變化進行報告和分析。 操作系統中的對象一般情況下是文件,而資料庫支持的應用要求更為精細。通常比較完整的資料庫對數據安全性採取以下措施:
(1)將資料庫中需要保護的部分與其他部分相隔。
(2)採用授權規則,如賬戶、口令和許可權控制等訪問控制方法。
(3)對數據進行加密後存儲於資料庫。 由資料庫管理系統提供一套方法,可及時發現故障和修復故障,從而防止數據被破壞。資料庫系統能盡快恢復資料庫系統運行時出現的故障,可能是物理上或是邏輯上的錯誤。比如對系統的誤操作造成的數據錯誤等。
J. 資料庫安全加固的產品
應用背景及存在問題
我國已有的安全建設重要圍繞著網路防護、主機訪問和應用層安全防護以及伺服器層安全防護進行,但對真正核心的數據存儲管理的核心資料庫並沒有採取有效的防護措施。網路層安全防護的主要產品有:防火牆、網路隔離設備、入侵檢測、防病毒等;應用層安全防護的主要產品有:安全認證、統一授權等;伺服器層安全防護的主要產品有:伺服器防護、防病毒、入侵檢測、主機審計等;數據層安全防護的主要產品有:資料庫安全增強、資料庫審計、文檔防護等,數據層安全防護是存放於伺服器內的數據本身的最後一道安全防護屏障,如果網路層、應用層和伺服器層的安全防護被攻破,只要數據層安全防護有效,就不致予泄露敏感數據。可見數據層安全防護的重要性。
世界最大職業中介網站Monster遭到黑客大規模攻擊,黑客竊取在網站注冊的數百萬求職者個人信息,並進行勒索;程序員程稚瀚四次侵入北京移動充值中心資料庫,盜取充值卡密碼,獲利300 多萬元。2003 年廣東聯通7 名人員,利用內部工號和密碼,對欠費停機手機進行充值,使聯通損失260 萬元。2005 年12 月25 日,美國銀行披露,2004 年12 月下旬,丟失了包括1200 萬信用卡信息的磁帶備份. ---Gartner Research;CSI/FBI 2005 年計算機犯罪和和安全會的相關報告中提到70%的信息系統數據丟失和遭受攻擊,都來自於內部。
當前主流Oracle安全增強方案包括前置代理、應用加密和Oracle自帶加密選件DTE等。前置代理需要應用大幅改造、大量Oracle核心特性無法使用;應用加密必須由應用實現數據加密,加密數據無法檢索,已有系統無法透明移植;DTE不能集成國產加密演算法,不符合國家密碼政策。因此這幾種方案一直未能得到有效推廣。