1.4什么是软件测试
软件测试的定义
软件测试的目的
软件测试目的延伸
提高软件质量
便于软件质量改进
为用户接受与改进软件提供有力依据
软件测试的对象
软件测试不等于程序测试
软件测试的原则
1.5测试与开发的关系
瀑布模型(局限性较大)
![](https://i-blog.csdnimg.cn/blog_migrate/36dc491f0b1473b94d72c43b781eafe1.png)
V模型
![](https://i-blog.csdnimg.cn/blog_migrate/4740c5a483943383820f449fa03b3ac6.png)
需求分析和定义→系统设计→详细功能设计→编码→单元测试→功能测试→系统测试→验收测试
V模型存在的问题
测试时编码之后的一个阶段
测试对象是程序本身
实际应用中容易导致需求阶段的错误一直到系统测试才被发现
项目越靠后修改软件中的问题的成本越高
3.W模型
![](https://i-blog.csdnimg.cn/blog_migrate/33c08745a6a200d67c22b895dbad6765.png)
(W模型由图可知测试过程与开发过程同步进行,可以及时发现问题来减少成本.)
W模型的完善之处
测试伴随整个软件生命周期
测试对象不仅是程序,还包括需求和设计
相应开发活动完成,即可执行测试
W模型未解决V模型中的问题
需求,设计,编码串行进行,无法并行工作
未将测试过程的完整性表现出来
H模型(对软件测试流程进行了说明)
测试流程:
测试准备活动:测试计划,测试设计,测试开发(相比之下所需时间较长,成本较大)
测试执行活动:测试运行,测试评估
![](https://i-blog.csdnimg.cn/blog_migrate/7c8f53d84f4421e467e1d60ae66caab7.png)
H模型的完善之处:
测试是一个独立的流程,贯穿产品整个周期,与其他流程并发进行;
测试不仅仅是测试执行,还包括其他活动;
测试要尽早准备,尽早执行;
H模型的意义:
测试准备和测试执行分离,也有利于资源调配,降低成本,提高效率;
充分体现测试过程的复杂性;
有组织,结构化的独立流程,有利于跟踪测试投入的流向;
测试与开发的关系
测试过程与开发过程都贯穿整个软件生命周期;
测试过程与开发过程同步;
测试过程与开发过程相互依赖;
软件质量保证(SQA)与软件测试的区别:
SQA是一项管理工作,侧重于流程的评审与监控;
测试是一种技术性工作,侧重对产品评估和验证;