测试的概念及分类
二、软件测试概念
1.软件测试的分类
(1)按照开发阶段划分
单元测试:又称为模块测试。一般要读程序的代码,由开发人员自己去完成(交叉测试),但是一般不认为是在做测试。(需要高端测试人员,懂代码和算法)
集成测试:又称为组装测试。比较多的涉及到接口测试(接口测试工具和方法专门学习,企业非常需要接口测试工程师),它是一个持续不断的过程。
确认测试:也称为有效性测试,有时也被成为冒烟测试。在模拟环境下,确认功能是否实现、是否与用户的预期要求一致,一般都是正向的测试,且一般不作为正式的测试环节或者测试阶段。
系统测试:在真实的系统环境下,检查完成的系统能否和系统(硬件、外设、网络、系统和支持平台)正确配置、连接,并最终满足用户的所有需求。全面的-系统所有功能的测试;模拟所有软件用户的操作;全方位的:和硬件系统的联系;和系统软件的联系;和其他软件的关系;
验收测试:是软件产品检验的最后一个环节,按照项目任务书或合同、供需双方约定的验收依据或文档进行的整个系统的测试与评审,决定是否接受或拒收系统。一般用于供求双方。
一般由三种验收测试的主体:
α测试:软件的开发商自己进行的交付前的测试。
β测试:软件的需求方自己进行的测试。
γ测试:第三方的软件测试。
(2)按照测试技术划分
黑盒测试:通过软件的外部表现来发现其缺陷和错误。
白盒测试:通过对程序内部结构的分析、检测来寻找问题。检查软件内部动作是否按照设计说明的规定正常进行。
灰盒测试:关注输出多余输入的正确性,也关注内部表现,但不详细。
(3)按照代码运行划分
静态测试:指不实际运行被测对象,而只是静态地检查程序代码、界面、或文档中可能存在错误的过程。代码测试-主要测试代码是否符合相应的标准和规范。界面测试-主要测试软件的实际界面与需求中说明是否相符;文档测试-主要测试用户手册和需求说明是否真正符合用户的实际需求。
动态测试:指实际运行被测对象,输入测试数据,检查实际输出结果与预期结果是否一致。
(4)按照软件特性分类
功能测试:属于黑盒测试,检查实际软件的功能是否符合用户的需求。(逻辑功能测试、界面测试、易用性测试、安装/卸载测试、兼容性测试)
性能测试:主要关注软件中的某一功能在指定的时间、空间条件下是否正常
安全性测试:验证安装在系统内的保护机制能否在实际应用中对系统进行保护,使之不被非法入侵,不受各种因素的干扰。
(5)其他测试类型
回归测试:对软件的新版本测试时,重复执行之前某一个重要版本的所有测试用例。为了验证之前版本产生的缺陷已全部被修复,确认修复这些bug没有引发新的缺陷。
冒烟测试:是指在对一个版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。
随机测试:指测试人员基于经验和直觉的测试,发现一些边缘性的错误。
猴子Monkey测试:把自己当成不懂产品的笨蛋或小动物,随便乱点,没有任何主观意识和想法参与进来,让一些意想不到的操作造成错误的结果。
1)按照测试运行主体划分
手工测试(功能测试):(点点点)
自动化测试:利用工具软件或者编写代码的方式,测试被测的软件系统。(游戏外挂)
总结:
| 单元测试 | 集成测试 | 确认测试 | 系统测试 | 验收测试 |
测试技术 | 黑盒测试 白盒测试 | 黑盒测试 白盒测试 灰盒测试 | 黑盒测试 白盒测试 | 黑盒测试 白盒测试 | 黑盒测试 白盒测试 |
代码运行 | 动态 静态 | 动态 静态 | 动态 静态 | 动态 静态 | 动态 静态 |
软件特性 | 功能 性能 安全 | 功能 性能 安全 | 功能 性能 安全 | 功能 性能 安全 | 功能 性能 安全 |
其他测试 |
|
| 冒烟测试 | 回归测试 | 随机测试 猴子测试 |
测试手段 | 手工测试 自动化测试 |
|
|
|
|
2.软件测试的原则
*测试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多地发现错误,提高程序地可靠性。
*测试时间不够地情况下,时间和质量冲突,时间要服从质量。
*第三方测试会更客观、更有效。
*软件测试计划是测试工作的前提。
*对发现错误较多地程序段,应进行更深入的测试。一段程序中已发现的错误数越多,其中存在的错误率也就越大。
*重视文档,妥善保存一切措施文档和测试过程。
*对测试结果一定要有一个确认的过程。
#测试##学习路径#