A few views on software testing _ Software Testing

Source: Internet
Author: User

Software testing, as an important means of software quality assurance, has aroused more and more attention of software users and developers. However, in the process of deepening the understanding of software testing, several problems should be clarified first.

Is it not a software test?

The world software market will have a rapid development, the application type is more and more complex, from the traditional client/server application, to the Internet/intranet application based on browsing, to the hybrid application and so on. In these massive, increasingly complex applications, due to the rich GUI objects, resulting in a large number of state combinations, software and hardware from different vendors, the program running environment complex, the version of the continuous upgrade and the use of a different version of a manufacturer, resulting in the program running environment often changed, the number of concurrent users gradually increased, Performance requirements continue to improve, and so on. Therefore, with the development of software industry, testing becomes inevitable.

According to statistics, in the total cost of software development, the cost of software testing accounted for 30% to 50%. If the maintenance phase is taken into account and the overall software lifetime is discussed, the cost proportion of the test may be reduced, but in fact the maintenance work is equivalent to two development, or even multiple development, which must also contain a lot of software testing work. Therefore, it is estimated that software work has 50% of the time and more than 50% of the cost spent on the test work. As a result, testing is necessary, and the problem is that we should think about what methods to use and how to schedule tests. ”

Test and debug can replace each other.

This process is called testing in order to determine whether the application system is qualified and to run in the system with a predetermined set of data and to compare it with the expected results. It is an important means of software quality assurance. However, some people often confuse testing with debugging, which is not true.

Simply put, testing is a test, and people will see some of the phenomena. These symptoms may be suspicious, but often cannot be traced directly to the results of the test. This requires a thorough analysis of the test results and the information provided by the test to find the source of the error and the cause of the error. This is followed by correcting the errors that have been found. The work that is done after the test is called debugging or scheduling errors.

We can't confuse the two. But they have a close relationship after all, often after testing to get out of line. In fact, these two kinds of work are often crossed and cannot be substituted for each other.

The scientific test should start when.

There is a traditional idea that: "The application system developed, and then test it." "It's quite dangerous to use this kind of thinking to guide testing."

The judgment of software quality is not limited to the program itself, it is closely related to the requirement analysis and software design work that was completed before coding. Clearly, errors in the program are not necessarily the result of coding, but are likely to be the result of detailed design, schematic design, and even the requirements analysis phase. Errors may have been a small hidden problem in the early stages, but they have been scaled up by the continuity of each development phase. If errors in early development are not found and solved in time, they will be brought to the design, coding, testing and other stages, the impact will gradually expand. This will require unnecessary human and material resources to correct the mistakes. Visible, solve problems, correct errors should be traced back to the early work, the sooner the better. Scientific testing is a test that runs through the entire product lifecycle.

With these in mind, we divide the tests into the following phases: module testing, integration testing, validation testing, and system testing. The smallest unit of the program--the module is tested, it is to verify that each module can work alone, thus discovering the coding problem and algorithm problem of the module, the integration test is to connect multiple modules to verify the interface design between the modules in the outline design, and confirm the test should be in the specification of the requirement as the Test standard. , and discovers the problem of requirement analysis; The final system test is to comprehensively test the development of software and hardware and other related factors (such as personnel operations, data acquisition, etc.), which involves software requirements and the relationship between software and other aspects of the system.

We should focus on the entire software lifetime, especially in the coding of the previous development phase of the test work to ensure the quality of the software, which will break the original understanding of the test. According to the research of the agency, the cost increases by 10% in the development cycle, every step of error checking is deferred. Therefore, the best start time to find and modify errors is in the design phase of the project, followed by every aspect of the development process, to ensure the synchronization of testing and development.

Can the software be thoroughly tested?

Since the purpose of the test is to find bugs in the software, in order to get high-quality software, you can use the test tool to find out all the hidden errors.

We know that only the application of each of the operating environment, statements, conditional branches, paths, and so on exhaustive test to ensure the thoroughness of the test. But often this practice is too heavy, the time spent too long, the actual is not realistic, and thus lost the practical value. The overall goal of software engineering is to make full use of limited human and material resources to complete the test development project efficiently and with high quality. Since exhaustive testing is unrealistic in the testing phase, in order to save time and resources and improve test efficiency, test cases must be carefully designed so that the best test results can be achieved by using these test data. It is important to master the degree of test quantity. An experienced software development manager who talked about software testing said: "Inadequate testing is stupid, and excessive testing is a sin." "Inadequate testing means that users are at risk for hidden errors, and excessive testing wastes a lot of valuable resources." By the end of the test, even if the error was found, however, the price has been paid too high. In short, the test is to make the software contained in the defects below a certain threshold value, so that the output/investment ratio to achieve maximum.

This article is reproduced from the 51Testing Software test network, see more: http://www.51testing.com/html/news.html

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.