客戶為什么會有遷移的需求?
一般而言,遷移的過程勢必對當前應用系統運行產生一定的影響,從而會給客戶的營業額帶來一定的損失,同時客戶還得投入大量的人力物力進行遷移的可行性研究、測試及實施等工作。
一般而言,遷移的目的是為了獲取新版本更加完善的功能,以及最新的業務模式。
當然,還有其他一些原因促使客戶去遷移應用,例如,隨着客戶業務的不斷增長,對系統的性能要求越來越高。
總之,企業級應用遷移的最終目的在於保證企業級應用在激烈的市場競爭中始終保持青春活力,立於不敗之地。
什么是遷移和遷移測試?
簡單來講,產品遷移是將舊版本的應用系統環境所有資產信息完整地遷移到新版本的環境之上,同時要保證舊版本的功能在新的平台上正常運行,並且新版本的新增功能也能正常工作。
遷移測試是對遷移過程及其遷移結果進行驗證,從而保證過程和結果的正確性。遷移過程中除了會應用到自身特有的測試方法以外,還會借助於功能測試、性能測試等來保證完成遷移的應用系統環境的正確性和可靠性。
如何做遷移測試?
要想深入了解遷移測試,首先需要理解企業級應用的架構,然后是遷移的內容,最后才能有的放矢地制定遷移測試的計划。
什么是企業級應用架構?
一般來說,企業級應用是為商業組織或大型企業提供特定解決方案的一套完整系統,該系統包含了支持應用程序運行的各個組成部分:
底層的操作系統:Windows, Solaris, pLinux
后台數據庫服務器: DB2, Oracle
面向用戶的Web服務器:IIS, SunONE
運行應用程序的中間件:Tomcat
部署在中間件之上的企業級應用
企業級應用架構的分類
對於一個企業級應用程序,根據企業業務實際需求的不同,可以制定不同的解決方案。而企業級應用可以從下面各種不同的角度來划分:
按不同的拓撲結構分:單節點,雙節點,多節點
按不同的服務器集群環境分:垂直集群,水平集群,混合集群
按應用產品發布的版本分:企業版,專業版,簡裝版
按企業應用運行平台分:生產環境,開發環境
遷移包括哪些內容?
基礎軟件的升級和新版本應用產品的安裝:基礎軟件是指支持企業應用運行的底層軟件。
數據庫的遷移:不是指數據庫管理系統本身的升級,而是將舊版本的數據庫中的數據結構及數據遷移到新版本的應用系統之上,使得遷移之后的數據結構和數據符合新版本應用系統后台數據庫的規范和要求。
應用程序的遷移:將舊版本的應用程序遷移到新版本,遷移之后保證舊版本功能同樣適用,同時將新版本的功能也能正常工作。
遷移的順序
一般而言,企業級應用遷移的第一步是基礎軟件的升級和新版本應用產品的安裝,第二步是進行數據庫遷移,第三步完成應用遷移。
遷移過程中客戶關注的問題
一方面,客戶關注遷移步驟的簡單性、易用性及遷移流程的高效性。因而在整個遷移過程中,人工干預越少越好,盡可能實現整個遷移過程的自動化。
另一方面,客戶關注遷移前后應用系統的宕機時間。
宕機時間是企業級應用作移植時第一要考慮的要素。而整個遷移過程中的宕機時間一般受數據庫的遷移時間影響比較大。
遷移測試的分類
在遷移測試中,部分測試驗證工作是在遷移環境上進行的,還有一部分比較驗證需要借助於不同版本的環境來完成。根據涉及的驗證環境的不同,可分為垂直遷移測試方法和水平遷移測試方法。
垂直遷移測試
垂直遷移測試時遷移測試的基本方法,所有的驗證都是在完成從舊版本到新版本遷移的系統環境上進行的。按照遷移的先后順序,首先是軟件升級測試、數據庫遷移測試、應用遷移測試,其次是在遷移之后的環境上進行子系統的遷移測試、集成系統遷移測試、客戶定制化遷移測試、功能測試、性能回歸測試、遷移擴展性測試。
作為一個完整的垂直遷移測試的框架,垂直遷移測試需要考慮從底層基礎軟件到上層應用的每一個功能點。
基礎改造——軟件升級測試:軟件升級測試是保證支持應用運行的軟件都被正確地安裝或遷移。
客戶數據不能丟——數據庫遷移測試:目的在於保證舊的數據庫數據結構,數據庫中加密的及沒有加密的客戶數據都被正確地遷移過來。內容:數據庫數據結構和數據的遷移。
功能點不能少——應用程序遷移測試:驗證應用程序遷移流程和結果的正確性。內容:確保應用的配置信息被正確地遷移,確保新版本應用的功能模塊被自動地加載到遷移之后的應用系統中,確保應用服務器舊版本的配置信息被正確遷移到新的應用系統中,確保Web服務器舊版本的配置信息被正確遷移到新的應用系統中。
子系統遷移測試:驗證這些子模塊的遷移步驟和遷移程序的正確性。
集成系統遷移測試:驗證應用軟件本身和其他應用作為一個集成系統在完成遷移后,能正常工作。
客戶定制化遷移測試:測試客戶在舊版本環境上根據自身業務要求的需要進行定制的程序,是否被正確地遷移到新系統的版本。
功能測試:驗證遷移之后的應用系統功能的完整性和正確性。一種是貫穿整個遷移過程的管道數據功能測試,另一種是在完成了遷移的應用系統上的功能回歸測試。
性能測試:比較遷移之后的應用系統的性能測試結果和舊版本的性能測試結果,期望結果是沒有性能的下降,性能指標對於客戶而言是可以接受的。
遷移擴展性測試:針對大數據量和大型應用的測試,保證應用和數據遷移能夠在可以接受的時間內正確完成。
水平遷移測試與垂直遷移測試的區別
垂直遷移測試和水平遷移測試不是相互獨立的,水平遷移測試主要運用於垂直遷移框架中的數據庫遷移測試和應用遷移測試。水平遷移測試與垂直遷移測試的主要區別在於前者需要涉及多個應用系統環境的比較。水平遷移測試是垂直遷移測試的必要補充,垂直遷移測試主要對整個應用的一個從底向上的完備的考量,而水平遷移測試主要是考慮數據庫和應用程序遷移前后的比較。
水平遷移測試
新版本數據結構驗證:驗證數據結構首先需要將數據結構按照類型以一定的格式倒入一個文件中以進行比較驗證,如XML文件。
商業數據驗證:包括所有商業事務處理相關的數據。
應用配置信息驗證:保證遷移后應用配置文件的正確性和一致性。
水平遷移測試的各個部分相對獨立,對於數據庫和應用可以分開進行驗證,但它們又都是垂直遷移測試流程中不可或缺的一環。
垂直遷移測試與水平遷移測試的比較
垂直遷移測試是水平遷移測試的基礎,只有完成了垂直遷移測試中的數據庫遷移或應用程序遷移才能進行水平遷移測試。
水平遷移測試能在早期發現問題,無須等待整個遷移流程結束后再開始。
水平遷移測試更多地關注數據的准確性,垂直遷移測試更多地關注系統的整體功能、性能等的遷移是否成功。
水平遷移測試相對復雜,需要比較不同版本數據庫之間數據、配置文件等內容。垂直遷移測試只需要一套遷移環境。
其他遷移測試內容
兼容測試:目的在於確保以前的地版本上部署的經客戶定制過的應用所依賴的一些因素能夠正常地提供服務,而使客戶的定制應用不受影響,從而客戶無須重新構建或部署他們的應用。影響兼容性因素主要有:開發框架升級,API的不兼容性,行為的變化。
遷移文檔測試:目的在於保證遷移文檔的質量,確保客戶能夠遵循正確的遷移文檔完成客戶應用系統的遷移工作。
真實客戶環境測試:遷移測試重要的驗證方式,對於保證遷移測試的正確性,特別是對於性能方面的驗證是非常必要的。
遷移安全性測試:在遷移環境上進行文件權限驗證及敏感數據檢查。
選擇遷移測試平台
確定遷移路徑和平台支持矩陣表,合並羅列所有測試配置組合,識別優先級進行篩選。
選擇測試用例組
基本測試用例組包括遷移測試的主要流程的測試用例:軟件升級測試、數據庫遷移測試、應用程序遷移測試、子系統遷移測試、客戶定制化遷移測試、功能驗證測試。
擴展測試用例組:集成系統測試
高級測試用例組:遷移擴展測試、真實客戶數據應用測試、遷移環境上的功能回歸測試和性能回歸測試。
基本測試用例組的測試在所有的配置組合上都得測試,但在每個測試階段,可以涵蓋不同的測試用例。
擴展測試用例組主要涵蓋和應用相關的集成軟件的遷移,根據實際需求選擇測試或者不測。
高級測試用例組測試也是根據具體的測試要求單獨計划,只需要選擇部分平台組合進行測試。
總結
遷移是從舊版本的系統環境到最新版本的系統遷移,遷移場景如下:
在測試環境上進行遷移和遷移測試:
- 完成服務器升級測試
- 安裝新版本的應用系統並部署一個測試用的應用環境:一方面通過啟用測試應用系統,驗證應用的一些簡單功能和業務流程來保證新版本的應用沒有問題,另一方面,測試應用系統創建的數據庫和應用可以作為水平遷移測試的比較對象,是水平遷移測試驗證的基准。
- 遷移數據庫並完成數據庫遷移測試
- 遷移應用並完成應用遷移測試
在開發環境上進行遷移和遷移測試:
- 客戶定制化遷移測試
- 將開發環境上遷移之后的客戶定制化程序部署到完成了遷移的測試環境上
在遷移之后測試環境上進行功能測試和性能測試
在確保上一步功能測試和性能測試都正確的前提下,開始進行生產環境的遷移測試
為了將客戶應用宕機的影響降到最低,生產環境的遷移分為以下幾步:
- 在保持舊版本生產環境運行的情況下,根據客戶的資源狀況選擇軟件升級方案
- 安裝新版本的應用產品
- 遷移應用
- 將完成遷移的客戶定制化程序部署到新的生產環境中
- 停止舊版本的應用系統的對外服務,完成生產環境數據庫的遷移
- 啟用新版本的應用
- 在遷移之后的應用系統上進行功能測試和性能測試