For any company to develop software, at a certain time pressure to meet the deadline for the release of the product for the image. Other pressures on the stakeholders of the project, such as "Marketing" does not want to postpone the release of a lot of effort and money may have already been used in date of publication.
Often, the time required to test the software (for example, to ensure its quality - AQ) should be reduced so as not to affect the release date. A pure business perspective, this can be considered as a positive step, because the product is for customers to reach a timely manner. of caution must be taken, although the overall customer to find a "bug" was published on the product. Perhaps the problem is buried in a very ambiguous functional software, and the effect of lead only to a typing error in the report rarely used that the level of impact is very small. In this case, the business impact of this software company is likely to be minimal. But what happens if the fault is caused program crash and lose data? Maybe this software is used for air traffic control? As you can imagine the impact this type of failure could be an incredibly large and can cause loss of human lives and destroy the entire firm to do.
So basically, the level of risk of an error found (chance) and what is the error effect (impact) appear to be so vital to software testing is done long before any product launch.
Due to the complexity of modern software, it is impossible to ensure that the software is error free ....... it really is!
Imagine a simple application form, which is designed to accept one of the ten specific values, to test this fully, you must create a litmus test for every permutation of the items that could be included in the user's example:
10 (Revenue) and 10 (values) of power
10 to 10 power
Result = 10000000000 test case
So if you were hired to perform tests, tester, and it took only six seconds to complete each test case one, it would take about 317 years to complete. Therefore, the test design must take account of what really is "feasible".
Software Testing (synonymous with the concept of quality assurance) itself can have many different purposes (quality assurance, validation, operation, etc..) Is an important decision when planning testing QA / software, not enough or testing in underserved areas will inevitably lead to missed bugs. The aim should be to first determine "why", we will test not just "what" we must try.
Software testing and / or quality assurance remains a kind of art, mainly due to limited understanding of the complexity of modern software. In recent years, has seen the development of certification testing software, such as ISEB and ISTQB. This is good news for the software industry as a whole, because the software tester with more experience, so is the quality of the software you are testing can only increase.