How to overcome the dilemma of software testing

Source: Internet
Author: User

With the development of information technology in different industries in China, people no longer doubt the huge effect of software on social operation. However, with the increasing expectations of software, more and more people have shifted their focus to software reliability. Therefore, domestic software testing companies or evaluation centers have sprung up.

Software testing is not a panacea

During the development of the software testing market, we found this problem: many companies think that software testing is really important, so they proposed that I will executeProgram(Or you have not written a complete user manual). You can test it for me ("sorry,CodeNo, because it involves property rights issues "); if the test is passed, the user should no longer ask questions. If the end user asks a question, the Enterprise will find the software testing company: "Look, what did you do? The user asked a question. Why can't you find the question through the test ?".

We also encountered such a situation that software developers and users in a certain place had many disputes over software quality. So the company found us and said, "Since you are an expert in software testing, let's test it. As long as the testing cost is less than 20 thousand RMB, we will introduce you to the business ." In the end, we did not dare to take on such a business, because we were worried that we would fall into a dilemma. Therefore, we can also see that there are some misunderstandings in people's understanding of software testing.

For the aviation industry's highest level of software, in order to ensure its reliability, the content of the test includes the syntax rule check and program analysis, condition coverage, boundary coverage, statement branch coverage, requirement coverage, robustness, functionality, and input/output tests. All tests are passed, only the defect probability of 10-9 can be guaranteed.

Therefore, software testing is an important part of improving software quality and reliability, but it does not mean that there is no problem with software testing. If you just simulate a user for a simple trial, the effectiveness of software quality verification will be even worse.

An analogy may be made. If the external decoration is extremely compliant with the standard during the Project Acceptance, and it gives people a good feeling, can we conclude that this work is a good project of excellent quality? The actual situation is often that Jin Gang Yu is outside the bean curd residue. Of course, it will not be a problem if you turn on the tap or the light bulb. If there is a fire or a strong wind, will this project work well? I don't know. Why not? Because the construction process is missing
Specification; even if the construction process is qualified, I do not know whether the materials are qualified.

Therefore, software testing is not a panacea for ensuring software reliability.

Software testing should be layered

If the user manual is used alone, the user acceptance test is only a special case test with a partial summary. Experienced testers simply design test cases to be more scientific and systematic, and add strong and stress tests. This may be enough for a software with low security and reliability requirements.

However, we know that our country is currently engaged in e-government projects represented by the "twelve gold. These projects involve fiscal and tax resources, as well as high-tech fields such as telecommunications, finance, insurance, aviation, and aerospace, or areas requiring high software reliability, their software testing is far from feasible. Simply imagine that the probability of a defect in airborne embedded software is 10-9. Can the above test alone meet the requirements?

However, the human and financial resources invested in such a rigorous test will be huge. Generally, it is at least 3 ~ of the development cost ~ 5 times, and the development process is very standard.

In general, we do not approve of the simple user simulation test method, because this method is not systematic and complete.

I personally think that the following work should be completed for acceptance testing: function traversal, link testing, interface testing, stability testing, data interface testing, security testing, performance testing, load testing, stress testing, Platform Testing, browser testing, and robustness testing.

If a problem is found during the test, the problem is isolated from the component according to the relevant design documents for component testing. For the core module, such as the function core or main control part, a white box test at the module level is required.

Testing should be compatible with Development Process Control

Many developers or users pay attention to software quality and also pay attention to software testing. However, testing, especially module-level black box and white box testing, is often caused by the nonstandard development process. The reason is very simple, that is, the lack of detailed design documents and the flowchart and interface relationships corresponding to the code of each module. The result test is like a blind person's imagination-reading the program alone cannot tell whether the program is consistent with the design idea, and whether the input and output of the software are correct.

Therefore, to conduct software testing, especially strict software testing, the software development process should not only comply with general specifications; moreover, the completeness and refinement of documents should also be quite high. To ensure the testing results and the smooth development of regression testing, the configuration management in the development process should also be strictly effective.

"It's hard to be a man without rice ". As a professional software testing company, we hope that through our efforts and the joint efforts of developers and users, we can improve and improve the process control and development documents of the development process, make the test work better to improve the software reliability.

Source: http://abcd0755.spaces.live.com/Blog/cns! A9d8bd9d12d154c8! 152. Entry

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.