瀑布模型
- 需求分析(特别到位)
- 设计
- 编码
- 实现
- 软件测试
- 完成
- 维护
优点:开发阶段中,每个阶段比较清晰,强调早期计划及需求调查,适合稳定需求的产品开发
改良:每个阶段都可以融入小的迭代工作
快速原型模型
实现一个基本原型
- 优点:克服瀑布模型的缺点,更好的满足用户的需求并减少由于软件开发需求不明确带来的项目开发风险
- 缺点:不适合大型系统的开发(适合开发小型的,灵活性搞得系统),前提是有一个展示性的产品原型,因此在一定的程度上可能限制开发人员的创新
螺旋模型
螺旋模型很大程度是一种风险驱动的方法 (用的比较少)
V模型
- 需求分析
- 概要设计
- 详细设计
- 编码
- 单元测试
-
- 又称为模块设计,针对单一的程序模块进行测试
- 集成测试
- 又称为组装测试,在单元测试的基础上,对所有模块进行测试
- 系统测试
- 将整个软件看作一个整体进行测试,包括功能,性能,兼容性
- 验收测试
- 内测版(a)内部交流版本,可能存在bug,不建议用户安装
- 公测版(b) 面向所有用户,通过用户的反馈再去修该细节
- 候选版® 与正式版相差无几
V模型的优缺点
优点:测试V模型即包含底层测试和高层测试,清楚的标识了开发和测试的各个阶段,自上而下逐步求精,每个阶段分工明确,就导致项目整体的把控
缺点:自上而下顺序导致了测试工作在编码之后,就导致错误不能及时的进行修改,实际工作中,需求经常变化,导致V模型步骤反复执行
底层测试:(单元测试)
高层测试:(系统测试)
改良:每个步骤都可以进行小的迭代工作
W模型
W模型:开发一个V,测试一个V
**开发V:**需求分析 — 概要设计 — 详细设计 — 编码 — 集成 — 实施 — 交付
测试V:系统测试设计 — 集成测试设计 — 单元测试设计 — 单元测试 — 集成设计 — 系统设计 — 验收测试
中小型企业很少用w模型
优点:开发伴随着整个开发周期,需求和设计同样要测试,更早的介入测试,考研发现初期的缺陷,修复成本低,分阶段工作,方便项目管理
缺点:
H模型(对开发人员要求非常高)
一般中小型用V型,W适用于中大型企业,H模型人员要求非常高,很少公司使用
黑盒测试
- 功能测试
- 逻辑功能测试
- 界面测试
- 易用性测试
- 安装测试
- 兼容性测试
- 性能测试
- 一般性能测试
- 稳定性测试
- 负载测试
- 压力测试
白盒测试
一般公司都是使用黑盒和白盒相结合的方式进行测试
根据是否运行分类
静态测试:指不实际运行被测软件,而只是静态的检查程序代码,揭秘那或文档中可能存在的错误过程
动态测试:指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程
回归测试
冒烟测试
随机测试
针对重要功能,新增加的功能
软件测试分类
2.是否覆盖代码
(1)白盒测试
(2)黑盒测试
测试用例
定义:测试用例主要是解决测试什么
等价类划分法(黑盒测试方法)
我们发现我们用户所有可能的输入的数据,划分成为若干份,然后从每一个子集当中选取少数比较有代表性的数据作为测试用例,这种测试用例我们一般成为“等价类划分法”
等价类的分类:
有效的等价类:就是题目条件,两端的极值要判断,中间的一个随机值也要判断
无效的等价类:与有效等价类条件相反的情况,再找到特俗情况(中文,符号,空格)
确定有效等价类和无效等价类
有效等价类划分
无效等价类划分
等价类细节
1.考虑输入长度
2.考虑输入类型
3.组成原则
4.是否为空
5.是否区分大小写
6.是否重复
7.是否去除空格
一、边界值
我们在测试中一定要小心边界值,因为程序中这些边界容易出现错误问题,具体测试用例书写思路,找到边界值和它两端的值,分别进行测试
总结:边界值思想应该是选到边界和刚超过的值,来进行测试,也要根据实际情况来选择。边界值和等价类是相辅相成的
边界值和等价类区别,边界值分析不是从某个等价类中随便找一个作为代表,而是这个等价类的每个边界都要作为测试条件
二、因果图法
因:输入条件
果:输出条件
适用于输入条件之间有相互制约,相互依赖的情况
恒等:有因有果
非(~):有因没有果
或(V):条件有一个为真,则为真
与:条件都为真,则为真
三、判定表
根据因果来制定判定表(因果图可以不画)
组成部分:
条件桩:所有条件
动作桩:所有结果
“-”表示无论什么不影响结果
四、场景法概述
主要用来测试业务流程,分为基本流(正确流程)和备选流(错误流程)
在冒烟测试中用场景法测试
五、流程分析法
适用于有先后顺序的测试,常用于业务流程,安装流程等,每一个流程就是一个测试用例
第一步:详细了解需求
第二步:根据需求说明或界面原型,找出业务流程的各个页面以及各页面之间的流转关系
第三步:画出业务流程(产品经理使用Axure软件制作)
第四步:写用例,覆盖所有的路径分支
六、错误推断法
凭直觉和经验来测试用例,它是根据之前项目相关的bug数据总结出来的