原創(chuàng)|行業(yè)資訊|編輯:鄭恭琳|2021-02-01 13:59:21.617|閱讀 206 次
概述:軟件開發(fā)人員和測(cè)試人員每天面臨的主要挑戰(zhàn)之一是無法獲取真實(shí)數(shù)據(jù)。很多時(shí)候,作為開發(fā)人員,您正在與下游服務(wù)進(jìn)行交互,并且必須使用該環(huán)境中可用的任何數(shù)據(jù),因?yàn)楂@取針對(duì)您的方案的實(shí)際可用數(shù)據(jù)的過程非常耗時(shí)。通常,您找不到所需的數(shù)據(jù),并且必須從生產(chǎn)中獲取數(shù)據(jù),這帶來了一系列新的挑戰(zhàn)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
軟件開發(fā)人員和測(cè)試人員每天面臨的主要挑戰(zhàn)之一是無法獲取真實(shí)數(shù)據(jù)。很多時(shí)候,作為開發(fā)人員,您正在與下游服務(wù)進(jìn)行交互,并且必須使用該環(huán)境中可用的任何數(shù)據(jù),因?yàn)楂@取針對(duì)您的方案的實(shí)際可用數(shù)據(jù)的過程非常耗時(shí)。通常,您找不到所需的數(shù)據(jù),并且必須從生產(chǎn)中獲取數(shù)據(jù),這帶來了一系列新的挑戰(zhàn)。
更復(fù)雜的是,不能從生產(chǎn)中使用個(gè)人數(shù)據(jù),因?yàn)檫@會(huì)增加組織被盜,丟失或暴露的風(fēng)險(xiǎn)。以雅虎最近的一次泄密事件為例,那里有5億個(gè)電子郵件帳戶被泄密,或者約680億的LinkedIn用戶最近遭到數(shù)據(jù)泄露。這些漏洞發(fā)生在安全性很高的生產(chǎn)級(jí)別。開發(fā)區(qū)域中使用的生產(chǎn)數(shù)據(jù)并不少見,安全性往往較低。以這種方式進(jìn)行運(yùn)營(yíng)會(huì)對(duì)組織的品牌聲譽(yù)造成重大風(fēng)險(xiǎn)。因此,必須清除或屏蔽敏感數(shù)據(jù),這是一個(gè)耗時(shí)的過程,需要數(shù)據(jù)專家。
無論如何,數(shù)據(jù)是一個(gè)成本問題,因?yàn)樗鼤?huì)使您減速。通過使用服務(wù)虛擬化,您不僅可以控制從屬應(yīng)用程序的行為和功能以穩(wěn)定測(cè)試環(huán)境,而且還可以完全控制那些從屬應(yīng)用程序的數(shù)據(jù)源并提供當(dāng)天需要的任何數(shù)據(jù)。此時(shí),規(guī)則發(fā)生了變化,因?yàn)槟F(xiàn)在不僅可以控制數(shù)據(jù),還可以控制邏輯。您可以創(chuàng)建符合您希望的行為的服務(wù),而不是嚴(yán)格遵循其正常行為模式。
在先前的博客中,我討論了具有相同基本原理的缺陷虛擬化。但是我們?cè)谶@里談?wù)摰?是服務(wù)邏輯。該博客將邁出下一步,并討論數(shù)據(jù)控制。首先,讓我們集中討論測(cè)試人員和開發(fā)人員每天面臨的當(dāng)前數(shù)據(jù)挑戰(zhàn)。
在應(yīng)用程序開發(fā)過程的開始,測(cè)試所需的數(shù)據(jù)通常很簡(jiǎn)單,因?yàn)樵摲?務(wù)的全部功能尚未實(shí)現(xiàn)。隨著開發(fā)繼續(xù)增加功能,測(cè)試成熟度增加,數(shù)據(jù)復(fù)雜性也增加。
例如,讓我們使用我以前的博客文章中的示例-假設(shè)我是一家航空公司,正在開發(fā)機(jī)票頁面上的功能。我需要驗(yàn)證用戶是否可以獲取他們的航班機(jī)票,并且取決于未來航班的飛行距離,用戶將獲得以下幾種響應(yīng)之一,隨著時(shí)間的推移,響應(yīng)會(huì)改變。在開發(fā)過程的開始,我可以簡(jiǎn)單地在未來3個(gè)月的飛行中生成一堆復(fù)雜的數(shù)據(jù),這將使我能夠進(jìn)行目前需要的所有測(cè)試。但是當(dāng)然問題是我只是在定時(shí)炸彈上點(diǎn)燃了保險(xiǎn)絲。在三個(gè)月內(nèi),這些漂亮的數(shù)據(jù)將過期,而我可能已經(jīng)忘記了它。突然我的所有測(cè)試都會(huì)在錯(cuò)誤的時(shí)間開始失敗,因?yàn)榘l(fā)布的版本即將發(fā)布,而我根本沒有時(shí)間重新生成數(shù)據(jù)……聽起來很熟悉嗎?
通過在開發(fā)過程的早期引入服務(wù)虛擬化,您可以為提供解決這些數(shù)據(jù)挑戰(zhàn)的解決方案奠定基礎(chǔ)。虛擬服務(wù)的數(shù)據(jù)可以從多個(gè)位置獲取,但是從一開始,簡(jiǎn)單的虛擬服務(wù)就從固定數(shù)據(jù)開始。您創(chuàng)建這些“固定資產(chǎn)”或模擬來解決假設(shè)情景測(cè)試階段并使事情變得非常簡(jiǎn)單。這里的想法是,“我只需要一個(gè)可以響應(yīng)此特定有效負(fù)載的服務(wù)。”
隨著虛擬服務(wù)的成熟,有必要將數(shù)據(jù)與服務(wù)分離,這樣,如果您想在仿真中添加邏輯,則實(shí)際上不必打開虛擬服務(wù)即可操作數(shù)據(jù)。實(shí)際上,成熟的用戶以某種方式創(chuàng)建虛擬服務(wù),即數(shù)據(jù)源可以處理大部分邏輯。然后,他們可以將數(shù)據(jù)源交給測(cè)試人員或測(cè)試數(shù)據(jù)管理團(tuán)隊(duì),以插入此服務(wù)將來可能需要的任何數(shù)據(jù)。向服務(wù)添加新功能就像向數(shù)據(jù)源添加一行一樣簡(jiǎn)單。這樣可以共享虛擬化工作,并且一個(gè)虛擬服務(wù)可以容納多個(gè)團(tuán)隊(duì)。虛擬服務(wù)成為可以根據(jù)需要增長(zhǎng)和變化的生物。
一旦開發(fā)創(chuàng)建了最初的簡(jiǎn)單服務(wù),測(cè)試團(tuán)隊(duì)就該接手了。測(cè)試團(tuán)隊(duì)將有更復(fù)雜的數(shù)據(jù)要求。這些數(shù)據(jù)從哪里來?通常,您從記錄和回放中獲取此數(shù)據(jù)。這通常是創(chuàng)建虛擬服務(wù)時(shí)的第一步。您記錄應(yīng)用程序和從屬后端系統(tǒng)之間的事務(wù),并使用此記錄來創(chuàng)建虛擬服務(wù)。這使您可以創(chuàng)建一個(gè)非常有用的基準(zhǔn)數(shù)據(jù)源,可以在需要時(shí)進(jìn)行擴(kuò)展。在我的航空公司示例中,這將使我們能夠獲得現(xiàn)實(shí)的航班號(hào)和目的地。數(shù)據(jù)將具有所有必要的復(fù)雜性,包括多航段和國(guó)際航班。數(shù)據(jù)源關(guān)聯(lián)處理所有復(fù)雜的請(qǐng)求/響應(yīng)關(guān)系,并且由于對(duì)“真實(shí)”數(shù)據(jù)的后續(xù)更改可以簡(jiǎn)單地重新記錄并合并到現(xiàn)有的虛擬服務(wù)中,因此獲取新數(shù)據(jù)變得無關(guān)緊要。
我們記錄的數(shù)據(jù)不是來自生產(chǎn)環(huán)境,這可以防止我們?cè)谳^低環(huán)境中遭受數(shù)據(jù)泄露。此類數(shù)據(jù)面臨的挑戰(zhàn)是,由于它不是來自生產(chǎn)環(huán)境,因此它不是完整的或最新的。在這里,數(shù)據(jù)生成和操作成為服務(wù)虛擬化的強(qiáng)大功能。
不存在的數(shù)據(jù)可以用簡(jiǎn)單的生成數(shù)據(jù)進(jìn)行補(bǔ)充,以完全滿足我們的需求。在我的航空公司示例中,響應(yīng)中的航班日期始終可以是今天的日期,但要偏移3個(gè)月。通過使用數(shù)據(jù)生成,此任務(wù)變得微不足道。
通過提供動(dòng)態(tài)數(shù)據(jù)來管理任何“未定義的”請(qǐng)求/響應(yīng)關(guān)系,我們可以繼續(xù)處理和操縱數(shù)據(jù)。這些是靜態(tài)數(shù)據(jù)集中永遠(yuǎn)不會(huì)存在的關(guān)系類型。在航空公司示例中,假設(shè)向下游組件發(fā)出請(qǐng)求時(shí),它會(huì)提供用戶的當(dāng)前位置,并將其用作響應(yīng)中的出發(fā)點(diǎn)。由于我們的測(cè)試用例會(huì)不斷變化,因此真正的服務(wù)必須維護(hù)所有當(dāng)前位置,以便可以在響應(yīng)中提供它們。通過使用虛擬服務(wù),您不需要維護(hù)所有位置,只需將用戶的當(dāng)前位置動(dòng)態(tài)返回為出發(fā)城市即可。
最后,可以以靜態(tài)方式提供否定數(shù)據(jù),也可以將其插入數(shù)據(jù)源以簡(jiǎn)化否定或異常測(cè)試。例如,在我的航空公司示例中,這將是插入隨機(jī)取消或延誤的航班,以驗(yàn)證用戶在離開機(jī)場(chǎng)之前已收到通知。
在下面的視頻中,我描述了開發(fā)人員在處理數(shù)據(jù)時(shí)面臨的一些典型挑戰(zhàn),并向您展示了如何以我認(rèn)為是服務(wù)虛擬化的一些非常酷的方式克服這些挑戰(zhàn)。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn