As we all know, in the software testing industry, the software is often measured by the number of software bugs to measure the quality. When a software Test team discovers a large number of bugs, the quality of the software is considered to be at a low level. When fewer bugs are found, the software is considered to be of high quality. The goal of the test is to find more bugs, but testers often ignore the more essential things of software testing in order to find more bugs. The ultimate goal of software testing is to provide customers with satisfactory products and services. Therefore, only really to understand, familiar with and analysis of the customer's concerns, including customer use purposes, customer use expectations, customer deployment environment, customer data and even customers use habits to better improve the focus and direction of testing in essence, grasp the essence of testing, to provide customers with high-quality products.
The current issue
Software testers generally encounter such problems. A software (project), in the testing process will often find hundreds of or even thousands of bugs, test team managers and all the testers think that found so many defects, the software should have been strictly, the final delivery to the customer's software should be more qualified, to There is no high level or serious impact on customer use of the defects were found by customers. However, when the software is deployed into the production line by the customer, a large number of defects are reported by the customer, and these defects are ignored by the Test team in the test. Careful analysis is mainly caused by the following reasons.
The intensity and depth of the tests are not enough.
The first is the shortage of human resources and time. Usually a product test, often a tester is responsible for several modules. The testers on the project are responsible for setting up the environment, writing the test cases, executing the test and making the final report. Every step of the test is time-consuming and difficult to do in parallel, ultimately resulting in hard and deep testing. Sometimes some project customers require a tight delivery time, so the final test, even if it can reach the standard, will still expose many of the problems we missed in the test. The second is to encounter some special circumstances. When a new version of the product is on a tight test ready to be delivered on time, and the customer is using the previous version of the software encountered an emergency problem, the need for the Test team to enter the 7*24-hour resolution state, this time will inevitably affect the new software testing quality. In addition, the uncertainty of requirements design and later changes can also lead to such problems.
A project development and testing team is required to provide a solution in the short term when solving a customer's emergency problem caused by a software defect that seriously hinders the customer's normal work. Because of the complexity of the problem, the development team spent most of their time solving the problem. As the delivery time has been set, the time left to the Test team has not been able to complete a certain degree of strength and depth of testing, the lack of human testing team can only ensure that the original software defect itself is resolved, while the product's large function to ensure availability, very important expansion test due to time problems were omitted It can be imagined that in the customer's environment, the solution to the defect caused by the regression problem by the customer found. This regression flaw will not occur if the time and manpower Test team completes the extended test. Therefore, only adequate testing time and sufficient testers can ensure the strength and depth of the test, thereby improving the software quality.
The different environments, including the hardware and software environments.
Most test teams are testing with a very good hardware environment for simulation tests. The client mainly uses the notebook computer to simulate, the service end uses the desktop or some virtual machines and so on. These devices are often a relatively high configuration, and the computer communication between the network is basically wired network, the speed is very high. At the customer site, the device environment for deploying our products is difficult to match with the Test team's excellent testing environment. Client clients have very low configuration, network is slow, wired network and wireless network, such as Figure 1: Customer Test team Environment contrast map. In addition, some unexpected events in customer environment, such as the instability of wireless networks, the sudden disconnection of wired networks, and the failure of equipment, can cause some low-level but very serious software defects.
The environment in which a customer deploys software belongs to a client-side mismatch, a slow and unstable wireless network. In a good test environment test through the delivery of the product in the customer's deployment environment, when the client and the server to upload the download interaction, the client's software crashes, the data can not be transmitted correctly to the server. At the same time, in the server log, a large number of interactive errors are recorded.
There is the simulation software environment, mainly the data environment. Test teams often test by creating a new set of accounts in a clean system, manually or automatically starting some simple data, and then assigning responsibilities for testing. The situation in the customer environment is more complex and the data used is more complex. The customer is accustomed to install and upgrade on the basis of the original data.
When a customer uses a previous version of the software, some projects are created and some data is stored. When upgrading a new version of the software installed, some features will be unavailable, or the customer's data loss, this will be a serious problem. Complex logical data created by customers can often detect defects in a product that the Test team cannot discover with simple data.
So to simulate the customer's hardware environment and software environment to find some of the problems ignored in the test.
Figure 1. Customer Test Team Environment comparison chart
The entire test process does not stand on the customer's point of view, focusing on the customer focus on software testing.
Before testing the software, the tester will, first of all, follow the FDD (functional design document) and TDD (technical design document) of the tested module and eventually form a test case document of the tested module through his own understanding of the module and discussion with the corresponding developer. When testing, follow the test cases, and test data prepared by the tester themselves, down through the menu. The testers ' experience accounted for a large proportion of such subjective tests. Such tests, which can be called functional testing, are not fully known as business tests. It can ensure that the measured function point is normal, but does not really stand on the customer's point of view, to understand, analyze the customer's concerns of the business, including customer use purposes, customer use expectations, and even the use of customer habits. Testers have detected a lot of flaws in a function point in this module, but in the customer's business, a frequently used function point has not been valued by testers. A customer's business is to use the data collection in business analysis for a telephone interview on a project, which is mainly to obtain satisfaction from some countries in the world, such as the United States, India, Malaysia and other people on credit card business. Customer interviews in the United States project, product normal. Because the default language of the software is Chinese (unitedstates), the software is carefully and thoroughly tested before delivery. However, in the Indian interview program, as the respondents were Indians, when the software language was set to Chinese (India), customers found that many software features are not available. If the test team has carefully analyzed the customer's business, it will know that the customer has an institutional presence in India and that a large number of businesses are running in India. Therefore, the software language is set to Indian English after the function of correctness will be a very important point of measurement.