Test → 01: basic concepts of software testing

First, the definition and purpose of software testing

1.1, the definition of

  The classic definition: Software Testing (Software Testing), under the conditions specified in the program to operate, to discover bugs, measure software quality, and evaluate whether it can meet the requirements of the design process.

  Standard definition: Software testing is the use of manual or automatic means to run or test a system, its purpose was to examine whether it meets specified requirements or clarify the difference between the expected results and the actual results.

  It was developed to help identify (intermediate or final version) of computer software (in whole or in part) the accuracy, completeness and quality of the software process.

1.2 Content

Software testing main tasks is to verify (verification) and confirmation (validation).

Verification is to ensure that software correctly implements some specific features of a series of activities, which is to ensure the software to do the things you would expect. (Do the right thing)

Confirmation is a series of activities and processes, the aim is to confirm the correctness of the software logic in a given external environment. Which is to ensure the software the right way to do this event (Do it right)

  Software testing is not just an object program testing, software testing throughout the software development should include documentation at all stages of Q generated, such as requirements specification, preliminary design documents, detailed design documents, of course, the main target or source of software testing.

1.3 The purpose

  The purpose is to test the software with minimal manpower, material resources and time to find out all kinds of potential software errors and defects and improve software quality by correcting errors and defects, to avoid risks with the software release due to potential software defects and error caused by to business risks.

  The purpose of software testing is to find problems, identify problems and has not found. Check the system meets the requirements.

  Grenford J.Myers view:

(1) The execution of the program is a test, aims to discover errors;
(2) a good test that can be found so far found no error;
(3) a successful test is found in error in the test has not found;

Second, the testing process 

Testing requirements analysis phase: reading needs, understand the needs, mainly learning the business, analyze demand point, involved in needs assessment meeting
the test planning stage: The main task is to write the test program, refer to the software requirements specification, project master plan, including test range (from requirements documents), scheduling, allocation of human and material resources, the development of the overall test strategy. Risk assessment and measures to avoid a making.
Test design phase: The main is to write test cases, will make reference to the requirements document (prototype drawing), outline design, detailed design documents, use cases will be reviewed after the completion of the preparation.
Test execution phase: build environment, perform the smoke test (pre-test) - and then into the formal testing, bug management until the end of the test
test evaluation phases: a test report to confirm whether the on-line

 

Third, the principles of software testing

3.1 test standard is the needs of users
  of all software testing should be traced back to user needs, testers should always look at the problem from the user's point of view, to judge the impact of software defects, the system's most serious error causing the program are those defects can not meet user needs.

3.2, pre-defined standard good quality products
  with quality standards, product quality in order to correct analysis and evaluation based on test results, for example, pre performance testing, should the definition of the relevant indicators of good performance. Similarly, the test case should determine the expected output, it can not be determined if the test results can not be verified.

3.3, should be "as soon as possible and continue to carry out software testing" as the motto of testers of
  all errors (including the final defect) amount of 50% to 60% in the wrong early introduction of the software development life cycle accounting software process. , Defects amplification tendency. As a requirements phase error could lead to the N design errors, therefore, the more the latter test, the greater is the price paid to repair the defect.

3.4, test plans, excluding the arbitrariness
  prior to the actual test, to establish sound, practical and strict implementation of test plans, in particular, to determine test strategy and test objectives. Test plan should include: configuration scheduling function of the measured software, input and output, the test, the test process control methods and resource requirements, test data, test tools, test case selection, testing, system track rules, debugging rules, and requirements such as regression testing and evaluation standards.

3.5 and thorough test, the test can not be put aside
  for a test according to the purpose, with the corresponding test methods to design, to improve efficiency of testing, more errors are found to improve the reliability of the program. In addition to checking whether the procedures done should be done, depends on whether the procedures done should not do; not only reasonable input data should be used for illegal inputs should design test cases for testing.

3.6, fully aware that cluster phenomenon
  seize the 80/20 principle can be targeted to optimize the test and found more problems in the shortest possible time, but also to ensure testers overall grasp of the testing process. Especially when the projects tight, high complexity, you can divide the time, phase, modules solve the problem, it is one of the effective ways to solve the problem.

3.7, avoid testing their own procedures
  due to psychological factors, people subconsciously do not want to find their own mistakes. Based on this mindset, it is difficult to find their own mistakes. Therefore, software developers should try to avoid testing their own products, third parties should be tested, of course, developers need to be related to the self-test before delivery. A certain degree of independent testing (developers prefer to avoid their own code), you can find a more efficient software failures and software bugs exist. But independent tests are not complete substitutes, because developers can efficiently find many defects in their code. Their work product for serious testing in the early developers of software development, which is one of the responsibilities of a staff development.

3.8, it is impossible to fully test, the test needs to be terminated
  exhaustive testing is not possible, should be combined with the current situation when the test should be terminated meet certain test exit criteria.

3.9, regression testing
  after Modify the program, should be re-tested to confirm the modification does not introduce new bugs or cause other code to generate an error.

3.10, proper preservation of all test documentation

Guess you like

Origin www.cnblogs.com/BalmyLee/p/11002574.html