software compatibility and software compatibility testing
(1) What is software compatibility
A lot of things can coexist peacefully, chocolate and peanuts are a good example if you like to eat peanut candy. However, we also know that water and oil are incompatible. As we focus on creating a complex, large application, developers must work very hard to make the software they are developing run in the desired environment and avoid incompatibilities. But with the complexity of software development, different platforms, different application software diversification, and different software implementation methods of diversification, unpredictable situation more and more, to avoid software incompatibility is also becoming more and more difficult.
In general, compatibility refers to the ability to accommodate multiple aspects, such as you can get along with friends, it is compatible with each other, if you get along with a very tacit understanding, is very good compatibility. In the same way, compatibility in computer terminology refers to the degree of coordination between several hardware, software, or hardware. Relative to software, it means that a software can work stably in an operating system/platform. Said this software is compatible with this operating system/platform, and then in the multitasking operating system, several simultaneous running software if can work stably, said these several software compatibility is good, otherwise is the compatibility is not good.
Another scenario is software-shared data, which eliminates the need for complex transformations between several software, i.e., the ability to easily share data between each other, also known as compatibility. Therefore, software compatibility is an important index to evaluate the quality of software. In this sense, software compatibility is the biggest obstacle to software promotion, such as in the history of Microsoft spent the most human and financial resources of the Vista system, released for a long time is still not popular applause, is said to be one of the reasons for software compatibility most users criticized.
(2) What is software compatibility test
As the software is gradually being marketed and installed by more users, the problem of compatibility is becoming more and more apparent. Theoretically any two software conflicts between the possible, so software compatibility has become a measure of software quality is an important indicator. Compatibility testing refers to testing software in a specific hardware production platform, between different applications, different operating system platforms, different networks and other environments can be well run test. To put it simply, compatibility testing means testing the coordination of a newly developed software with a variety of software in a given environment, and whether it works well between software. For example, whether there will be adverse effects, and software and hardware can play a very good efficiency work, will not affect or lead to the collapse of the system, and so on.
(3) The difference between configuration test and compatibility test
In our software testing, we often have two confusing concepts, which are specifically listed here to analyze. Configuration testing refers to verifying that the application works correctly under different hardware configurations and software configurations. The purpose of the configuration test is to ensure that the software works properly on its associated hardware, and the compatibility test is primarily to test whether the software can collaborate correctly with different software.
The core of configuration testing is to use a variety of hardware to test the operation of the software, generally include: first, the software on different host platform operating conditions, such as the Dell Platform and Sun platform, and the second is the software on different components of the operation of the three is different peripherals and different operating conditions under the interface Finally, there are different options available, such as different hardware and software and network environments that you can choose from.
And the core content of compatibility testing: one is to test whether the software can be compatible on different operating system platforms, or whether the software can be compatible with different versions of the same operating system platform. The second is whether the software itself can be forward or backward compatible; third, the test software can be compatible with other related software; Data compatibility test, Mainly refers to whether the data can be shared and so on. So, configuration testing and compatibility testing are important for software development, but the core content they are testing and focusing on is different.
The main content of software compatibility test
(1) Operating system/platform compatibility test
There are many different types of operating systems on the market, the most common being Windows, Unix, Macintosh, Linux, and so on. Which operating system the end user of the application is using depends on the configuration of the user's system. In this way, compatibility problems may occur, and the same software may run correctly under some operating systems, but may fail to run under another operating system. Therefore, the ideal software should have platform-independent nature.
Of course, some software is only for a series of operating system platform to develop, there is no cross-platform requirements. But there are multiple versions of the same operating system, for example, Windows systems also have different serial version numbers, such as Windows 2000/xp/vista, which may also have many different component properties. As a result, some software may need to be recompiled on different operating system platforms before it can be run, and some software needs to be redesigned or modified to run on different platforms. Therefore, prior to the release of the software, the application software needs to be tested for compatibility under various operating systems.
(2) Compatibility test between application software
The main research two content: first, software operation needs which application software support. The second is to judge the use of other common software, whether it will cause other software to run wrong or itself can not correctly implement its functions.
(3) Compatibility test between different browsers
Now a lot of applications are using B/s structure, their clients are using browsers. As a result, browsers are the core components of Web clients, but browsers from different vendors have different support for Java, JavaScript, ActiveX, plug-ins, or HTML specifications. For example, ActiveX is a Microsoft product, designed for Internet Explorer, JavaScript is Netscape's product, Java is Sun's product, and so on. In addition, the frame and hierarchy styles are displayed differently in different browsers, and are not even displayed at all. Different browsers do not have the same security and Java settings. Therefore, testing the adaptability of different vendors and different versions of browsers to some components and settings is one of the key points of software compatibility testing.
(4) Different types of database compatibility tests
Now many software, especially ERP, CRM and other software need database system support, such software should consider the different database platform support capabilities, such as from the BD2 platform to the MSSQL platform, the software can directly hook, or provide relevant conversion tools. There are problems with the new and old data conversion, whether the software provides new and old data conversion capabilities. For example, a new data format or file format may be defined after the software is upgraded, which involves supporting and updating the original format, and whether the original user record is still available in the new format. In addition, you need to test the integrity and correctness of the data during the conversion process.
(5) Compatibility test of software and hardware coordination
Inspect the software to run the hardware environment has no special instructions, some software may be in different hardware environment, there are different operating results or can not be implemented at all.
some suggestions on software compatibility test planning
Anyone with experience in software compatibility testing understands that compatibility testing may not be a complete quality assurance, but compatibility testing is one of the essential steps. Therefore, for software development, ignoring the software compatibility test, will lead to users in the use of the probability of the failure of the compatibility of the higher. Therefore, how to plan the appropriate compatibility test for this software product with limited cost and resource considerations is the focus of all compatibility test technicians.
(1) Evaluate the software application environment and formulate the test plan
Investing and planning an effective compatibility test is believed to make many software vendors hurt their brains, how much equipment to invest, how many people to invest, how many compatibility tests to test will completely affect the final cost of software products. Software vendors want to focus on and invest in research and development, but also want to save costs to do the compatibility test, only to evaluate the software application environment, targeted to develop a compatibility test plan, in order to take into account the cost and product compatibility quality quality.
(2) testing on a variety of platform/application environments
The installation of a variety of platforms and simulated application environment for testing, but the disadvantage is that it is difficult to cover all platforms. The successful development of a software PRODUCT is not only the process of writing the service function for the user, but also the reliable operation in the users ' environment. Therefore, the completion of the software program writing, in fact, only half of the development task, the software to simulate the user environment for compatibility testing is no less important than the development of the program itself.
(3) Consider the beta test
Large general-purpose software usually needs to perform alpha and beta tests before it is released, in order to test the functionality and performance of the software from the point of view of the actual user to discover errors that may only be discovered by the end user.
The Alpha Test (alpha test) is conducted in-house within the Test team, with more testing methods, black boxes, white boxes, stress, stress, and so on. Beta testing (Beta testing) refers to exposing a test to a given user, such as selectively inviting some end users to actually use it, and returning the problem to the site for modification. In a beta test, distribute multiple copies to test users and have them fill out test reports, write down all the problems they encounter, report to the developer on a regular basis, and make changes to the developer after synthesizing the user's report.
Beta testing is one of the common ways to test many software tests in large scale before they are finally marketed. This approach can cover a variety of hardware and software platforms, although time-consuming and costly, but because beta testing can test the software's support and compatibility. Therefore, the beta test is an effective compatibility testing method.