测试分类总结

时间: 2023-09-30 admin IT培训

测试分类总结

测试分类总结

测试金字塔:单元测试、业务测试、界面测试

1.按照开发阶段划分:单元测试、集成测试、系统测试、验收测试;

(1)单元测试:单元测试就是对系统或者程序的最小的功能单元进行测试。一般指一个有具体功能的方法;
测试阶段(时间):编码前,编码后(TDD)
TDD:测试驱动开发,测试人员先写好测试用例,第一次跑测试用例,报异常,开发人员根据异常去写开发代码,不断进行测试,直到测试用例没有异常。
测试单元:程序中最小的单元
测试依据:详细设计文档和代码注释
测试方法:白盒测试
测试人员:开发人员或者白盒测试工程师
测试内容:方法参数(类型,个数,顺序),路径(if else),异常,边界,局部数据结构

如何进行单元测试?Java Junit白盒测试的框架

(2)集成测试:把单元模块按照一定的策略组合起来形成一个大的功能模块,我们对这个功能模块进行测试,叫做集成测试。
测试阶段:单元测试之后
测试人员:黑盒测试工程师/白盒测试工程师
测试方法:灰盒测试
测试依据:概要设计,接口文档
测试内容:接口,全局数据变量,模块和模块之间的功能是否冲突,单个模块对多个模块是否有影响;接口的功能是否实现

(3)系统测试:就是对我没给你的系统的功能进行全面测试
测试阶段:集成测试之后
测试人员:功能测试工程师(黑盒测试工程师)
测试方法:黑盒测试
测试依据:软件需求文档
测试内容:功能,界面,性能,易用性,兼容性,可移植性,安全性,可靠性等

回归测试和冒烟测试属于系统测试。

回归测试:对程序引入新的代码的时候,我们要看新引入的代码对旧的功能有没有影响,就需要做回归测试(自动化回归)

冒烟测试:在测试人员正式介入测试之前,测试人员(或者开发人员)要对系统的主要功能或者核心的流程进行测试,叫做冒烟测试,又称准入测试。

(4)验收测试:用户来对系统进行全面测试,系统功能,文档
测试阶段:系统测试之后
测试依据:用户需求
测试人员:用户
测试方法:黑盒测试
测试内容:系统的所有的功能,基本和系统测试的内容是一样的,除此之外,对用户手册,开发文档,设计文档等进行验收。

2.按照测试的实施组织划分:α测试、β测试、第三方

α测试其实就是在开发环境下,让非开发人员和非测试人员来进行系统的测试

β测试在用户真实使用环境下,用户不受时间地点限制,进行测试,测试出的问题会反馈给开发人员,开发人员会不断进行修改,知道没有问题。

第三方是第三方的软件的测试机构按照一定的标准规范进行软件测试

3.按是否运行划分测试类型
(1)静态测试:不运行代码,检查(代码走查,code review),看代码的书写规范,风格是否符合公司标准,看代码的逻辑结构,功能是否符合需求。
测试内容:功能,性能,兼容性,易用性,可靠性,安全性,可维护性,可移植性。
(2)动态测试:运行代码部署系统,手工或者跑自动化脚本之类的测试。

4.按照是否手工区划分
(1)手工测试:具有一定的灵活性,(根据实际系统的情况,随时改变测试的思路),探索性测试。
缺点:测试用例很多,比较繁琐,量大,时间长容易出错,效率低。
(2)自动化测试:提前按照一定的脚本设定好条件,让机器自动去执行,效率高。
优点:不会出错,除非机器本身出现故障了。
缺点:不是所有的项目(系统)适合自动化测试,功能比较稳定的系统适合自动化测试。

5.按照是否查看代码划分
(1)黑盒测试:不关注软件内部的结构,逻辑,代码的实现,只关心输入和输出,看相应的输入是否对应着和需求一致的输出。
具体方法:等价类,边界值,因果图,场景法,错误猜测法,正交法。
(2)白盒测试:主要测试系统内部的逻辑结构是否符合需求,关注代码的实现功能,主要对代码进行测试。
具体方法:语句覆盖,路径覆盖,条件覆盖,判定覆盖,条件组合覆盖,判定组合覆盖。
(3)灰盒测试:介于黑盒和白盒之间。

6.按照测试对象划分
(1)业务测试(场景测试):其实就是跟需求的设定,把不同的功能点按照一定的策略组合起来,形成一个业务流。
(2)界面测试:用户通过界面和系统进行直接交互的,界面的设计直接决定了用户体验感官。
界面测试的依据:UI设计师的界面设计稿,元素的布局,排版,大小都标记清楚。
测试内容:字体,图片,控件,排版布局,背景,界面自适应
(3)容错性测试:当系统由于外部的一些异常操作或者外部的环境引起系统的错误,但是系统可以自我消化掉这些问题,不直接展示给用户,这个叫做系统的容错性。
数据级别的容错性:如限制输入长度。
校验级别的容错性:如输入框前后空格开发时直接去掉,大小写不敏感。
界面级别的容错性:对于一些危险的操作,在界面直接屏蔽掉不让用户使用,如直接使用下拉框,或者直接让用户勾选。
环境级别的容错性:断电、断网、服务器瘫痪,有备选方案,可以让用户无感知切换。
(4)兼容性测试:
操作系统的兼容性
web系统  不同浏览器上以及相同浏览器的不同版本上都可以正常使用
APP系统  不同的手机系统
系统本身向前或者向后的兼容性
系统和其他相关软件的兼容性
数据的兼容性
(5)易用性:软件满足用户使用的标准和规范,使得用户使用软件的时候能够更加方便(得心应手)、满足一定的标准和规范,满足用户的使用习惯。
直观性:用户能够第一眼看到自己想要操作的功能。
灵活性:给不同的用户群体提供了不同使用功能的方式,可能会带来系统设计的复杂性,灵活性和复杂性做一个平衡。
实用性:系统的功能和系统的设计关联,系统本身的功能和展示给用户的画面,信息要一致。
适用性
(6)性能:
为什么要进行性能测试?
系统是否可以快速响应用户的请求;在系统使用的用户高峰期(流量高峰期),系统本身可以处理所有的用户请求;在系统使用高峰期,系统可以稳定的运行;在流量的高峰期,系统不仅可以稳定运行,还可以快速响应用户请求;系统可以处理预期的事务的数量。
进行性能测试主要看哪些指标:响应时间、每秒事务处理数(TPS)、点击率(HPS)、吞吐量。
系统的软硬件配置会对系统性能有影响。
(7)APP安装和卸载:
安装APP的方式都有哪些?
应用商城,安装包,第三方(软甲管家,豌豆荚),扫码下载
测试人员,命令行安装,软件包安装(apk,ipa)测试包。adb命令。
(8)安全性的测试:
SQL注入,Xss注入,防攻击,防爬虫,检测到病毒。
(9)内存泄漏测试
原因:在设计测试的时候,内存分配好了之后没有及时释放,或者由于错误的使用一些API函数,导致无法释放内存,系统就会运行越来越慢,知道崩溃。
具体原因:分配内存,忘记回收;分配内存的方式有问题;API函数使用不正确。
防止内存泄漏:走查代码,使用工具进行检测。

7.按照地域划分进行的测试:
软件本地化测试
软件国际化测试
软件国际化:软件在进行设计开发的时候使用了一种工程技术,这种工程技术可以使我们的软件在适用不同的国家语言或者风俗习惯的时候不需要改变源码,可以之间转换使用。