Introduction
Bug
- Code:
- Defect
- Fault
- Error
- Failure
- Problem
- Incident
- Anomaly(异常)
- Variance
- Failure
- Requirement:
- Inconsistency
- Product Anomaly
- Product Incidence
- Feature
Source of Problems
开发主线:
1. Requirements Definition: Erroneous, incomplete, inconsistent requirements
2. Design: Fundamental design flaws in the software
3. Implementation: Mistakes in programming faults, malicious code.
支线:
4. Support Systems: Poor programming languages, faulty compliers and debuggers, misleading development tools
5. Inadequate Testing of Software: Incomplete testing, poor verification, mistakes in debugging
6. Evolution: Sloppy redevelopment or maintenance, introduction of new flaws in attempts to fix old flaws, incremental escalation to inordinate complexity.
Bug发生的情况
- 需求要做的东西软件没有完成(The software does not do something that specification says it should do.)
- 需求不要求做得东西软件完成了(The software does something that specification says it should not do.)
- 需求没有提到的东西软件完成了(The softwaer does something that the specification does not mention.)
- 需求没有提到但是必须的东西软件没有完成(The software does not do something that the specification does not mention but should)
- 软件难于理解,使用,很慢...(difficult to understant, hard to use, slow…)
Bugs来源
55% specification, 25% Design, 15% Code, 5% Other.
The Software Development Process
TDD - Test-Driven Development
软件测试模型
V模型
需求分析->规格说明书->概要设计->详细设计->编码->单元测试->集成测试->系统测试->验收测试
W模型
测试伴随每一个阶段
需求分析->概要设计->详细设计->编码-