开发模型V模型
需求分析、概要设计、详细设计、编码、单元测试、集成测试、系统测试、验收测试
- 单元测试:又称模块测试,针对单一的程序模块进行的测试
- 集成测试:又叫组装测试,在单元模式的基础上,对所有模块进行测试
- 系统测试:将整个软件看作一个整体来进行测试,包括功能、性能、兼容性
- 验收测试:
内测版alpha :内部交流版本,可能存在很多bug,不建议用户安装
公测版:beta 面向所有用户,通过用户的反馈再去修改细节
候选版:gamma 与正式软件相差无几
V模型的优缺点
- 优点: 包含了底层测试(单元测试)和高级测试(系统测试);清楚的标识了软件开发和测试的各个阶段;自上而下逐步求精,每个阶段分工明确,并于整体项目的把控
- 缺点:自上而下的顺序导致了,测试工作在编码之后,就导致错误不能及时的运行修改;
- 实际工作中,需求经常变化,导致V模型步骤,反复执行,返工量大,灵活度低。
- 改良:每个步骤都可以进行小的迭代工作。
W模型
优点;开发伴随着整个开发周期,需求和设计同样要测试,更早的介入测试,可以发现初期的缺陷,修复成本低,分阶段工作,方便项目整体管理
缺点:开发和测试依然是线性关系,需求的变更和调整,依然不方便,如果没有文档,根本无法执行W模型;对于项目组成员的技术要求更高
定义:开发一个v , 测试一个V组合起来W
V模型 适合中小企业
W模型 适合中大企业(人员要求高)
H模型 要求非常高,很少有公司使用
软件测试分类
- 黑盒测试
又称数据驱动测试,完全不考虑从内部机构和特性,只注重软件的功能需求
- 白盒测试
把盒子打开研究里面的程序结构和源代码
通常公司中,通常采用黑盒测试和白盒测试相结合的形式来进行测试
按照黑盒测试来分类:
黑盒测试能发现以下几类错误:
----功能不对,或功能遗漏
----界面错误
----数据库访问或者处理错误
-----性能问题
- 功能测试
- 逻辑功能测试
- 界面测试
- 易用性测试
- 安装测试
- 兼容性测试
- 性能测试
- 时间性能
- 空间性能
- 一般性能
- 稳定性测试
- 负载测试
- 压力测试
按照是否运行来分类
- 静态测试,指不实际运行程序而只是静静的分析代码、文档
- 动态测试
随机测试
针对重要功能、新增加的功能、特殊情况、以前发生重大BUG的模块进行二次测试
,也叫探索测试,它可以结合回归测试来使用
软件测试的分类
1.按阶段来分:单元测试,集成测试,系统测试,验收测试
2.是否覆盖代码:(1)。白盒测试 (2).黑盒测试: 功能测试 、性能测试
3.是否运行:静态测试、动态测试
4.其他:1.回归测试 2、冒烟测试 3.随机测试 4.验收测试(内测,公测,候选版)
5是否自动化:人工测试 ,自动化测试
灰盒测试
灰盒测试是介于白盒测试与黑盒测试之间的一种测试,即可保证黑盒的关注点又可以掌控白盒的内部结构,但不会去对内部程序和动作做详细了。
等价类划分
属于黑盒测试,它将不能穷举测试,具有代表性和完整性
思考步骤:
- 确定有效等价类和无效等价类
- 有效等价类划分(题目条件、还要注意边界值,极值,中间在随意取个值)
- 无效等价类(跟有效等价类相反,其他特殊情况,中文、英文、特殊符号,空)
因果图方法
因:输入条件
果: 输出条件
适用于输入条件之间有相互制约、相互依赖得关系
符号:
- 恒等 ----有因就有过,没有因就没有果
- 非 ---有因没有果,没有因有果
- 或 -- 条件有一个是真,结果就有果,条件都是假,结果才是假
- 且(与) --条件都为真,结果才是真,一个条件为假,结果就是假
根据因果图来制作判定表(因果图可以不画)
组成部分:
- 条件桩:所有条件
- 动作桩:所有结果
- 条件项:针对条件桩得取值
- 动作项: 针对动作桩的取值
书写步骤:
- 列出所有条件和动作桩
- 添加条件和动作桩中的项目
- 简化判定表