目录
一、测试类型的分类
1、按测试对象划分
2、是否查看代码划分(重点)
🌷(1)黑盒测试
🌷(2)白盒测试
🌷(3)灰盒测试
3、按照开发阶段划分(重点掌握时间)
🌷(1)单元测试
🌷(2)集成测试
🌷(3)系统测试
🌷(4)回归测试
🌷(5)冒烟测试
🌷(6)验收测试
4、按照实施组织划分测试
🌷(1)α测试
🌷(2)β测试
🌷(3)第三方测试:介于开发方和用户方间的组织的测试。
5、按照是否运行代码划分
6、按照是否手工划分
7、按照测试地域划分
一、测试类型的分类
1、按测试对象划分
(1)界面测试
界面测试(简称UI测试)。
一般包括如下内容:
(1)验证界面内容显示的完整性,一致性,准确性,友好性;
(2)验证整个界面布局和排版是否合理;
(3)对界面的不同控件的测试;
(4)界面的布局和色调是否符合当前实事发展。
常见的界面错误:图片颜色不符合预期,文字大小不符合预期,页面出现错别字、字体出现重叠,出现阶段,文字不合理不能换行等。
(2)可靠性测试
比如硬件、软件、网络故障或服务器断电、服务器带宽不够等。
可用性指标一般要求达到4个或5个“9”,即99.99%或者99.999%。如果可用性达到99.99%,对于一个全年不间断(7*24的方式)运行的系统,意味着全年(252600min)不能正常工作的时间只有52min,不到一个小时。如果可用性达到99.999%,意味着全年不能正常工作的时间只有5min。
(3)容错性
容错性指的是系统能够处理异常,捕获用户的错误操作而不至于让系统崩溃,从而提高用户的可用性。
(4)文档测试
测试人员接触到比较多的文档有:需求文档(软件规格说明书)、需求文档、技术文档、UI设计稿。
(5)兼容性
(0)考虑系统自身版本的兼容,用户已有数据的兼容;
(1)APP:考虑手机品牌和手机操作系统。
(2)PC端的应用程序:电脑品牌、电脑操作系统(linux,mac,linux)
(3)web应用程序:浏览器版本(Edge,IE,chrome,firefox)
(4)第三方APP兼容:手机上装了美团,再安装一个饿了么,是否能兼容?
(6)易用性
易用性主要包含七个要素:符合标准和规范、直观性、一致性、灵活性、舒适性、正确性和实用性。
(7)安装卸载测试
(1)软件不同的安装方式和卸载方式:应用时候出那个、下载apk安装,网络上下载、通过技术进行安装;卸载:长安点击x卸载,删除安装路径下的文件,技术指令下载...
(2)应用在不同版本下安装(安装兼容性):微信1.0版本,用户更新完成变为1.1版本;用户下载了1,1版本,此时再下载是否会覆盖;
(3)安装空间不足是否有提升;
(4)安装和卸载环境中出现的各种问题:断电断网等会继续自动下载呢还是手动安装等。
(8)安全测试
(1)代码中的安全性问题:例如SQL注入;
(2)数据文件、邮件文件、系统配置文件等里面含有危害系统的信息或者数据;
(3)篡改,对数据的恶意修改等。
(9)性能测试
比如资源泄露,资瓶颈、查询速度慢或者效率低,受外部系统影响大等。
(10)内存泄露
内存分配完之后没有回收,某些API函数的使用不正确,或者程序出现死循环等。
2、是否查看代码划分(重点)
🌷(1)黑盒测试
黑盒测试是在不关心内部代码试下,通过一些科学的手段,给测试系统发起测试数据(黑盒测试的用例设计方法:等价类,边界值....),如果预期结果与执行结果一致,就说明测试通过。
优点:
- 不需要了解程序内部的代码以及实现,不关注软件内部的实现。
- 从用户角度出发设计测试用例,很容易的知道用户会用到哪些功能,会遇到哪些问题,锻炼测试人员的产品思维;
- 测试用例是基于软件需求开发文档,不容易遗漏软件需求文档中需要测试的功能。
缺点:不能覆盖所有的代码。
🌷(2)白盒测试
白盒测试主要包含六种测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
优点:代码覆盖率高
缺点:业务上的功能覆盖不高。
问题1:白盒测试好还是黑盒测试好?
没有一定的谁好谁坏,只要符合当前业务并能够保证软件质量的测试方法,就是好的测试方法。
问题2:针对冒泡排序代码测试一下?
- 参数数量,参数类型,数组长度
- 循环遍历到,条件遍历到,语句都要覆盖到;
- 如果有异常 要进行捕获
- 代码的编写风格
🌷(3)灰盒测试
灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输入输出的正确性,而且也关注程序内部的状态。
3、按照开发阶段划分(重点掌握时间)
🌷(1)单元测试
- 在Java中测试对象是方法,类;在C中的测试对象是函数。
- 属于白盒测试,拿着代码测试代码。
- 测试阶段:在编码后编码前(在编码前的方式又叫TDD)
- 测试内容:模块接口测试,局部数据结构测试、路径测试、错误处理测试、边界测试
🌷(2)集成测试
- 测试阶段:一般在单元测试之后进行;
- 测试对象:接口
- 测试方法:白盒测试与黑盒测试相结合;
🌷(3)系统测试
- 测试对象:整个系统或者软件
- 测试阶段:集成测试通过之后
- 测试方法:黑盒测试
- 测试内容:界面外观,功能,性能,安全,兼容、易用性
🌷(4)回归测试
- 回归测试指的是修改了旧代码之后,重新进行测试来确认修改有没有引入新的错误或者导致其他代码发生错误。
- 属于系统测试。
🌷(5)冒烟测试
- 冒烟测试的对象是每一个新编译的需要正式测试的软件版本。
- 需求——>设计测试用例(包含冒烟测试用例)——>测试用例评审——>开发提测(开始测试)->执行测试 (执行冒烟测试)(正式测试)
- 冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件主要功能和核心流程正常,在正式进行系统测试之前执行。冒烟测试一般在开发人员开发完毕后提交给测试人员来进行测试时,先进行冒烟测试,保证基本功能正常,不阻碍后续的测试。如果冒烟测试通过,则测试人员开始进行正式的系统测试,如果不通过,则测试人员可以让开发人员重新修复代码直到冒烟测试通过,再开始进行系统测试。
- 属于系统测试。
🌷(6)验收测试
验收测试是部署软件之前的最后一个测试操作,也叫交付测试;测试方法属于黑盒测试。
4、按照实施组织划分测试
🌷(1)α测试
🌷(2)β测试
🌷(3)第三方测试:介于开发方和用户方间的组织的测试。
α测试与β测试的的区别:
- 测试的场所不同:α测试是指把用户请到开发方的场所来测试,β测试是指在一个或多个用户的场所进行的测试。
- α测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。β测试的环境是不受开发方控制的,用户数量相对比较多,时间不集中。
- α测试先于β测试执行。通用的软件产品需要较大规模的β测试,测试周期比较长。
5、按照是否运行代码划分
(1)静态测试(Static testing)
静态测试(static testing)就是不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。
(2)动态测试(Dynamic testing)
动态测试(dynamic testing),指的是实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。大多数软件测试工作都属于动态测试。
6、按照是否手工划分
(1)手工测试
手工测试就是由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。
(2)自动化测试
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。
7、按照测试地域划分
(1)国际化测试
软件的国际化和软件的本地化是开发面向全球不同地区用户使用的软件系统的两个过程。而本地化测试和国际化测试则是针对这类软件产品进行的测试。
(2)本地化测试
之前我们提到的全是本地化测试。