测试分类
一、按照测试对象划分
1、界面
界面测试=UI测试
(1)测试软件界面元素完整性,正确性,一致性
(2)软件界面排版布局合理、字体、颜色
(3)测试界面的自适应性,界面适应不同的页面大小(排版、重叠、图片等)
(4)界面的控件功能正常、对话框滚动条、按钮,按钮的有效状态和无效状态的区分
(5)界面设计(颜色、布局)考虑当下的时事
常见界面错误:
(1)快捷键错误
(2)文字丢失
(3)截断
(4)没有对齐
(5)文字的自动换行
(6)重叠
(7)重复的快捷键
2、可靠性
可靠性指软件正常运行的能力,软件正常运行的时间和总体运行的时间的百分比
可靠性 = 软件正常运行的时间 /(非正常运行的时间+正常运行的时间)
影响软件的可靠性的因素:网络、软件环境(安装)、硬件环境、软件自身
怎么去测试软件的可靠性?
一个周,出现故障的时间记录下来,去计算百分比
3、容错性
系统发生异常,或者由于错误操作系统软件系统发生错误,软件自我消化掉错误,或者进行修改不让客户感知,叫容错性
(1)常见的容错性处理:
数据容错性:取款机输入小于100的钱数,温馨提示;
校验容错性:校验大小写字母(自动转化大小写)
界面容错性:危险操作的警示提示
环境容错性:软件所在的环境发生故障,软件有备用方案,可以让用户无感知切换
(2)灾难恢复性测试
人为让系统发生故障,看系统自身,对于用户数据的存储和回复是否快速
4、文档测试
软件开发的相关的文档的测试
文档的术语、完整性、一致性、正确性
5、兼容性测试
(1)软件自身的兼容性
软件向前、向后的兼容性,软件开发新功能不影响旧功能的使用
(2)软件对于数据的兼容性
设计功能的时候,考虑用户已有的数据
(3)软件对应用平台的兼容性(安装的软件环境、硬件环境、APP、操作系统)
(4)软件对于第三方软件或者第三方软件数据的兼容性
6、易用性测试
用户体验测试
(1)符合标准和规范
安装软件的界面
(2)直观性
用户期望的操作在用户可见的范围之内
(3)灵活性
键盘:九宫格、全键盘、手写、拼音
(4)舒适性
(5)实用性
7、安装卸载测试
(1)不同的安装卸载途径,安装卸载软件正常
安装包、命令行、第三方等
(2)安装或者卸载过程中是否暂停,暂停后继续还可以正常安装和卸载
(3)安装过程中空间不足,有提示
(4)正常卸载软件,如果卸载取消了,那么软件可以正常使用(数据恢复)
(5)安装卸载过程中出现异常,软件可以正常处理(断电、网络连接异常等)
8、安全性测试
(1)安全性指信息安全、软件保护用户的数据,隐私,以及数据传输过程中的安全性,防止病毒侵入和黑客攻击
(2)输入域能够检测带病毒的字符串或者文件
(3)防止输入注入,SQL注入等
(4)权限分配要合理
(5)传输文件/数据,防止拦截
(6)防止爬虫,爬取信息
(7)防止黑客攻击
安全性测试方式:代码走读、工具检查
9、性能
系统性能问题表现:资源泄露、资源分配不均衡、线程死锁;查询速度越来越慢
性能指标:TPS(每秒事务处理量),每秒HTTP请求数,点击率,吞吐量,响应时间,CPU和资源利用率
10、内存泄漏
内存泄漏产生原因:程序中写的有问题,没法回收内存;API函数使用不正确,无法回收内存;分配内存后,忘记回收内存
检查代码是否资源泄露:人工检查、工具检查
二、按照是否查看代码划分
1.黑盒测试(数据驱动测试/功能测试)
(1)概念:不去关心代码内部的逻辑结构,不去查看代码,只关心软件功能的外部的输入和输出是否满足用户的需求,叫黑盒测试
常见黑盒测试设计测试用例方法:等价类、边界值、判定表、正交法、场景法、错误猜测法等
(2)优点:
不去关心软件内部的实现,不去看代码;
站在用户角度去设计测试用例,容易培养产品思维;
设计测试用例是根据软件需求来测试的,不容易遗漏需求;
2.白盒测试
(1)概念:分析代码是否规范,代码的风格是否和公司设计一致,分析代码的逻辑结构,对代码进行测试,看代码是否实现了需求
单元测试——白盒测试
(2)白盒测试方法
语句覆盖、路径覆盖、逻辑覆盖、判定覆盖、条件覆盖、判定组合覆盖、判定条件覆盖、条件与条件覆盖
(3)灰盒测试
即关心软件功能的输入和输出,也关心软件内部程序的实现
为什么不直接用灰盒测试?
灰盒测试没有白盒测试详细、完整,黑盒测试是覆盖产品功能范围最广的测试,所以灰盒测试是不能取代黑盒和白盒测试的。但是黑盒测试可以取代灰盒测试,但是不建议,需要消耗很大
※常见的测试方法有哪些?哪种测试方法用的多?
白盒测试和黑盒测试,在工作中需要按照实际情况来结合白盒测试和黑盒测试,通常是黑盒测试相对多一些
三.按照开发阶段划分
测试金字塔
特点:越往底层走,测试效率越高,定位越容易,测试独立性越高,耦合性降低
1.单元测试
对软件组成的最小的单元进行测试,查看测试单元的功能是否正常
测试阶段:测试前(TDD),测试后
测试方法:白盒测试
测试人员:白盒测试工程师,开发人员
测试依据:详细设计文档
测试内容:接口测试、局部数据结构测试、路径测试、边界测试、循环测试、局部变量测试、错误处理测试
2.集成测试
按照一定的逻辑和策略把单元模块组合在一起,形成一个具有完整功能的大模块
测试阶段:单元测试之后
测试方法:灰盒测试
测试人员:黑盒测试工程师、白盒测试工程师
测试依据:概要设计文档
测试内容:模块功能的正确性,组成模块的单元之间的接口测试,全局数据结构测试,单个模块的功能缺陷对整个功能的影响
冒烟测试
由测试人员来执行,检查系统主要功能和主要的流程是否正常,评估软件/系统是否具备可测试的条件/可测试的标准
3.系统测试
对软件系统进行全面的功能和非功能测试
测试阶段:集成测试之后
测试对象:整个软件系统
测试方法:黑盒测试
测试人员:黑盒测试工程师
测试依据:需求设计文档
测试内容:系统功能、界面、可靠性、易用性、容错性、兼容性、安全性、性能
回归测试:系统引入新的代码,测试人员需要验证新的代码对旧的功能产生的影响所做的测试
冒烟测试:在软件开发完成后,对软件的基础功能和核心流程进行测试,测试通过后,才可以进入正式测试环境,如果测试不通过,测试人员有权利打回,让开发重新修改直到冒烟成功(准入原则)
4.验收测试
软件在上线前最后一次测试,也是交付测试
测试阶段:系统测试之后
测试对象:整体软件系统
测试依据:用户需求
测试人员:用户
测试方法:黑盒测试
测试内容:同系统测试,可用性分析文档,需求设计文档,软件设计文档等
四、按照实施组织划分
1.α测试
在β测试之前,把用户或者非测试和开发的人请到开发现场去测试
测试环境:开发环境
测试人员:非开发和测试的人
2.β测试
让实际用户在实际使用环境中进行测试,测试完成后对问题进行统一汇总反馈
α测试与β测试区别:测试环境不同;测试时间集中程度不同;α测试优先β测试
3.第三方测试
软件第三方测评机构,按照软件行业的标准规范对软件进行测试
五、按照代码是否运行划分
1.静态测试
不运行代码,检查代码的风格,格式是否符合公司的规范标准,检查代码的逻辑结构是否满足需求要实现的功能
2.动态测试
运行代码,给程序响应的输入,看是否得到期望的输出
六、按照是否手工划分
1.手工测试
按照测试用例,手工去测试系统的功能
缺点:量大容易出错;效率低;有些极端情况无法测试到
优点:进行探索性测试,比较灵活
2,自动化测试
机器按照人为设定好预设条件运行,包括正常的异常的,去检查软件系统有没有符合设定的条件
自动化测试把手工测试用例转化为机器执行的过程
七、按照地域划分
软件国际化:进行软件设计和开发的时候,使用一种工程技术,使得软件在转化为不同国家语言时,不用修改源码,适应不同语言,不同国家的风俗习惯等
如:苹果手机、华为手机
1.国际测试
(1)外观上看界面功能没有缺失,正常使用
(2)是否适应这个歌国家的使用习惯,文字,日期,风俗习惯等
(3)度量单位 货币 重量单位
(4)不同分辨率下软件的正常展示和使用
(5)不同硬件设备
2.本地测试(具体到某一个国家)
测试流程执行
1.需求测试
分析需求,验证需求的正确性和合理性,需求要逻辑自洽,无二义性
2.提测版本测试
冒烟测试
3.系统测试
功能,界面,易用性,安全性。兼容,性能
4.回归测试
BUG回归
用例回归
5.测试报告
总结测试情况