Upgrade testing is a very important part of software testing, there are many aspects to consider, such as whether the user data is fully saved, upgrade failure how to recover, and so on testers to develop test strategies and write test cases pose a certain challenge. Here I do according to the recent project to do a mindmap to simply introduce the idea of testing strategy for your reference (of course, different products will have different upgrade test strategy, should not generalize).
First, a brief introduction to the product background:
- The traditional business management system
- Environment deployment is more complex (requires more virtual machines and third-party software dependencies)
- Large amount of user data (DB)
- More user settings (permissions, etc.)
- Higher requirements for downtime
Here are the Mindmap:
Pre-upgrade Preparation
1. Generate test data for simulated user scenarios
At this stage, users are required to use the system for research and analysis, to list common user actions, to generate the widest possible user data coverage (can be prioritized). In addition, if you can obtain user data (database backup), it is best to consider doing the upgrade test with user data.
2. Simulating user Environment configuration
This part also needs to obtain the customer configuration information, simulates the customer real environment with the test environment as far as possible.
3. Backup work
After you have prepared your customer data and environment, you need to back up as many raw data as possible, including database backups, configuration file backups, product file backups, and more. If you have conditions, you can create a mirror of the environment.
Upgrade process
1. Deployment mode
For the deployment mode we need to consider whether it is all in one or distributed mode. The app for mobile phones is the equivalent of using simulator or real machines.
2. Version check
This is also more important, for which versions can be upgraded needs to be clearly defined.
3. Pre-condition Check
It is also necessary to check for third-party software that is dependent on the product. First, determine if the third-party software required for the new version of the product is installed? Version right? OS version, right? Whether it is necessary to upgrade, etc. for strict inspection to prevent the irreversible after installation.
4. Inspection and update of installation parameters
Many large-scale software in the installation process has parameter configuration, this phase check includes the previous version of the default parameters, the new version of the previous version of the default parameter values of the changes and new version of the new parameter values added.
5. Backup Policy
A good upgrade program must have a good backup mechanism to prevent errors in the upgrade process caused by irreversible. Of course, the backed up file depends on the characteristics of the product itself, not every file needs to be backed up, because when the user file is very large, all backups consume too much time. Our recommended strategy is to back up the files that the user is most concerned about and to be easy to recover.
6. Failure retry mechanism
It is often easy to fail during the upgrade process, and it is important to continue the upgrade after resolving the failed issue.
7. Old and new modules
After the installation is complete, you need to verify that the modules added by the new version are installed successfully and that previous versions of the old modules were successfully deleted.
8. Retention and update of user data
This section typically consists of two modules: database and User Configuration information
The comparison to the database can be:
A. Comparison of user data in the new and previous versions of the upgraded database (check that user data is retained)
B. Comparison of new and newly installed new versions after upgrade (check database structure consistency)
C. Comparison of new and newly installed new version database default data (verify the accuracy of default data)
For comparison of configuration files:
A. Comparing the new version with the previous version profile (to ensure the user's configuration retention in previous versions)
B. Comparison of new and newly installed new version configurations (ensure configuration structure and data are correct)
9. Product file Update
After installation, ensure that the file version of the product is updated, and that the files that need to be deleted and added are correct.
10. Log Management
Log is also an important piece, the verbosity of the log can be based on the product to determine, the purpose is to upgrade the failure to be able to quickly locate the problem
Non-functional testing
The need for non-functional testing needs to be based on the characteristics of the product itself, generally need to be considered in terms of upgrade time and system resource consumption
Negative test
This section is used to identify and record the processing power of the upgrade program in exceptional cases, such as: Disk full, low memory, interrupt during upgrade, and so on.
Regression test
Regression testing is the product function after the upgrade test verification, need to follow the Product module additions and deletions to return to ensure that after the upgrade product function is normal.
OK, simply introduce so much, I hope to help everyone's daily work, of course, the most hope is that we can put forward suggestions for improvement, thanks.
How to do the upgrade test