Table of contents
- The difference between debugging and testing
- The concept of software testing
- The difference between software testing and software development
- What qualities should a good tester have?
- why test
- software life cycle
- what is a bug
- what is demand
- What is a test case
- product life cycle
- Software testing runs through the entire life of software, such as how to run through?
- development model
- test model
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:
- 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... - Interested
Are you really interested? Instead of working too much overtime, don't want to code? - Character Traits
Curiosity
Accomplishment
Sensitive
Not Impetuous
Skeptical
Critical Thinking: Clear – Accurate, Relevant – Profound, Meaningful, Logical – Fair, Comprehensive - Ability
Rapid learning ability
Communication ability
Writing ability
Development ability - 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.
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)
场景:适用于需求稳定、明确的项目。 过程:需求分析、总体设计、详细设计、编码和调试、集成测试和系统测试。
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:
-
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.
-
It is difficult to adapt to changes. If the requirements of the software change later, the entire system needs to be started from scratch.
-
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.
-
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
场景:项目规模庞大,复杂且高风险。 特点:是瀑布模型和演化模型的结合,并增加了风险分析(引入非常严格的风险识别、风险分析、风险控制),支持用户需求动态变化。 过程:需求定义、风险分析、工程实现、评审。
Feature: Risk Analysis and Prototyping Added to the Spiral Modelshortcoming:
- The possible risks in the project are directly related to the skill level of the risk management personnel
- Requires increased personnel, capital, time and investment, which may result in a project that is too costly
incremental model
场景:在系统的技术架构成熟、风险较低的时候采用。 特点:提前进行集成测试和系统测试,缩短初始版本的发布周期,提高用户对系统的可见度
agile model
场景:适用于小规模软件或者小团队开发。 特点:是一种以人为核心、迭代、循序渐进的开发方法。
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.测试阶段的参考标准以前面对应阶段为准 缺点:测试后置
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 processThe 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 stageW model
Features: W model focuses on process, cannot meet changes, W model is not suitable for agile model
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.-