一、软件开发阶段划分
1、需求分析 :《需求规格说明书》
2、概要设计:《概要设计说明书》
3、详细设计:《详细设计说明书》
4、编码
那个阶段引入的缺陷最多:
需求分析(56%)、概程序设计(25%)、编写代码(13%-15%)、其他(6%)
二、软件测试阶段划分
1、单元测试:针对软件设计最小单位
依据:《详细设计文档》
(1)、以功能测试为主,重点核心模块可以进行白喝测试
(2)、可能需要编写驱动模块和桩模块(驱动模块:模拟被测模块的上一级模块,调用北侧模块的那个模块;桩模块:模拟被测模块的下一级,被被测模块调用)
(3)、在实际工程中,为了节约成本,单元测试只有开发人员完成,有悖于测试思想
2、集成测试:也叫组装测试
(1)、拿到一个新的集成版本,需要先做冒烟测试(利用较少的时间、人对软件的主要功能进行测试),主要判断该软件是否值得测试
(2)、一个版本基本的测试思路 A冒烟测试 B反侧 C回归测试 D新的功能测试
3、系统测试:对整个软件系统进行全面完整的测试,在系统测试之前有“确认测试”
4、验收测试:用户体验测试UAT*(user acceptance test)
(1)、Alpha测试:由最终的用户在开发环境对软件进行测试
(2)、Beta测试:有最终用户在实际环境进行测试
三、软件测试模型
1、概念:测试模型提现的是开发和测试的对应关系
2、v模型:
(1)、优点:测试阶段明确,即包括单元级,也包括用户级与开发关系明确
(2)、缺点:容易理解成,测试知识开发后的工作,不符合越早测试和不断测试原则
(3)、深入理解:在编码之前需要对相关需求文档、开发文档进行测试--越早测试;根据相关文档在测试执行之前,编写各个阶段的测试计划、测试用例等文档--测试过程是有计划性的‘
注意:单元测试需要有详细设计文档
集成测试需要有概要设计文档
系统测试需要有需求文档
四、软件测试的分类
1、按照测试技术划分:
(1)、黑盒测试:功能测试 ,必须要做的
(2)、白盒测试:逻辑结构测试,代码级需要编写测试用例
(3)、灰盒测试
2、按照是否需要运行代码划分
(1)、静态测试:界面测试、文档测试、代码规范等
(2)、动态测试:通过人工使用工具运行程序进行检查
3、按照软件特性分类
(1)、性能测试:分布式软件,必须使用工具
(2)、功能测试