Test Concept

The difference between debugging and testing

1. Different purposes
The task of testing is to find defects in the program;
the task of debugging is to locate and solve problems in the program.
2. Participation in different roles
Testing is mainly performed by testers and developers, black box testing is mainly done by testers, and unit/integration testing is mainly performed by developers.
Debugging is done by the developer.

3. Different stages of execution

Testing runs through the entire software development lifecycle;

Debugging is generally in the development phase.

The concept of software testing

Software testing is the process of executing and running software, the purpose of which is to find out where software functions and requirements do not meet, or to find differences between actual output and expected output.

The difference between software testing and software development

R&D is mainly based on coding, while testing is mainly based on testing and supplemented by development.
Difficulty level: small development breadth, high degree of professionalism. Wide range of testing, low professionalism
Working environment: basically similar
Salary: Small and medium-sized enterprises are generally lower than R&D, and there is basically no gap between professional testing fields such as automation and R&D. There is basically no difference in the R&D and testing of major manufacturers
. Development prospects: The development prospects of automated testing, security testing and other fields are basically the same as those of R&D.
Busyness: Generally easier than R&D, but there is not much difference in agile mode, and the pressure before product release is relatively high
Skill requirements: Testing requirements are more extensive: business capabilities, design and architecture analysis capabilities, testing methods and tool usage, user model analysis and understanding ,programming ability

What qualities should a good tester have?

Answers include but are not limited to the following:

  1. Thinking mode
    Reverse thinking: develop and build a house, test and demolish the house. Take an unusual step.
    Case: There are two call records in the mobile phone, delete them. After the deletion is 0, continue to delete.
    Divergent Thinking: Finding Multiple Answers
    Case: Testing a ticket vending machine. Forward, reverse, boundary, pressure, performance, power consumption, power failure, appearance, no change...
  2. Interested
    Are you really interested? Instead of working too much overtime, don't want to code?
  3. Character Traits
    Curiosity
    Accomplishment
    Sensitive
    Not Impetuous
    Skeptical
    Critical Thinking: Clear – Accurate, Relevant – Profound, Meaningful, Logical – Fair, Comprehensive
  4. Ability
    Rapid learning ability
    Communication ability
    Writing ability
    Development ability
  5. Sense of Responsibility and Pressure
    Sense of Responsibility: Testing is often the last tester of the product; the effectiveness of testing is difficult to measure, and the execution of test cases and the number of bugs cannot indicate whether the product can be delivered to users. Therefore, the sense of responsibility is one of the most important test essential qualities.
    Pressure: pressure from developers, users, superiors, and yourself. Testers are more stressed than imagined.

why test

The answer is the same as the qualities that good testers should possess.

software life cycle

Six stages: requirements analysis stage, planning stage, design stage, coding stage, testing stage, operation and maintenance stage.
insert image description here

what is a bug

A mismatch between a program and a specification is an error if and only if the specification exists and is correct. When the function is not mentioned in the requirement specification, the judgment standard is subject to the end user: when the program does not realize the functions and requirements reasonably expected by the end user, it is a software error;

what is demand

Requirements are the conditions and capabilities that meet user expectations or formally specify documents (contracts, standards, specifications), including user needs and software requirements.

Requirements are mainly divided into two types: User requirements and software requirements
User requirements : It can be understood as the requirements put forward by Party A. If there is no Party A, then it is the task that the end user must complete when using the product. This kind of requirement is generally relatively simple, and user requirements are various
software requirements : that is, functional requirements, which describe in detail the software functions that developers must implement.
The direct work basis of developers and testers is software requirements.

Can the user's needs be used as a direct working basis for testing and development?
Certainly not, because most companies convert user needs into software requirements when developing software. This process is based on
multiple analysis, such as whether the technology is feasible, whether the market is feasible, cost input and benefit ratio, etc.

What is a test case

The existence of test cases is to solve two problems, what to test and how to test

A test case is a set of sets provided to the system under test for the purpose of implementing the test. This set includes: test environment, operation steps, test data, expected results, etc.

product life cycle

Development Process/Software Life Cycle

Product life cycle: requirements analysis - planning - design - coding - testing - operation and maintenance

Demand analysis: market analysis, technical feasibility, cost and benefit ratio

Planning: when to start, when to end, how long it will take

Design: Turn big requirements into specific tasks that can be executed one by one. Conduct development design (which interfaces to develop, what development framework to use, and what technology to use)

Coding: Developers refer to requirements documents, technical documents, etc. for code development

Test: Testers refer to test cases to design

Operation and Maintenance:

Perfection maintenance: improve the function

Corrective maintenance: timely repair of problems not found in the project

Preventive maintenance: In order to avoid unexpected problems during the online operation of the product, some preventive measures are required

Software testing runs through the entire life of software, such as how to run through?

The life cycle of software testing: requirements analysis - test planning - test design and development - test execution - test evaluation

  • demand analysis:
    用户角度思考问题:软件需求是否合理
    
    技术角度思考问题:技术上是否可行,还是否有优化空间
    
    测试角度思考问题:是否存在业务逻辑冗余/冲突
    
  • Test plan: when to start the test, when to end the test, how long it will take
  • Test design and development: write test documents, clearly mark the test methods used, test tools, test forms, refer to requirements documents, technical documents, etc. to write test cases
  • Test execution: make full use of test cases and other tools to cover all aspects of the project as much as possible
  • Test evaluation: evaluate whether there are other quality problems in the product, function demonstration
  • development model

    Waterfall Model (document-oriented software development model)

    场景:适用于需求稳定、明确的项目。
    过程:需求分析、总体设计、详细设计、编码和调试、集成测试和系统测试。
    

    insert image description here
    Features: It is a model that strictly follows the fixed sequence of each stage of the software life cycle. Each stage is clearly divided, and fixed documents or source programs flow into the next stage. Demand analysis is the basis of all activities.

    shortcoming:

    1. It is impossible to accurately and completely describe the entire system due to requirements, resulting in heavy post-maintenance work, most of which are defects introduced during the stage of correcting requirements analysis.

    2. It is difficult to adapt to changes. If the requirements of the software change later, the entire system needs to be started from scratch.

    3. The delivery time is long, and it is necessary to wait until all the stages are completed before the product can be delivered, so that the customer cannot determine whether the demand is met as soon as possible.

    4. Generating a large number of documents that are useless to customers does cost a lot of manpower and is a kind of overloading process.

    spiral model

    场景:项目规模庞大,复杂且高风险。
    特点:是瀑布模型和演化模型的结合,并增加了风险分析(引入非常严格的风险识别、风险分析、风险控制),支持用户需求动态变化。
    过程:需求定义、风险分析、工程实现、评审。
    

    insert image description here
    Feature: Risk Analysis and Prototyping Added to the Spiral Model

    shortcoming:

    1. The possible risks in the project are directly related to the skill level of the risk management personnel
    2. Requires increased personnel, capital, time and investment, which may result in a project that is too costly

    incremental model

    场景:在系统的技术架构成熟、风险较低的时候采用。
    特点:提前进行集成测试和系统测试,缩短初始版本的发布周期,提高用户对系统的可见度
    

    insert image description here

    agile model

    场景:适用于小规模软件或者小团队开发。
    特点:是一种以人为核心、迭代、循序渐进的开发方法。
    

    insert image description here

    test model

    V model

    The W model increases the verification and validation activities that should be carried out simultaneously in each development phase of the software. The W model consists of two V-shaped models, which
    represent the testing and development process respectively. The figure clearly shows the parallel relationship between testing and development.

    特点:
    1.测试过程中存在的不同类型的测试
    2.测试阶段的参考标准以前面对应阶段为准
    缺点:测试后置
    

    insert image description here
    Clearly mark the different types of tests that exist in the testing process, and clearly describe the
    correspondence between these testing phases and the various phases during the development process

    The V model points out that unit and integration testing should detect whether the execution of the program meets the requirements of software design; system testing should detect whether the quality characteristics of system
    functions and performance meet the indicators required by the system; acceptance testing determines whether the implementation of the software meets the needs of users or not.
    Requirements of the contract
    Limitations: Only treat testing as a stage after coding, and do not enter testing at the requirements stage

    W model

    Features: W model focuses on process, cannot meet changes, W model is not suitable for agile model

    insert image description here
    Limitations: Requirements, design, coding and other activities are considered serial; testing and development activities also maintain a linear front-to-back relationship, and the next
    stage can only be formally started after the previous stage is completely completed. Unable to support agile development model. For the complex and changeable situation of current software development
    , the W model cannot relieve the confusion faced by test management.

Guess you like

Origin blog.csdn.net/weixin_61341342/article/details/130185333