目录
一. 按照测试对象划分
1. 界面测试*
通常我们打开浏览器显示的页面,小程序的页面,公众号等这些用于肉眼直观看到的都属于界面,用户和软件进行交互的时候,通常都是通过界面和软件进行沟通的,所以界面还是很重要的。
界面测试的时候,一般会参考规格说明书和UI视觉稿,旨在验证界面是否完整且合理。
一般的测试内容包括:
1. 验证界面内容显示的完整性,一致性,准确性,友好性。比如界面内容对屏幕大小的自适应,换行,内容是否全部清晰展示;
2. 验证整个界面布局和排版是否合理,不同板块字体的设计,图片的展示是否符合需求;
3. 对界面不同控件的测试,比如,对话框,文本框,滚动条,选项按钮等是否可以正常使用,有效和无效的状态是否设计合理;
常见的错误:
重叠,截断(内容太多的时候,没有以...的形式出现,而是截断),文字不合理自动换行等。
2. 可靠性测试
可靠性即可用性,是指系统正常运行的能力或者程度,一般用正常向用户提供软件服务的时间占总时间的百分比表示。可靠性 = 正常运行时间/(正常运行时间+非正常运行时间)*100%通常需要借助工具来测试。
3. 容错性测试
容错性测试是指系统能够处理异常,用户的错误操作而不至于系统崩溃,从而能够提高系统的可用性。
容错性测试一般包括:
输入异常数据或进行异常操作,以检验系统的保护性。如果系统的容错性好,系统只给出提示或内部消化掉,而不会导致系统出错甚至崩溃。(在计算的时候出现了 4 / 0 的时候,会触发异常,捕获异常。)比如数据级测试,环境容错性测试,界面容错性测试;
4. 文档测试
可以理解为针对需求文档进行分析,也就是针对用户提出的需求进行分析。
5. 兼容性测试*
对于软件的兼容性测试,一般包括以下内容:
1. 浏览器兼容:Chrome,edge等;
2. 操作系统兼容:IOS,Linux,Windows等;
3. 设备兼容;
4. 版本兼容;
5. 应用平台的兼容;
6. 易用性兼容*
软件产品也始终关注用户体验,让用户获得舒适,易用的体验,针对软件这方面的测试称之为易用性测试。这一块在前面的文章中也给有介绍。
7. 安装卸载测试*
安装卸载测试一般包括以下部分:
1. 软件不同的安装和卸载方式;2. 应用是否可以在不同的系统,版本下安装(安装兼容性);3. 安装或者卸载过程中是否可以手动暂停,或者取消;4. 安装空不足的时候系统是否有提示;5. 卸载和安装过程中出现环境问题,软件是否可以正常并且合理的应对,比如死机,断电,断网等;
二. 按照是否查看代码划分
1. 黑盒测试*
黑盒测试是指不考虑程序内部逻辑和结构,只注重于软件的功能的情况下,检查系统的功能是否按照需求说明书的规定正常使用,是否能适当的接收输入数据而输出正确的结果;
黑盒测试也称为数据驱动测试;
黑盒测试的优点:
1. 不需要了解关注程序代码的内部实现;
2. 从用户角度出发设计测试用例;
3. 测试用例是基于需求说明书来的,不容易遗漏;
代码覆盖率低,业务覆盖率高;
常用的黑盒测试方法:等价类,边界值,判定表,正交表,场景设计法...
2. 白盒测试*
白盒测试更注重于程序的内部实现,针对程序的内部逻辑结构来设计测试用例,测试程序的运行是否符合预期;
白盒测试也称为结构测试和逻辑测试;
白盒测试的代码覆盖率高,但是业务覆盖率低;
常用的白盒测试方法:语句覆盖、判定覆盖、条件覆盖...
3. 灰盒测试*
灰盒测试是介于黑盒测试和白盒测试之间的一种测试,既要关注程序的输入输出的正确性,也要关注程序的内部逻辑结构。
灰盒测试一般用于 集成测试阶段;
4. 补充
常见的测试方法有哪些?哪种测试方法用的多?
常见的有黑盒测试和白盒测试,具体哪种测试方法的使用需要结合实际场景来选择,正常使用的多的是黑盒测试,同时也需要依靠白盒测试来准确的锁定程序出现的错误。
三. 根据开发阶段划分
1. 单元测试*
测试方法:白盒测试;
测试对象:模块,类似于Java中的一个方法;
测试内容:语句的正确性,判断条件的正确性等;
在Java中通常可以使用 Junit 框架来进行单元测试;
2. 集成测试*
集成测试,可以理解为在单元测试结束后,集成各个单元模块来进行测试;主要是检查单元与单元之间的接口是否正常运行。
测试阶段:一般在单元测试之后;
测试对象:单元模块之间的接口;
测试方法:黑盒测试和白盒测试;
测试内容:模块之间的数据传输,功能关系等;
3. 系统测试*
将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。
测试阶段:集成测试之后;
测试对象:整个系统;
测试方法:黑盒测试;
测试内容:功能,性能,界面,易用。安全,网络,兼容,中断等;
4. 回归测试
5. 冒烟测试*
冒烟测试可以理解为对一个系统软件进的核心功能进行测试,一般是在系统测试之前执行的,只有冒烟测试后,确认系统的核心功能没问题,基本功能正常,再进入系统测试。如果不通过就由开发人员重新修复漏洞,直至通过。
6. 验收测试*
验收测试是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。目的是确保软件的功能都完备,软件系统都满足用户需求。
测试阶段:系统测试之后;
测试对象:整个系统;
测试方法:黑盒测试;
测试内容:同系统测试;
四. 按测试实施组织划分
α测试和β测试
五. 按是否手工划分
1. 手工测试*
人为的去输入用例,观察结果,作出反馈。
2. 自动化测试*
通过运行应用程序来代替手工执行,将人为的测试行为转换为机器执行。
3. 补充
自动化测试是否能够完全代替手工测试?
不能,只能替代一部分。用户使用软件的时候,各种各样的场景都有可能会遇到,但是自动化代码是写死的,因此所产生的测试思路不可能是绝对完善的。而能代替的这一部分通常情况下,是指操作重复性比较高的测试环节,例如登录注册等。