Soft test (1) basic concept introduction

Preface

This chapter describes the basic concepts of software testing and some basic knowledge introduction



1. Soft test concepts and principles

  • Concept: Test the "object under test" by hand or tool to verify whether there is a difference between actual results and expected results

  • Principles of software testing ( seven principles ): The so-called testing principles refer to some rules that we must follow when performing testing.

1. The test proves that the software is defective : No matter what kind of test operation is performed, the current software can be proved to be defective.

2. Cannot perform exhaustive testing : Some functions are unable to list all the test situations logically, so any test operation has a time to end.

3. There are clusters of defects : for software functions, core functions account for 20%, and non-core functions account for 80%. In actual work, we will focus on testing 20% ​​of the core functions, so the probability of finding defects in this part will be higher than 80%. Therefore, we will encounter the phenomenon that defects are concentrated in 20% of the functional modules.

4. Some tests need to rely on special environments : for example, weather factors, mobile phone battery drain in winter.

5. Testing should be involved as soon as possible : In order to find more and better solve the defects in the software, we pursue the early development of testing.

6. Insecticide phenomenon: The same test case cannot be executed multiple times because the software will be immune to it.

7. There is no defect fallacy : no software can be perfect.


Two, soft test classification mind map

Insert picture description here

1) According to the test class
  • Software development will be based on the corresponding development model, and the test level refers to the development steps that we artificially define in this model. One of our most common classifications for testing is as follows:

1. Unit test [UT unit test]: In software testing, unit refers to the smallest underlying code structure that constitutes the software , generally classes, functions, and components (the current software testing industry does not deliberately require testers to test source code) .

2. Integration test (IT system ingertaion test): Combine multiple unit modules together, and then verify whether the "bridge" of communication between them can work normally (interface test)

3. System test (ST system test): This is the most common type of test in the industry . By the testers act as a user and then the main function of the software to be tested.

  • (1) Function test: verify whether the current main software function is available.

  • (2) Compatibility test: to verify whether the current software can still be used in different environments.

  • (3) Security test: verify whether the software can only provide functions for authorized users.

  • (4) Performance test: its output capacity relative to the resources consumed by the current software.

4. Acceptance Test:

  • (1) Alpha test-internal test (the company's soft test staff test, there are many bugs at this time)
  • (2) Beta test-----public test (test to users, let users provide suggestions, at this time there are fewer bugs)
  • (3) UAT (user acceptance test) test ---- The customer sends personnel who are very proficient in the business to use the software to test the function.
2) Common system test methods
  • 1. Classified by test object (the "box" in the following three methods refers to the test object .)

1. White box testing: The main body of this type of testing is the underlying code of the software. It will not be OK in the unexpected interface. It only requires the implementation of underlying functions and the correct logic.

2. Black box testing: This type of testing refers to testing whether the external main functions of the software are available.

3. Gray box testing: somewhere in between (interface testing)

  • 2. Classified by whether the test object is running

1. Static test: It means that the test is not executed.

2. Dynamic testing: Run the software in a real environment for testing.

  • 3. Classified by test method

1. Manual test: The tester manually verifies the tested object. The advantage is that the test operation and environment can be changed flexibly.

2. Automated testing: The so-called automation mainly has two forms, one is to write test scripts by oneself , and the other is to test the object under test through third-party tools (which can efficiently perform some operations that cannot be achieved by humans)


3. Software quality

  • Concept: Describe whether the current software is easy to use. In the current software industry, the set of standards we adopt is based on the ISO organization. What we need to remember is the six major characteristics of software quality (referred to as convenient memory: functions are reliable, and efficiency can be "used") :

1 Functionality : The software needs to satisfy the user's explicit or stable functions.

2 Ease of use : The software is easy to learn and get started.

3 Reliability : It means that the software must realize the specific functions specified in the requirements.

4 Efficiency : similar to software performance.

5 Maintainability : The software is required to have the ability to continue to use after a function is repaired.

6 Portability : The current software can be transplanted from one platform to another platform to use the ability.

  • Scene question:

Computer summation, after two of them are summed, the previously entered number is not cleared. From the programmer's point of view: the summation function has been implemented, this is not a defect. From a soft tester's point of view: after summing, the original customer input value is not cleared, which is a defect. As a software test engineer, how do you persuade developers to make changes?

  • We can talk about the quality of our software : the software has a special software quality standard to measure whether a software is good or bad. From the ease of use, we analyze that if the user enters 2 and 4, one click to sum can indeed be seen Until 6, when he clicks to confirm, he may be confused for the user, whether the value I currently input has been calculated or not? Secondly, even if he remembers to calculate by himself, he still needs to go manually Clearing is against ease of use. If cleared, the user knows that this is the second calculation.

Fourth, the software testing process

1 Demand analysis

  • (1) The core purpose of the current stage is to sort out what we need to design.

  • (2) The source of the demand: demand specifications, API documents, competition analysis, personal experience

2. Design use case :

  • (1) A use case is an operation process performed by a user to test a certain function of the software.

  • (2) There are methods for designing use cases (equivalence class, boundary value, decision table, causal analysis, process analysis, scenario method.)

3 Review use cases: add or delete current use cases.

4 configuration environment

  • (1) Environment: Refers to the execution environment required for the current operation of the tested object. As a tester, you need to have the ability to configure the
    environment. [Under normal circumstances, an integrated environment for one-click installation is used]
  • (2) Environment classification: operating system + server software + database + execution environment of the underlying software code.

5. Execution Use Case

  • (1) Generally, before executing the use case, we will do a smoke test ( quickly verify the core functions of the current software or the main execution process ) If there is a problem in the smoke test phase, this version can be returned to development . For example: the core of an e-commerce website is the shopping process

  • (2) If the smoke test passes, then a comprehensive test will be launched.

6. Regression testing and defect tracking

  • (1) Regression testing means that when we submit a defect to development, they will fix it. After the repair is completed, the tester needs to test it again [Regression Test]

  • (2) Defect tracking: refers to the need to keep track of a defect after the tester finds it.

7. Output test report: visually output the data generated in the current test process . It is convenient for others to check.

8. End of test: When some documents generated during the whole test process are organized and archived , it is convenient for subsequent versions to use.

Guess you like

Origin blog.csdn.net/Makasa/article/details/104527465