黃志清 張送 韋通明 溫麗梅 韋統(tǒng)邊


關(guān)鍵詞:大數(shù)據(jù);數(shù)據(jù)遷移;數(shù)據(jù)測試
1引言
近年來,隨著時(shí)代的快速發(fā)展,全球已經(jīng)從互聯(lián)網(wǎng)時(shí)代進(jìn)入大數(shù)據(jù)時(shí)代,目前全球數(shù)據(jù)總量已經(jīng)達(dá)到ZB級。相應(yīng)地,對于數(shù)據(jù)存儲硬件的要求和服務(wù)器容量的要求也變得越來越高,為了適應(yīng)越來越多的使用場景和進(jìn)行相應(yīng)的數(shù)據(jù)分析處理,數(shù)據(jù)遷移在這個(gè)過程中也就變得越來越重要。因此,最為重要的就是確保數(shù)據(jù)遷移后數(shù)據(jù)的完整性和準(zhǔn)確性。本文對數(shù)據(jù)遷移測試的全過程方法進(jìn)行了分析,并且提出了一種數(shù)據(jù)遷移測試的具體方法,旨在減少測試邏輯混亂帶來的時(shí)間成本和人力成本,從而更加高效地提高數(shù)據(jù)質(zhì)量[1]。
2數(shù)據(jù)迂移測試中容易出現(xiàn)的問題
數(shù)據(jù)測試人員基本上是按照項(xiàng)目需求文檔的規(guī)則,對原本的數(shù)據(jù)源數(shù)據(jù)和遷移后的數(shù)據(jù)源數(shù)據(jù)進(jìn)行比對,從分析的角度出發(fā),只有每一條數(shù)據(jù)都能夠完全相同,才能夠保證數(shù)據(jù)的準(zhǔn)確性和完整性。在數(shù)據(jù)測試的過程中,經(jīng)常會(huì)碰到下文所述問題,會(huì)影響數(shù)據(jù)的準(zhǔn)確性和完整性,需要特別注意[2]。
2.1測試邏輯混亂
當(dāng)測試人員對遷移后的數(shù)據(jù)進(jìn)行測試的時(shí)候,有時(shí)候沒有經(jīng)過前置條件的數(shù)據(jù)就直接測試后面的數(shù)據(jù),造成數(shù)據(jù)測試結(jié)果無效。出現(xiàn)該問題的原因有可能是項(xiàng)目需求文檔未申明清楚,產(chǎn)品人員傳遞需求有誤或者沒有規(guī)范的項(xiàng)目管理流程。這樣的數(shù)據(jù)測試結(jié)果無法證明數(shù)據(jù)是正確的,從而需要復(fù)測,導(dǎo)致人力成本和時(shí)間成本增加。如果出現(xiàn)這樣的問題,就需要規(guī)范測試需求和測試流程,從而能夠直接找到問題所在,進(jìn)而進(jìn)行分析和解決。
2.2測試點(diǎn)不全面
在測試人員對數(shù)據(jù)進(jìn)行測試的時(shí)候,有時(shí)因?yàn)闃I(yè)務(wù)給出的要求不能覆蓋全部使用場景,導(dǎo)致部分?jǐn)?shù)據(jù)的測試結(jié)果不準(zhǔn)確,從而影響后續(xù)的數(shù)據(jù)分析和業(yè)務(wù)開展。造成這個(gè)問題也可能是其他原因,如不同的業(yè)務(wù)場景適用的數(shù)據(jù)要求不一樣,僵硬地套用測試規(guī)則就容易導(dǎo)致測試點(diǎn)不全面。因此,需要針對常用的業(yè)務(wù)場景設(shè)立通用的測試點(diǎn)標(biāo)準(zhǔn),對于具體業(yè)務(wù)還需要具體評估,而后分析和補(bǔ)充測試點(diǎn)[3]。
2.3測試時(shí)間較長
在一個(gè)完整的測試過程中,因?yàn)榭赡艽嬖诘捻?xiàng)目需求不明確,測試人員未在一開始就溝通或梳理清楚需要測試的要點(diǎn),以及多次重復(fù)測試,需要測試的數(shù)據(jù)量大小等,所以導(dǎo)致測試人員在一個(gè)完整的項(xiàng)目周期內(nèi)測試部分花費(fèi)的時(shí)間較長,從而影響整體的項(xiàng)目進(jìn)度,甚至提高時(shí)間和人力成本。因此,需要在開始階段,與開發(fā)、需求方進(jìn)行共同探討,如需要從哪些方面展開相關(guān)的測試,可以確保數(shù)據(jù)的可用性和正確性。
3數(shù)據(jù)遷移測試流程及方法
數(shù)據(jù)測試中需要對遷移后的數(shù)據(jù)進(jìn)行全面分析[4],厘清據(jù)遷移之后從哪些方面進(jìn)行數(shù)據(jù)測試。數(shù)據(jù)遷移測試應(yīng)關(guān)注如圖1、圖2、圖3所示方法流程。
3.1數(shù)據(jù)遷移測試內(nèi)容
數(shù)據(jù)遷移測試主要由測試人員完成,測試通過后由研發(fā)部門部署上線[5]。主要包含以下測試內(nèi)容:(1)對遷移后的數(shù)據(jù)進(jìn)行全面分析,厘清數(shù)據(jù)遷移之后需要從哪些方面進(jìn)行數(shù)據(jù)測試;(2)編寫soL語句,從數(shù)據(jù)庫里面獲取遷移前后的數(shù)據(jù);(3)利用Excel數(shù)據(jù)分析工具的數(shù)據(jù)排序、篩選、分列、去除重復(fù)項(xiàng)等功能建立數(shù)據(jù)遷移比對模板,提高測試過程的規(guī)范性,并且可以輸出一致的核對結(jié)果,該模板可以通用;(4)利用數(shù)據(jù)表的唯一關(guān)鍵字(如ID)、日期字段、時(shí)間字段以及其他可以進(jìn)行分區(qū)的字段對數(shù)據(jù)進(jìn)行分區(qū)分模塊的數(shù)據(jù)比對,通過并發(fā)的方式可以同時(shí)比對多個(gè)模塊的數(shù)據(jù),從而大大減少數(shù)據(jù)遷移測試的時(shí)間成本和人力成本,且數(shù)據(jù)的正確性能夠得到保證;(5)統(tǒng)計(jì)時(shí)間范圍內(nèi)總數(shù)據(jù)的條數(shù)是否相等,如果不相等說明數(shù)據(jù)質(zhì)量不符合要求,需要重新迭代數(shù)據(jù);(6)分析表結(jié)構(gòu)和注釋內(nèi)容是否符合規(guī)范,即兩張表的表名、字段名、注釋名等是否相同。如果不符合規(guī)范,說明數(shù)據(jù)質(zhì)量不符合要求,需要重新迭代數(shù)據(jù);(7)判斷迭代后的數(shù)據(jù)是否出現(xiàn)異常情況,如不允許空值出現(xiàn)的數(shù)據(jù)庫出現(xiàn)了空值的情況;(8)分析和統(tǒng)計(jì)數(shù)據(jù)遷移前后各個(gè)字段的值出現(xiàn)的頻次是否相等:(9)分析如果出現(xiàn)數(shù)據(jù)轉(zhuǎn)換,遷移后的字段數(shù)據(jù)是否符合數(shù)據(jù)轉(zhuǎn)換要求。比如,原字段為空值,轉(zhuǎn)換后為其他值的情況;(10)判斷(6)(7)(8)三項(xiàng)是否符合條件,不符合條件說明數(shù)據(jù)質(zhì)量不符合要求,需要重新迭代數(shù)據(jù);(11)抽取樣本數(shù)據(jù),對其中的數(shù)據(jù)進(jìn)行逐一比較和分析,以判斷遷移后的數(shù)據(jù)是否有出現(xiàn)變化。
3.2數(shù)據(jù)測試難點(diǎn)
在實(shí)際的測試過程中,常常會(huì)碰到以下難點(diǎn)。
(1)業(yè)務(wù)具有復(fù)雜性。測試人員對于不同的業(yè)務(wù)場景有一套通用的測試流程和標(biāo)準(zhǔn)。但問題在于,由于業(yè)務(wù)的復(fù)雜性,對于數(shù)據(jù)的使用有了更多、更高的要求,因此需要對每個(gè)業(yè)務(wù)場景進(jìn)行單獨(dú)分析——需要新增的測試點(diǎn),這對數(shù)據(jù)測試人員提出了更高的要求,需要花費(fèi)大量時(shí)間和精力去做測試分析,并且需要從一開始就參與到算法的討論和評審中,對整個(gè)過程達(dá)成一致之后才不會(huì)出現(xiàn)理解不同步的情況,從而導(dǎo)致實(shí)際效果不如預(yù)期[6]。
(2)測試流程不規(guī)范。正常的測試流程為:問題反饋給開發(fā)人員修改,修改完后再給測試人員進(jìn)行復(fù)測。在復(fù)測的過程中,因?yàn)闇y試人員的個(gè)人理解和技術(shù)手段等原因,對于測試方式、測試流程、測試點(diǎn)都會(huì)有自己的理解。如果遇到問題較多、復(fù)測流程不規(guī)范、不能對整個(gè)測試流程都了解清楚、業(yè)務(wù)經(jīng)驗(yàn)不足的情況,就會(huì)容易造成問題循環(huán)反復(fù),從而大量浪費(fèi)開發(fā)人員和測試人員的時(shí)間,并且提高了項(xiàng)目的時(shí)間成本[7]。
(3)沒有一套可行性高的測試方法或者自動(dòng)化程度高的測試工具和模板。在實(shí)際測試的過程中,因?yàn)槿狈ψ詣?dòng)化程度高的測試工具、平臺和模板,導(dǎo)致實(shí)際測試方式會(huì)因?yàn)闇y試人員本身的技術(shù)能力、業(yè)務(wù)經(jīng)驗(yàn)、個(gè)人理解等有很大的區(qū)別,如果出現(xiàn)測試人員離開,其他人員接手的情況,那么就需要花費(fèi)更多的時(shí)間且測試后的效果不可控[8]。
(4)整個(gè)項(xiàng)目的時(shí)間成本和人力成本不可控。因?yàn)樯鲜龅亩喾N原因,如業(yè)務(wù)的復(fù)雜性、測試流程的不規(guī)范、沒有一套可行性高的測試方法或者自動(dòng)化程度高的測試工具、模板等其他原因,每一因素出現(xiàn)都會(huì)對整個(gè)項(xiàng)目的時(shí)間成本和人力成本造成重大的影響,從而影響公司的項(xiàng)目進(jìn)度,甚至影響個(gè)人的能力評價(jià)等[9]。
3.3數(shù)據(jù)測試展望
自動(dòng)化的數(shù)據(jù)測試是最理想的目標(biāo),通過利用自動(dòng)化和智能化的測試工具,設(shè)立不同的測試規(guī)則和數(shù)據(jù)模型,一方面可以大大縮減通用測試需要的時(shí)間和流程,另一方面為更多業(yè)務(wù)場景的測試分析提供了更多的設(shè)計(jì)方法和可行性,能夠有效確保數(shù)據(jù)遷移后的數(shù)據(jù)的準(zhǔn)確性,從而實(shí)現(xiàn)對數(shù)據(jù)質(zhì)量的管理,降低了人力成本和時(shí)間成本[10]。
建立一個(gè)通用性高、適用性強(qiáng)的數(shù)據(jù)測試平臺也是一種可行的方式。通過在平臺上建立多樣化的數(shù)據(jù)遷移測試模板,從而能夠?qū)Υ蟛糠謽I(yè)務(wù)場景實(shí)現(xiàn)覆蓋,并且可以在平臺上對新的業(yè)務(wù)進(jìn)行二次開發(fā)。操作簡單、開發(fā)簡單也是其必須具備的能力,這有利于新的測試人員快速熟悉并且上手,從而大大減少在整個(gè)項(xiàng)目過程中數(shù)據(jù)遷移測試所花費(fèi)的時(shí)間,進(jìn)而降低公司項(xiàng)目成本。另外,對于從事數(shù)據(jù)測試的相關(guān)人員的能力培養(yǎng)也是一個(gè)重要課題。通過聘請行業(yè)內(nèi)的知名人士或者資深經(jīng)驗(yàn)者給公司員工進(jìn)行相關(guān)能力培訓(xùn),加上對應(yīng)的實(shí)戰(zhàn)演練,對測試人員的能力提升會(huì)有很大的幫助。與此同時(shí),測試人員要多把每一次的經(jīng)驗(yàn)累積總結(jié)下來,形成知識間的互通,有助于業(yè)務(wù)經(jīng)驗(yàn)的快速增長和測試能力的快速提高。
4結(jié)束語
本文主要介紹了一種用于數(shù)據(jù)遷移之后對數(shù)據(jù)準(zhǔn)確性進(jìn)行測試的可行性方法,即利用Excel數(shù)據(jù)分析工具的數(shù)據(jù)排序、篩選、分列、去除重復(fù)項(xiàng)等功能建立數(shù)據(jù)遷移比對模板,提高測試過程的規(guī)范性,并且可以輸出一致的核對結(jié)果,該模板可以通用:利用數(shù)據(jù)表的唯一關(guān)鍵字(如ID)、日期字段、時(shí)間字段以及其他可以進(jìn)行分區(qū)的字段對數(shù)據(jù)進(jìn)行分區(qū)分模塊的數(shù)據(jù)比對,通過并發(fā)的方式可以同時(shí)比對多個(gè)模塊的數(shù)據(jù),從而大大減少數(shù)據(jù)遷移測試的時(shí)間成本和人力成本,且數(shù)據(jù)的正確性能夠得到保證:提出了一種可行性較高的測試方法,用來規(guī)范數(shù)據(jù)測試流程,避免測試混亂的問題,完善測試邏輯,從而能夠有效確保數(shù)據(jù)遷移后數(shù)據(jù)的準(zhǔn)確性,實(shí)現(xiàn)對數(shù)據(jù)質(zhì)量的更好管理。