### 需求分析
现象:需求不符合实际,与用户需求不一至
原因:
1.对系统的认识不清楚
2.对用户需求理解有误
3.用户需求表达不准确
4.需求变更
5.评审不够
6.配置管理不严格
缺陷性质:需求规格说明缺陷
### 软件设计
现象:
1.不符合用户需求
2.不符全需求规格说明
3.容错能力不够
原因:
1.对用户需求与需求规格说明理解有误
2.对编码有关技术和约束认识不够
3.设计不当
4.设计说明有误
5.需求管理有缺陷
6.评审不够
7.配置管理不严格
缺陷性质:设计缺陷
设计缺陷
### 编码
现象:不符合设计要求
原因:
1.对设计说明理解不够
2.所用技术不当
3.偶然失误
4.需求管理不缺陷
5.评审不够
6.配置管理不严格
缺陷性质:编码缺陷
### 测试
现象:
1.覆盖率不满足要求
2.遗留缺陷太多
原因:
1.测试设计有误
2.测试资源不够
3.测试管理欠缺
4.需求管理有缺陷
5.评审不够
6.配置管理不严格
缺陷性质:测试缺陷
### 软件测试七条原则:
1.软件测试是为了找到软件测试的缺陷,而不是证明软件没有缺陷
测试可以显示存在缺陷,但不能证明系统不存在缺陷,测试可以减少软件中存在未被发现缺陷的可能性,即使测试没有发现缺陷也不能证明软件或者系统完全正确没有任何问题。
2.穷尽所有的测试是不可能的
除小型项目,进行完全各种输入与输出组合的测试是不可行的,通过运用风险分析和不同系统功能的测试优先级来确定测试的关注点,从而替代穷尽测试
3.软件测试活动就当尽早开始
为了尽早发现缺陷,在软件或者系统开发生命周期中,测试活动应该尽早介入,并且将关注点放在已经定义的测试目标上
4.缺陷存在遵循80/20法则(帕累托法则)
测试工作的分配比例应该与预期的和后期观察到的缺陷分布模块相适应。少数模块通常包含大部颁测试版本中发现的缺陷或失效
5.杀虫剂悖论
采用同样的测试用例多次重复进行测试,最后将不再能够发现新的缺陷
6.测试活动依赖于测试背景
针对不同的测试背景,进行不同的测试活动
7.不存在 缺陷的谬论
人们对软件测试有一个误解的是:软件测试没有什么技术含量,做不了软件开发的人才去做软件测试。造成这个误解的原因可能是软件测试工作的门槛比软件开发低,软件测试不仅需要执行,还需要设计软件测试,而软件测试设计人员需要撑握更多的技术,包括编码,计算机系统知识,安全知识等