一、软件测试分类
1、按照开发阶段划分
-
单元测试
- 针对软件设计的最小单位一一程序模块进行正确性检验的测试工作(程序内部)(多个模块可以独立测试)大多数 时候由开发人员自己去完成(交叉)
post传输数据隐藏
-
集成测试
- 也叫组装测试,在单元测试基础之上,将程序进行有序的、递增的测试(涉及到接口测试工具和方法),企业需要接口测试工程师,它是一个持续不断的过程。
-
确认测试
- 也叫有效性测试,(功能是否实现)一般都是正向测试,有时候也称为冒烟测试,一般不作为正式测试环节。
-
系统测试
- 全面的:系统所有功能的测试;模拟所有的软件用户的操作,全方位的,和硬件系统的联系和系统软件的联系
-
验收测试
-
一般供求双方,决定软件是否被客户验收,一般三种验收测试的主体
α测试:软件的开发商自己进行的交付前的测试
β测试:软件需求方自己进行的测试
γ测试:第三方软件测试
-
2、按照测试技术划分
- 黑盒测试
- 通过软件外部表现发现其缺陷和错误,吧被测对象看成一个黑盒子,完全不考虑程序内部结构和处理过程,
- 白盒测试
- 吧被测对象看成一个透明的盒子,对内部结构分析,检测来寻找问题,
- 灰盒测试
- 介于黑盒和白盒测试之间,通过一些现象,事件,标志来判断测试
3、按照代码运行划分
- 静态测试
- 不实际运行被测对象,静态检查代码
- 代码测试:测试是否符合相应标准和规范
- 界面测试:主要测软件实际界面和需求中的说明是否相符
- 文档测试:主要测试用户手册和需求说明是否真正 符合用户需求
- 动态测试
- 运行检测对象,输入相应测试数据,检查实际输出与预期结果是否相符
4、按照软件特性划分
- 功能测试:是黑盒测试的一方面,他检查实际软件的功能是否符合用户需求
- 逻辑功能测试
- 界面测试
- 易用性测试
- 安装/卸载测试
- 兼容性测试
- 性能测试
- 时间性能和空间性能
- 安全性测试
- 验证安装在系统内的保护机制能否在实际应用中对系统进行保护,使之不被非法入侵
5、其他测试类型
- 回归测试:对软件的新版本测试时,重复执行之前某一个重要版本的所有测试用例,
- 目的:
- 验证之前版本产生的所有缺陷已全部被修复
- 确认修复这些缺陷没有引发新的缺陷
- 目的:
- 冒烟测试:确认软件基本功能是否实现
- 随机测试:测试人员基于经验和直觉的测试,发现一些边缘性测试
- 猴子测试:有个移动端测试工具叫monkey,把自己当成不懂产品的笨蛋或者小动物,随便乱点,没有任何主观意识和想法参与进来,让一些意想不到错误的结果
6、按照测试运行主体划分
- 手工测试(功能测试):(点点点)
- 自动化测试,利用工具软件或者编写代码的方式,测试被测的软件系统
单元测试 | 集成测试 | 确认测试 | 系统测试 | 验收测试 | |
---|---|---|---|---|---|
测试技术 | 黑盒、白盒 | 黑盒、白盒、灰盒 | **黑盒、**白盒 | 黑盒、白盒 | 黑盒、白盒 |
代码运行 | 动态、静态 | 动态、静态 | 动态、静态 | 动态、静态 | 动态静态 |
软件特性 | 功能性能安全 | 功能性能安全 | 功能性能安全 | 功能性能安全 | 功能性能安全 |
其他测试 | 冒烟测试 | 回归测试 | 随机猴子测试 | ||
测试手段 | 手动、自动化 |
二、软件测试的原则
1、所有测试的标准都是建立在用户需求之上
2、软件测试必须基于“质量第一”的思想去开展各项工作,当时间和质量冲突时,时间要服从质量
面试:测试时间不够的情况下,(还有大量的内容没有测试)软件能不能发布?
不能发布
有的严重bug没修复,但是赶着上线,能不能放过?
不能
3、事先定义好产品质量标准,只有有了质量标准,才能根据测试结果,对质量进行分析评估
面试:需求重要么?错误的需求对测试有什么影响
4、软件项目一启动,测试也就是开始
面试:你觉得软件测试在什么阶段介入?为什么
需求阶段
5、穷举测试是不可能的
面试:软件发布了,但是有缺陷,是测试人员的错吗?
不是,在有限时间不能发现全部缺陷
6、第三方测试会更客观,更有效
7、软件测试计划是做好软件测试工作的前提
面试:你写过测试计划吗,是什么内容,测试计划能被修改吗?
8、测试用例是设计出来的,不是写出来的,是所以要根据测试目的、采取相应的方法去设计测试永猎,从而提高测试效率,更多发现错误,提高程序可靠性
设计和编写测试用例的区别
设计是一项脑力活动,
编写是一项体力活动,将设计好的内容通过文字形式表现出来
9、面试:针对已经发现发现了缺陷模块,如何进行深入测试?
对发现缺陷的模块不断测,另外关联的模块也要测试(缺陷有一种集群效应)
10、测试时保存一切测试过程文档(测试计划,测试用例,测试报告等)
11、尽早和不断地测试
12、面试:
软件项目不着急的时候,测试任务完成时,你会干什么?
反复测试
软件项目上线了/发布了,还要进行测试吗?
需要
13、测试应从“小规模”开始,逐步转向“大规模”
14、不可将测试用例置之度外
15、必须彻底检查每一个测试结果
你觉得你有什么样的缺点?(不能说的:粗心、耐心不够、不善沟通、语言表达能力不行)
斤斤计较,遇到问题穷追不舍,性格急
16、对测试错误一定要有一个确认过程