我第一家公司做過(guò)一個(gè)項(xiàng)目,我們的軟件上線之前,客戶已經(jīng)應(yīng)用了一套軟件長(zhǎng)達(dá)幾年時(shí)間,老系統(tǒng)中存在上百萬(wàn)條數(shù)據(jù),我們的項(xiàng)目的一部分工作,就是將老的數(shù)據(jù)遷移到新的系統(tǒng)中,保證新的系統(tǒng)能夠正常使用。
這類的數(shù)據(jù)遷移在現(xiàn)在的軟件項(xiàng)目中會(huì)經(jīng)常出現(xiàn),我現(xiàn)在的公司又一次面對(duì)這個(gè)問(wèn)題。
主要的思路就是完整性、正確性可使用性這三方面,下面講下我們當(dāng)時(shí)所做的測(cè)試設(shè)計(jì)和思路:
在開始之前我們需要一個(gè)完整的數(shù)據(jù)結(jié)構(gòu)的文檔,包括老的系統(tǒng)和新的,這樣你才能有依據(jù)去設(shè)計(jì)和執(zhí)行測(cè)試。跟遷移組要,他們?nèi)绻焕斫庑吕舷到y(tǒng)的數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu),很難想象他們是怎么遷移的。
1、老的數(shù)據(jù)是否全部被導(dǎo)入到新系統(tǒng)中,你可能要追蹤很多表中的很多數(shù)據(jù)字段。
如老系統(tǒng)中有100W條數(shù)據(jù),導(dǎo)入新系統(tǒng)后,數(shù)據(jù)條數(shù)仍為100w條(有些數(shù)據(jù)遷移后,新系統(tǒng)有新的存儲(chǔ)規(guī)則,或業(yè)務(wù)邏輯變化,比如ID相同合并,條數(shù)不是以相同的數(shù)量顯示,那么我們要知道換算關(guān)系,然后進(jìn)行校驗(yàn))
對(duì)老系統(tǒng)中全部有價(jià)值數(shù)據(jù)字段(對(duì)客戶有意義的,或者說(shuō)新系統(tǒng)要用到的),我們要逐一驗(yàn)證,新庫(kù)中能夠找到與之對(duì)應(yīng)的字段。
2、老的數(shù)據(jù)在新的庫(kù)中,是以正確的形式存儲(chǔ)的。
如果數(shù)據(jù)在老庫(kù)中是一個(gè)值,我們將他追蹤到新的庫(kù)中,看值是否正確。如果到新庫(kù)中值需要做相應(yīng)變化,我們要按照邏輯去校驗(yàn),是否變化的正確。
有些在老庫(kù)中是狀態(tài)位,如老系統(tǒng)中性別字段包括4個(gè),分別是0(男)、1(女),2(未登記),3(不詳);而新系統(tǒng)中性別是男、女、未說(shuō)明,我們要測(cè)試至少4條數(shù)據(jù),查看0到新系統(tǒng)中,對(duì)應(yīng)了男,1對(duì)應(yīng)了女,3、4都對(duì)應(yīng)了未說(shuō)明。
還有一些老數(shù)據(jù),到新的庫(kù)中需要有新的顯示模式,比如以前工號(hào)只有5位,到新系統(tǒng)中自動(dòng)升級(jí)為10位,我們要跟蹤升級(jí)是否正確
3、老的數(shù)據(jù)關(guān)聯(lián),在新庫(kù)中是否仍然正確關(guān)聯(lián)
比如個(gè)人工資等信息,每個(gè)數(shù)據(jù)都應(yīng)對(duì)應(yīng)一個(gè)人員,到新的系統(tǒng)后,人員信息表發(fā)生變更,那么老的工資信息到新庫(kù)中,是否還能正確對(duì)應(yīng)人員。這種對(duì)應(yīng)關(guān)系我們要跟蹤幾條數(shù)據(jù)(根據(jù)業(yè)務(wù)邏輯,覆蓋可能的全部狀態(tài)),查看到新系統(tǒng)后,各個(gè)數(shù)據(jù)是否正確對(duì)應(yīng)。
4、關(guān)注特殊數(shù)據(jù)對(duì)象
有些數(shù)據(jù)是比較大的附件,在新的數(shù)據(jù)庫(kù)中是否有正確的空間存儲(chǔ),我們需要關(guān)注這些大的對(duì)象,遷移到新的庫(kù)中,是否正確被保存和能夠繼續(xù)使用。
5、從業(yè)務(wù)層面去驗(yàn)證老數(shù)據(jù),在新系統(tǒng)中的應(yīng)用。這個(gè)就是用新的系統(tǒng),用導(dǎo)過(guò)來(lái)的數(shù)據(jù)跑下全部功能。