還在使用傳統(tǒng)TDM解決方案?試試Parasoft的數(shù)據(jù)模擬辦法吧!
驗(yàn)證和驗(yàn)證軟件仍然是企業(yè)軟件開發(fā)中最耗時(shí)且成本最高的方面之一。獲取、存儲、維護(hù)和使用測試數(shù)據(jù)進(jìn)行測試是一項(xiàng)艱巨的任務(wù),需要花費(fèi)太多時(shí)間。業(yè)界已經(jīng)認(rèn)識到測試很難,但根本原因往往被忽視。
我們從行業(yè)數(shù)據(jù)中看到,高達(dá)60%的應(yīng)用程序開發(fā)和測試時(shí)間可用于與數(shù)據(jù)相關(guān)的任務(wù),其中很大一部分是測試數(shù)據(jù)管理。延遲和預(yù)算支出只是問題的一部分——缺乏測試數(shù)據(jù)也導(dǎo)致測試不充分,這是一個(gè)更大的問題,不可避免地導(dǎo)致缺陷蔓延到生產(chǎn)中。
市場上傳統(tǒng)的TDM解決方案并沒有成功地改善測試數(shù)據(jù)挑戰(zhàn)的狀態(tài),例如下面列出的這三種。
3種測試數(shù)據(jù)管理的傳統(tǒng)方法
傳統(tǒng)方法要么依賴于生產(chǎn)數(shù)據(jù)庫的副本,要么恰恰相反,使用合成的生成數(shù)據(jù)。有三種主要的傳統(tǒng)方法:
1、克隆生產(chǎn)數(shù)據(jù)庫
測試人員可以克隆生產(chǎn)數(shù)據(jù)庫來進(jìn)行測試。由于這是生產(chǎn)數(shù)據(jù)庫的副本,因此還需要復(fù)制所需的基礎(chǔ)結(jié)構(gòu)。安全性和隱私遵從性要求對任何機(jī)密的個(gè)人信息進(jìn)行嚴(yán)密保護(hù),因此通常使用屏蔽來混淆這些數(shù)據(jù)。
2、克隆生產(chǎn)數(shù)據(jù)庫的子集
生產(chǎn)數(shù)據(jù)庫的子集是生產(chǎn)數(shù)據(jù)庫的部分克隆,它僅包括測試所需的部分。這種方法需要更少的硬件,但與前面的方法一樣,仍然需要數(shù)據(jù)屏蔽和類似于生產(chǎn)數(shù)據(jù)庫的基礎(chǔ)設(shè)施。
3.生成/合成數(shù)據(jù)
通過綜合數(shù)據(jù),不依賴于客戶數(shù)據(jù),但生成的數(shù)據(jù)仍然足夠真實(shí),可用于測試。綜合遺留生產(chǎn)數(shù)據(jù)庫的復(fù)雜性是一項(xiàng)艱巨的任務(wù),但它消除了克隆機(jī)制中存在的安全性和隱私方面的挑戰(zhàn)。
傳統(tǒng)TDM方法存在的問題
首先,讓我們考慮一下企業(yè)TDM最簡單(也是最常見的)的方法,即在有或沒有子集的情況下克隆生產(chǎn)數(shù)據(jù)庫。為什么這種方法有問題?
-
基礎(chǔ)設(shè)施的復(fù)雜性和成本??赡苁莻鹘y(tǒng)TDM方法最大的缺點(diǎn),遺留數(shù)據(jù)庫可能駐留在大型機(jī)中,或者由多個(gè)物理數(shù)據(jù)庫組成。僅僅為一個(gè)團(tuán)隊(duì)復(fù)制一個(gè)生產(chǎn)系統(tǒng)是一項(xiàng)昂貴的工作。
-
資料隱私及保安。在使用生產(chǎn)數(shù)據(jù)庫時(shí),隱私和安全性總是一個(gè)問題,測試環(huán)境通常不符合必要的隱私和安全性控制。屏蔽是處理這些問題的常用解決方案,改變敏感信息以便不透露任何個(gè)人身份信息。但不幸的是,屏蔽規(guī)避不了泄露私人信息的風(fēng)險(xiǎn),因?yàn)樗梢詫y試數(shù)據(jù)進(jìn)行去匿名化,就算最好的測試團(tuán)隊(duì)盡最大的努力也是如此。例如,需要遵守GDPR的公司可能很難說服監(jiān)管機(jī)構(gòu),他們克隆的測試環(huán)境符合所需的隱私控制。
-
缺乏并行性和數(shù)據(jù)沖突??紤]到基礎(chǔ)設(shè)施成本,可用的測試數(shù)據(jù)庫數(shù)量有限,同時(shí)運(yùn)行多個(gè)測試會(huì)引起對數(shù)據(jù)沖突的關(guān)注。例如,測試可能刪除或更改其他測試所依賴的記錄。這種并行性的缺乏意味著測試變得不那么有效,測試人員不得不在每次測試會(huì)話之后擔(dān)心數(shù)據(jù)的完整性。
-
子設(shè)置沒有多大幫助。盡管創(chuàng)建一個(gè)需要較少基礎(chǔ)設(shè)施的可管理子集是可能的,但這是一個(gè)復(fù)雜的過程。必須維護(hù)引用完整性,而隱私和安全問題仍然存在于子集中。
-
綜合數(shù)據(jù)可以解決隱私問題,但需要大量的數(shù)據(jù)庫和領(lǐng)域?qū)I(yè)知識。創(chuàng)建和填充測試數(shù)據(jù)庫的真實(shí)版本需要對現(xiàn)有數(shù)據(jù)庫有深入的了解,并且能夠使用適合測試的數(shù)據(jù)重新創(chuàng)建合成版本。因此,盡管這種方法解決了許多安全和隱私問題,但創(chuàng)建數(shù)據(jù)庫需要更多的開發(fā)時(shí)間。如果測試數(shù)據(jù)庫很大,基礎(chǔ)設(shè)施問題仍然存在,并且并行性可能受到限制,這取決于可以同時(shí)使用多少測試數(shù)據(jù)庫。
用數(shù)據(jù)模擬解決測試數(shù)據(jù)管理問題
Parasoft在SOAtest和Virtualize產(chǎn)品中提供的簡化且更安全的測試數(shù)據(jù)管理方法更加安全,并解決了這些傳統(tǒng)問題。那么它與傳統(tǒng)方法有何不同?
關(guān)鍵的區(qū)別在于它通過在測試和正常應(yīng)用程序使用期間捕獲來自API調(diào)用和JDBC/SQL事務(wù)的流量來收集測試數(shù)據(jù)。根據(jù)需要對捕獲的數(shù)據(jù)進(jìn)行屏蔽,并在Parasoft的測試數(shù)據(jù)管理界面中生成和顯示數(shù)據(jù)模型??梢栽诮缑鎯?nèi)推斷和配置模型的元數(shù)據(jù)和數(shù)據(jù)約束,并且可以執(zhí)行其他屏蔽、生成和子集化操作。這提供了一個(gè)自助服務(wù)門戶,可以輕松配置多個(gè)一次性數(shù)據(jù)集,為測試人員提供充分的靈活性和對測試數(shù)據(jù)的控制,如下面的屏幕截圖所示:
Parasoft的測試數(shù)據(jù)管理技術(shù)通過服務(wù)虛擬化得到增強(qiáng),可以模擬受限制的后端依賴關(guān)系來解除測試活動(dòng)的障礙。一個(gè)很好的例子是通過將其與模擬JDBC/SQL事務(wù)的虛擬化數(shù)據(jù)庫交換來替換對共享物理數(shù)據(jù)庫的依賴,從而允許進(jìn)行并行和獨(dú)立的測試,否則將會(huì)發(fā)生沖突。Parasoft的測試數(shù)據(jù)管理引擎擴(kuò)展了服務(wù)虛擬化的功能,允許測試人員根據(jù)需求生成、子集、屏蔽和創(chuàng)建個(gè)性化定制測試數(shù)據(jù)。
通過替換數(shù)據(jù)庫等共享依賴項(xiàng),服務(wù)虛擬化消除了托管數(shù)據(jù)庫環(huán)境所需的基礎(chǔ)架構(gòu)和復(fù)雜性,這意味著隔離的測試套件以及覆蓋極端和角落情況的能力。雖然虛擬化依賴關(guān)系不是“真實(shí)的”,但是有狀態(tài)的操作(例如對數(shù)據(jù)庫的插入和更新操作)可以在虛擬資產(chǎn)中建模。從概念上看下面這個(gè):
這種方法的關(guān)鍵優(yōu)勢在于它避免了克隆數(shù)據(jù)庫的復(fù)雜性和基礎(chǔ)架構(gòu)成本,允許API級別測試(即集成測試)比其他測試數(shù)據(jù)方法更早。
這種方法的其他一些好處包括:
-
因?yàn)樗恍枰讓訑?shù)據(jù)庫基礎(chǔ)結(jié)構(gòu),所以它通??梢栽陂_發(fā)人員和測試人員工作站上本地運(yùn)行。
-
每個(gè)測試人員獨(dú)有的獨(dú)立測試環(huán)境意味著共享測試數(shù)據(jù)庫不存在數(shù)據(jù)沖突或數(shù)據(jù)完整性問題。測試變得高度平行,消除了傳統(tǒng)方法的等待時(shí)間和浪費(fèi)周期。
-
測試人員可以輕松地在測試數(shù)據(jù)庫中覆蓋可能導(dǎo)致?lián)p壞和其他問題的極端情況。由于每個(gè)測試環(huán)境都是隔離的,因此測試人員可以輕松執(zhí)行破壞性、性能和安全性測試,而無需考慮共享資源的完整性。
-
在團(tuán)隊(duì)之間共享測試和數(shù)據(jù)很容易,以避免重復(fù)工作,API測試可以定制用于其他目的,如安全性和性能測試。
-
使用虛擬化服務(wù)器消除了底層數(shù)據(jù)庫架構(gòu)的復(fù)雜性。有狀態(tài)測試可用于提供真實(shí)的場景。
-
通過動(dòng)態(tài)屏蔽僅捕獲所需的數(shù)據(jù),您不再需要克隆數(shù)據(jù)庫,將集成測試的重點(diǎn)放在API上,而不是維護(hù)共享的克隆數(shù)據(jù)庫。
在物理數(shù)據(jù)庫中的測試仍然是必要的,但是只有在整個(gè)系統(tǒng)可用時(shí),在軟件交付過程的末尾才需要?dú)w屬。這種測試數(shù)據(jù)的方法并沒有完全消除對實(shí)際數(shù)據(jù)庫的測試需求,而是減少了在軟件開發(fā)過程的早期階段對數(shù)據(jù)庫的依賴,以加速功能測試。
想要了解Parasoft、Parasoft SOAtest、Parasoft Virtualize更多信息或資源的朋友,請點(diǎn)這里。