測試資料管理 創造性的解決方案

2021-06-26 11:18:03 字數 2833 閱讀 1465

mario matthee是一名測試員,顧問,認證scrum大師以及非常不合格的山地電單車車手(正在學習中)。他熱衷於將年輕的it專家引進軟體測試的世界。他還是開普敦測試自動化使用者組的創始成員之一。畢業於(南非)開普半島科技大學,他是動態可視技術公司的軟體質量保證部的主管。 ?

測試資料管理可能是測試專家職業生涯中要面臨的最大挑戰之一。還沒有碰上測試資料緊缺或不完整測試資料的人算是相當幸運的。

我們並不孤單

缺少測試資料會影響開發員。幾年前,我的乙個任務裡,開發員不得不猜測什麼資料會進入資料庫。在把他的**給測試團隊前,他絕對沒有開始某種測試的環境。可以想象,測試階段也有災難。因此該專案開始後被中止近三年一點也不奇怪。或許這不是中止的主要原因,但絕對是乙個成因。資料對任何系統都重要且絕對是測試乙個系統的關鍵因素。資料為系統提供環境,,沒有環境,開始測試階段就值得商榷了。

我們真的需要它嗎?

我們後退一步。我們為什麼需要測試資料且我們該怎麼計畫去使用它?對於初學者,沒有資料,你只測試應用程式的gui。以典型gui為例,我們測試螢幕上的控制項:按鈕,下拉列表,文字框等。即使這些測試會被限制,使得從前端gui無法到達某些螢幕或功能, 因為沒有輸入正確資料。為了遵循系統中的某些流程,就需要具體資料。我們需要測試資料以確保企業規定被測且系統中不同流程被執行。想象一下沒有資料的測試報告,我們開始測試了嗎?

測試資料操作

為了讓測試資料有效,我們需要在上面crud(建立,讀取,公升級和刪除)。測試專家面臨的最大挑戰之一是與第三方的整合。大多數情況下,測試資料只被讀取,且資料數目被限。另乙個潛在噩夢是第三方應用程式**商不提前通知就改變測試資料。讓第三方應用程式**商保證你能獲取他們的資料庫聞所未聞。沒什麼阻止我們請求,但隨時做好你的請求被拒絕的準備吧。測試資料及其管理對手工和自動化測試都很重要。兩種情況中,測試專家旨在**他們基於(他們在系統中輸入的)資料的預期結果。多數情況中,測試專家無法建立或運算元據進入所要求狀態。如果無法發現測試資料,就無法執行測試用例。

乙個真實的例子

讓我將我早期職業生涯中所經歷的一次真實問題為你細細道來。我們不得不測試並將顧客管理系統自動化。乙個單獨的顧客賬戶上可以執行100多個不同的任務。比如鎖定賬戶,解鎖賬戶,檢視餘額,檢視賬戶明細,啟用郵箱,公升級郵箱……

測試資料的問題是測試團隊被賦予某些賬號範圍可以使用下游第三方相應測試資料。所以你可以建立你自己的測試資料並開始利用它,但你無法進行整個端到端的測試,因為新資料不會在下游系統上。 

只有有限範圍為了測試而被配置在下游系統上。所以你的測試會受限。 

下個問題是測試員開始分享賬號,或不請求或協調測試就使用測試資料。這就導致應該解鎖的賬戶被鎖,或擁有某些程式包的賬戶某天可以改變未來。測試同乙個系統的不同功能時的不一致使乙個有16名測試員的團隊受到了挫折。 

澄清一點,並不是所有手工測試都被影響了,但自動化確實是異常噩夢。自動化可以查詢資料並找到資料以供使用,但問題是,有時候資料就在那有時卻不在,因為另一隊成員不斷在改變資料。自動化的乙個優勢是在測試執行前搜尋資料。這種情況下,自動化執行就變得不可信了。我們絕對無法**開始一次一整夜的自動化執行的測試資料是否充足。如果你無法在資料庫中找到資料,最好的辦法就是你自己建立資料。在這兒我不得不強調一下資料完整性的重要性:通過前端或通過執行,資料庫上的某些失序的儲存過程會破壞資料。 

這會進一步阻礙測試工作並有可能造成由測試團隊而不是開發團隊引起的缺陷。讓開發員判定缺陷原因很耗錢,最後卻發現是測試團隊自己破壞的。於是測試發布程序放緩了,自動化無法給投資滿意的回報。 

作為乙個測試團隊,我們逐步擴大問題,並請求設計師想出乙個解決方案。幾次會議後,制定出了乙個計畫。因為那時候想不出乙個更好的詞,我們稱這個解決方案為「香草指令碼」。那麼它是幹什麼的呢?它是乙個基本消除了系統外特定顧客數的所有資料的儲存過程。我是說,所有資料,沒錯,就是所有的。主要是為了維護參照完整性且不破壞資料庫。可想而知,這要嘗試很多次才能成功,但三個月後我們想出了有效的解決方案。你們有些會覺得我們瘋了——我們怎麼可能會有這樣乙個指令碼?如果將之投入生產呢?!這被視作發布流程和執行後測試的一部分。因為指令碼是通過呼叫到乙個儲存流程執行的,儲存流程要確保執行只在特定資料庫名字和ip位址上完成。 

這些問題按以下方法解決:

??完整的終端到終端測試是可能的,因為香草指令碼第乙個執行,向下游系統發布命令刪除支援他們的相關資料。重新建立該賬號使得要重建乙個下游,保證所有系統同步。

??測試員沒必要分享測試號。現在他們可以一遍又一遍地使用自動化去設定理想狀態的用同乙個賬號的資料。

??自動化也使用分配到的賬號執行,所以我們總會有資料以供徹夜執行。

??通過執行失序指令碼破壞資料庫的風險通過使用高階資料庫開發員編寫的香草指令碼被消除了。

結果

結果絕對驚人。假設你要測試乙個賬戶完整生命週期,從啟用到刪除,以及期間的所有任務。現在你可以做到!測試開始前,一名測試員執行香草指令碼。現在,他們只需要讓賬戶進入乙個他們所需的特定狀態以開始手動測試用例。這也使得我們能夠用同乙個賬號為不同的軟體包產品編寫測試用例。自動化突然成功了。我們在36小時內執行300,000多個測試用例。反過來又產生了乙個新需求:我們希望自動化執行地更快——但那在一般測試自動化和測試中卻是乙個問題。我們該如何解決第三方測試數的共享呢?自動化用一兩個賬號,手動測試員用剩下的。他們開始通過自動化使用香草指令碼將賬號設定為他們所希望的狀態。關鍵字驅動的自動化是解決方案的關鍵,因為它可以讓測試團隊自己設計測試用例組合。

總結

測試資料管理可以建立或打破乙個測試團隊的精神。創造性的解決方案是需要的。不要停止尋找解決方案,最後總會有所收穫。有時候解決方案就和在正確的時間向正確的人尋求幫助一樣簡單。

構建乙個主資料管理 MDM 的解決方案

如何構建乙個主資料管理 mdm 的解決方案 第二步,需要確定我們的每個主資料域的範圍 這也是前期需求分析的一部分 常見的主題域有 party 可以反映任何合法的實體,無論是個體還是組織。product 既包括物理存在的貨物,也可以是任何服務。location 既可以獨立存在,也常常與其他主資料域共存...

Oracle資料倉儲的分層管理器解決方案

摘要 本文描述分層管理器的原理 步驟 限制,並和oracle資料倉儲相結合實現了地學資料的有效儲存 管理以及大範圍資料的快速瀏覽。關鍵字 分層管理器 元資料 快速瀏覽 前言21世紀是資訊的世紀,綜合國力的競爭在很大程度上是資訊的競爭,更是資訊利用率的競爭。近年來,隨著 數字地球 和 數字國土 戰略的...

初探介面測試產生脹資料的原因與解決方案

介面測試產生髒資料的原因初探 接觸介面測試有一段時間了,但是因為種種原因產生髒資料,對測試和開發產生了不便。一 背景 1 測試框架 python nosetests 2 ci jenkins svn,統一服務端配置。二 原因和解決方案 原因主要分為自身原因和外部原因,主要為qa編寫 質量 svn許可...