一、开发模型
- 瀑布模型
- 优点
开发阶段,各个阶段比较清晰;强调早期计划及需求调查;适合稳定需求的产品开发; - 改良:每个阶段都可以融入小的迭代工作!
- 快速原型模型
实现一个基本原型,让用户对原型进行评价,逐步调整,使其满足用户最终需求;
- 优点:适合不能确定需求的软件;
- 缺点:不适合开发大型系统。
二、测试模型
1. v模型
- 单元测试:又称模块测试,针对单一的程序模块进行的测试
- 集成测试:又叫组装测试,在单元测试的基础上,对所有模块进行测试。
- 系统测试:将整个软件看做一个整体来进行测试,包括功能、性能、兼容性
- 验收测试:
(1)内测版(alpha)内部交流版本,可能存在很多bug,不建议用户安装。
(2)公测版(beta)面向所有用户,通过用户的反馈再去修改细节。
(3)候选版(gamma)与正式软件相差无几。 - 优点:
(1)包含了底层测试(单元测试)和高层测试(系统测试);
(2)清楚的标识了开发和测试的各个阶段;
(3)自上而下逐步求精,每个阶段分工明确,便于整体项目的把控。 - 缺点:
(1)自上而下的顺序导致了,测试工作在编码之后,就导致错误不能及时的进行修改;
(2)实际工作中,需求经常变化,导致v模型步骤,反复执行,返工量很大,灵活度较低。 - 改良:每个步骤都可以进行小的迭代工作。
2. w模型
-
优点
(1)开发和测试伴随着整个开发周期,需求和设计同样要测试;
(2)更早的介入测试,可以发现初期的缺陷,修复成本低;
(3)分阶段工作,方便项目整体管理。 -
缺点
(1)开发和测试依然是线性的关系,需求的变更和调整,依然不方便;
(2)如果没有文档,根本无法执行w模型;
(3)对于项目组成员的技术要求更高!
总结
(1) v模型适用于中小企业
(2) w模型适用于中大型企业(因为人员要求高)
(3) h模型人员要求非常高,很少有公司使用
三、软件测试分类
- 按测试阶段划分
- 单元测试
- 集成测试
- 系统测试
- 是否覆盖源代码:
- 白盒测试:又称数据驱动测试,完全不考虑从内部机构和特性,只注重软件的功能需求(不管代码)
- 黑盒测试:把盒子打开研究里面的程序结构和源代码;
(1)功能测试 (2)性能测试 - 灰盒测试:
- 根据是否运行
- 静态测试(不运行程序)
- 动态测试(运行程序)
- 其它:
- 回归测试
- 冒烟测试
- 随机测试
- 验收测试(内测、公测、候选版)
- 根据是否自动化
- 人工测试
- 自动测试
四、测试用例方法
- 等价类划分法
- 因果图法
- 流程分析法
- 场景法
- 错误推断法
- 正交表法
- 混合正交表法
五、等价类划分法
-
概念
属于黑盒测试,它将不能穷举的测试过程进行分类,从而保证完整性和代表性;
-
思考步骤
1)确定有效等价类和无效等价类
2)有效等价类划分(题目条件,还要注意边界值(极值),中间再随意找个值)
3)无效等价类划分(跟有效等价类相反,其它特殊情况(中文、英文、特殊符号、空格、空)) -
等价类细节总结
1)考虑输入长度
2)考虑输入类型
3)组成规则
4)是否为空
5)是否区分大小写
6)是否重复
7)是否去除空格
注
两个框要一个正确,一个错误,这样才能准确的判断;一定要根据需求来判断预期结果;
qq登录等价类划分法测试用例简单设计
六、因果法
-
因
输入条件 -
果
输出结果 -
因果图法基本步骤
(1)找出所有的原因,原因即输入条件或输入条件的等价类。
(2)找出所有的结果,结果即输出条件。
(3) 明确所有输入条件之间的制约关系以及组合关系。
哪些条件不能组合到一起,哪些条件可以组合到一起
(4) 明确所有输出条件之间的制约关系以及组合关系。
哪些输出结果不能同时输出,哪些输出结果可以同时输出
(5) 找出什么样的输入条件组合会产生哪种输出结果
(6) 把因果图转换成判定表/决策表。
(7) 为判定表/决策表中的每一列表示的情况设计测试用例。
注
如果出现“-“代表此选项不影响最终结果。
交通一卡通充值测试
确定输入输出
通过输入输出及因果关系制作出表格
七、 判定表
- 组成部分
条件桩:所有的条件(输入)
动作桩:所有的结果(输出)
条件选项:针对条件桩的取值
动作选项:针对动作桩的取值 - 书写步骤
列出所有条件和动作桩
填写条件和动作桩中的所有项
简化判定表
判定好学生的简单判定表
八、场景法
- 概念
主要用来测试业务流程;分为基本流(正确流程)和备选流(错误流程),在冒烟测试中主要采用场景法来测试;