Why do customers have the need for migration?
In general, the process of migration will inevitably have a certain impact on the operation of the current application system, resulting in a certain loss of customer turnover, at the same time customers have to invest a lot of manpower and resources to carry out the feasibility study, testing and implementation of the migration.
In general, the purpose of the migration is to obtain new versions of more sophisticated features, as well as the latest business models.
Of course, there are other reasons why customers are migrating applications, for example, as the customer's business continues to grow and the performance of the system is becoming increasingly demanding.
In short, the ultimate goal of enterprise-level application migration is to ensure that enterprise-class applications in the fierce market competition always maintain youthful vitality, invincible.
What are migration and migration tests?
To put it simply, product migration is the complete migration of all asset information from an older version of the application environment to the new version of the environment, while ensuring that the old version of the functionality works on the new platform, and that new features are working correctly.
The migration test validates the migration process and its migration results to ensure that the process and results are correct. In addition to its own test methods, the migration process will ensure the correctness and reliability of the migrated application environment by means of functional testing and performance testing.
How do I do a migration test?
To learn more about migration testing, you first need to understand the architecture of an enterprise application, then the content of the migration, and finally plan for the migration test in a targeted manner.
What is an enterprise-class application architecture?
In general, enterprise-class applications are a complete set of systems that provide a specific solution for a business organization or a large enterprise that includes the various components that support the application's operation:
Underlying operating system: Windows, Solaris, Plinux
Background database server: DB2, Oracle
User-facing Web server: IIS, SunOne
Middleware running the application: Tomcat
Enterprise-class applications deployed on top of middleware
Classification of enterprise-class application architectures
For an enterprise-class application, different solutions can be developed depending on the actual needs of the business. Enterprise applications can be divided into a variety of different perspectives:
By different topological structure: single node, dual node, multi-node
According to different server cluster environment: Vertical cluster, horizontal cluster, mixed cluster
Release by App Product: Enterprise, Pro, Lite
Operating platform by enterprise application: Production environment, development environment
What is included in the migration?
Basic software upgrades and installation of new versions of application products: the underlying software is the underlying software that supports enterprise application operations.
Database migration: Not refers to the database management system itself upgrade, but the old version of the database data structure and data migration to the new version of the application system, so that the data structure and data after the migration of the new version of the application system background database specifications and requirements.
Migration of applications: Migrating older versions of an application to a new version, after migration, ensures that the old version features are equally applicable, and that the functionality of the new version will work correctly.
Order of migration
In general, the first step in enterprise application migration is the upgrade of the underlying software and the installation of the new version of the application product, the second step is the database migration, the third step is to complete the application migration.
Issues of concern to customers during the migration process
On the one hand, customers focus on the simplicity, ease of use, and efficiency of the migration process. Thus, during the whole migration process, the less human intervention the better, as far as possible to achieve the entire migration process automation.
On the other hand, customers are concerned about the downtime of application systems before and after migration.
Downtime is the first factor to consider when enterprise applications are ported. The downtime in the whole migration process is generally affected by the migration time of the database.
Classification of migration tests
In the migration test, some of the test validation work is done on the migration environment, and some of the comparison validation needs to be done with different versions of the environment. Depending on the validation environment involved, the vertical migration test method and the horizontal migration test method can be divided into.
Vertical migration Test
The basic method of migrating tests when vertical migration tests, all validation is done on a system environment that is migrating from the old version to the new version. According to the Order of migration, the first is software upgrade test, database migration test, application migration test, followed by subsystem migration test, integrated system migration test, custom migration test, functional test, performance regression test, and migration extensibility test in the post-migration environment.
As a framework for a complete vertical migration test, vertical migration testing takes into account every functional point from the underlying software to the upper-level application.
Basic transformation-Software upgrade test: Software upgrade test is to ensure that the software that supports application running is installed or migrated correctly.
Customer data can not be lost-database migration test: The purpose is to ensure that the old database data structure, the database of encrypted and non-encrypted customer data are migrated correctly. Content: Database data structure and migration of data.
No less function points-application migration testing: Verifying the correctness of the application migration process and results. Content: Ensure that the application's configuration information is migrated correctly, that the new version of the application's functional modules are automatically loaded into the migrated application system, to ensure that the old version of the application server configuration information is correctly migrated to the new application system, to ensure that the old version of the Web server configuration information is correctly migrated to the new application system.
Subsystem Migration test: Verify the migration steps and the correctness of the migration procedures for these sub-modules.
Integrated System Migration Testing: Verify that the application itself and other applications are functioning as an integrated system after the migration is complete.
Customer-specific migration testing: A program that tests customers ' customized requirements for their business needs in an older version of the environment and whether they are properly migrated to the new system version.
Functional testing: Verify the integrity and correctness of application functions after migration. One is the functional testing of the pipeline data throughout the migration process, and the other is the functional regression test on the application system that is being migrated.
Performance testing: Compare the performance test results of the migrated application system with the performance test results of older versions, and expect the result to be no performance degradation, and performance metrics are acceptable to the customer.
Migration Extensibility Testing: Testing for big data volumes and large applications ensures that applications and data migrations can be completed correctly in an acceptable time.
The difference between a horizontal migration test and a vertical migration test
The vertical migration test and the horizontal migration test are not independent, and the horizontal migration test mainly applies to the database migration test and the application migration test in the vertical migration framework. The main difference between a horizontal migration test and a vertical migration test is that the former requires a comparison involving multiple application systems environments. Horizontal migration testing is a necessary complement to vertical migration testing, where vertical migration testing is primarily a bottom-up consideration for the entire application, while horizontal migration testing is primarily about comparing database and application migrations.
Horizontal migration Test
New version of data structure validation: Validating data structures first requires data structures to be typed into a file in a certain format for comparison validation, such as an XML file.
Business data validation: Includes data related to all business transaction processing.
Application configuration Information Validation: Ensure the correctness and consistency of the application configuration file after migration.
The parts of the horizontal migration test are relatively independent, and can be verified separately for both the database and the application, but they are all an integral part of the vertical migration test process.
Comparison of vertical migration test and horizontal migration test
Vertical migration testing is the basis for horizontal migration testing, and only a database migration or application migration in a vertical migration test is completed for horizontal migration testing.
Horizontal migration testing can detect problems early, without having to wait for the entire migration process to finish before starting.
The horizontal migration test focuses more on the accuracy of the data, and the vertical migration test pays more attention to the success of the system's overall functionality, performance, and so on.
Horizontal migration testing is relatively complex and requires comparing data, configuration files, and so on between different versions of the database. The vertical migration test requires only a single set of migration environments.
Other migration test content
Compatibility testing: The goal is to ensure that some of the factors that have been deployed on a previous version of a customer-customized application are able to deliver services normally, and that customers ' customized applications are unaffected so that customers do not have to rebuild or deploy their applications. The main factors affecting compatibility include: Development framework upgrade, API incompatibility, behavioral changes.
Migrating document Testing: The goal is to ensure the quality of the migrated documents and to ensure that customers can follow the correct migration documents to complete the migration of the customer application system.
Real customer environment Testing: Migration testing is an important validation method, which is necessary to ensure the correctness of the migration test, especially for performance verification.
Migration Security Test: File permission validation and sensitive data checking on the migration environment.
Choosing a Migration Test platform
Determine the migration path and platform support matrix and combine all the test configuration combinations to identify priority filtering.
Select a test case group
Basic test case groups include test cases for the main process of migrating tests: Software upgrade testing, database migration testing, application migration testing, subsystem migration testing, custom migration testing, and functional verification testing.
Extended test Case Group: Integrated system Testing
Advanced test Case groups: Migration extension testing, real customer data application testing, functional regression testing on a migration environment, and performance regression testing.
Tests for basic test case groups are tested on all configuration combinations, but different test cases can be covered in each test phase.
The extended test case group mainly covers and applies the migration of the associated integrated software, selecting tests or contingencies based on actual requirements.
Advanced Test Case Group testing is also a separate plan based on specific test requirements, with only a subset of the platform combinations to be selected for testing.
Summarize
Migration is from the previous version of the system environment to the latest version of the system migration, the migration scenario is as follows:
To perform migration and migration testing on a test environment:
- Complete the server Upgrade test
- Install a new version of the application system and deploy a test application environment: On the one hand, by enabling the test application system, verifying some of the application's simple functions and business processes to ensure that the new version of the application is not a problem, on the other hand, the test application system created by the database and application can be used as a comparison object for horizontal migration test. is the benchmark for horizontal migration test validation.
- migrating databases and completing database migration tests
- Migrating apps and completing app migration tests
To perform migration and migration testing on the development environment:
- Customer-specific migration testing
- Deploy customer customizations after migration on the development environment to a test environment that completes the migration
Functional testing and performance testing on a test environment after migration
Start a migration test of the production environment, ensuring that the previous functional and performance tests are correct
In order to minimize the impact of customer application downtime, the migration of the production environment is divided into the following steps:
- Select a software upgrade scenario based on the customer's resource status while keeping the previous version of the production environment running
- Install a new version of the app product
- Migrating apps
- Deploy customer customizations that complete the migration to a new production environment
- Stop the external service of the old version of the application system and complete the migration of the production environment database
- Enable the new version of the app
- Functional testing and performance testing on post-migration application Systems
Migration testing of software testing