-
一、软件测试的模型
-
1、软件测试模型表达的是测试阶段和开发阶段的对应关系
-
2、V模型(重点)
- (1)会画v模型
- (2)优、缺点
- 优点:
- 1)软件的开发阶段和测试阶段(级别)划分明确,对应关系明确
- 2)测试阶段既包含单元测试(专业级,代码级),也包含验收测试(用户级)
- 缺点:缺少需求分析阶段和设计阶段的测试过程,容易造成误解,测试只是开发后的收尾工作,没能体现出尽早测试原则和不断测试原则(开发与测试是同步进行的工作)
-
3、w模型(了解)
- 1)可以看成是双V模型,第一个v是完整的开发活动,第二个v是完整的测试活动
- 2)在w模型中加入了需求和设计阶段的测试内容。更能体现出尽早测试和不断测试的原则,强调测试不仅要测试程序,文档也要测试
-
二、软件测试的分类
-
1、按测试技术划分
- (1)黑盒测试:又称为功能测试,是不考虑程序内部结构,只知道输入和输出的情况下的功能测试。
- (2)白盒测试:也叫基于程序的测试,是只考虑程序内部结构,而不考虑程序功能的测试
- (3)灰盒测试:结合了黑盒和白盒测试的要素,对软件进行测试的方法。一般是先黑盒测试发现问题,然后通过白盒测试进一步分析问题。(常用于集成测试阶段)
- (4)扩展:白盒说明
- 1)盒测试一般对风险较大,难度较大的重点和核心功能进行补充测试
- 2)白盒测试要求测试人员要懂代码,白盒测试效率较低,成本较高
- 3)白盒测试也需要设计测试用例
-
2、按是否需要运行代码划分
- (1)动态测试
- (2)静态测试
- 不需要运行代码也能进行的测试
- 例如:
- 1)文档测试
- 2)部分界面测试
- 3)(静态)代码测试:检查代码是否符合代码的规范和标准
- 问题:白盒测试和(静态)代码测试的区别?
- 1)白盒测试需要测试人员懂代码,检查代码逻辑是否正确,需要设计、编写测试用例
- 2)代码测试不需要懂代码,是对代码的规范性和标准性进行检查,不需要编写用例,只需要依照代码检查单检查即可。
-
三、按测试类型划分
-
1)功能测试
- (1)所有的软件都需要先进行功能测试
- (2)功能测试既有手工功能测试,也有自动化的功能测试
-
2)性能测试
- (1)分布式软件一般需要做性能测试
- (2)性能测试不能手工完成,要借助性能自动化测试工具。
-
四、其它(名词术语)
-
1)返测:
- 对程序员修改的缺陷进行测试,验证缺陷是否被修复。
-
2)回归测试:
- 对上一个版本中的所有功能再重新测试一遍,检验新版本中,程序原有功能是否依然正常。回归测试中存在大量重复性工作,在条件满足时,可以使用自动化工具测试,来提高测试效率。
- 兼容性测试主要分为3大类:
- 硬件兼容
- 与整机兼容
- 与外设兼容
- 软件兼容
- 操作系统
- 不同浏览器的兼容
- 应用软件之间的兼容
- 数据库的兼容
- 数据兼容
- 不同版本之间的数据兼容
-
-
4)随机测试(猴子测试)
- 在测试用例执行完成后,随意挑选数据进行测试的过程。(随机测试往往是常规测试后的一个补充测试过程)
-
5)软件测试流程
- (1)分析需求(阅读、分析、整理功能点,业务流程/逻辑)
- (2)制定测试计划
- (3)设计测试(分析、设计、编写用例)
- (4)执行测试,记录测试结果
- (5)记录缺陷,跟踪和管理缺陷 (缺陷报告)
- (6)测试总结(测试总结报告)
- 将7种测试方法的应用场合一一列举出来。
- 最后总结:在功能测试时经常会将2-4种测试方法综合应用测试。
-
- 扩展:补码
- 补码:整数类型在存储时使用补码方法,但是正整数和负整数的补码算法不同。
- 1) 正整数的补码:就是它的原码
- 2)负整数的补码:是负数的绝对值的原码,取反,加1
-