目录
一.测试对象划分
1.界面测试
(1)为什么需要界面测试
界面是直接与用户进行交互,界面设计的好坏直接体现了用户使用的感受。
(2)如何进行界面测试
- 首先进行UI测试,保证页面与UI设计稿保持一致。
- 测试界面的每一个功能是否正确(方法是从上到下,从左到右进行测试)。
- 测试页面的布局是否合理,字体问题(大小和样式),图片排版,清晰程度等。
- 测试页面的控件是否正常,如滚动条,按钮,复选框,文本框。
- 还要进行不同分辨率进行测试(因为可能是不同设备进行使用),如页面大小变化时适应性好,变化后页面的布局正常,字体正常,图片正常;以及功能的正常使用。
(3)界面测试的常见错误
不合适的快捷键(无法使用键盘输出),重复的快捷键
文字的截断(导致显示的内容不清楚)
文字自动换行(不该换行的却换行)
文字重叠
2.可靠性测试
(1)如何计算可靠性
可靠性=正常运行时间/(正常运行时间+非正常运行时间)
(2)如何进行可靠性的测试
首先需要考虑影响可靠性的因素如:软件本身,外界因素(断电,网络不好,硬件设备问题,软件系统问题)
3.容错性测试
(1)什么是容错性
由于自身或者外部的异常操作使系统发生异常,而系统能够自我处理这种异常的能力就是容错性。
(2)常见的容错性测试
- 数据级别:如错误时间13月,5月34日。
- 校验级别:如账号输入的长度限制。
- 界面级别:当进行一些危险性操作的时候会给用户一些提示信息,如禁用或者危险的按钮。
- 环境级别:当遇到断电,断网,硬件设备故障时,可以无缝详解到备用的服务上。
- 灾难恢复性测试:人为的让系统出现故障,查看系统是否能够快速恢复稳定,以及用户数据的不丢失。
4.文档测试
在开发过程中,产生的各种文档进行测试,如需求文档,设计文档,功能文档,用户使用手册来进行测试,来验证文档的正确性,一致性,完整性。
5.兼容性测试
- 平台的兼容性:如不同的浏览器,操作系统,品牌,版本。
- 软件本身的兼容性:软件前后的兼容性,新功能不能影响老功能的使用,不能影响后续功能的开发。
- 软件对用户数据的兼容性:如果需要对用户信息在数据库中增加新的列,则不能影响用户之前的数据存储。
- 软件对第三方软件的兼容性:不能影响其他软件的使用;如果和其他软件有交互,则数据要有兼容性。
6.易用性测试
- 标准性和规范性:如一些恰当的对话框,一些醒目的提示,如红色一般代表严重的错误
- 直观性:让用户可以直接看到自己预期的操作或结果
- 灵活性:根据自己的习惯可以设置一些自己的操作方式
- 舒适性:让用户对自己的操作有感知,如安装一个软件的时候有进度条的展示
7.安装与卸载
- 软件正常的安装与卸载,软件的更新
- 安装软件时出现的异常,如断电,断网,死机;安装时出现内存不足是否有提示
- 暂停卸载后,之后是否可以继续卸载;软件卸载到一半,取消卸载后,软件是否可以正常使用
- 软件卸载时出现的异常,如断电,断网,死机
- 卸载后的数据信息是否清除干净
8.安全测试
- 防病毒,防黑客攻击
- 如前端的xss注入,后端的SQL注入
- 防爬虫
- 上传或下载时对数据的篡改
- 假冒ID
9.性能测试
导致性能的原因:
- 资源泄漏(内存分配后忘记回收,API函数使用不正确导致无法回收,内存分配方式问题导致无法回收)
- 资源瓶颈
- 线程死锁,线程阻塞
- 查询速度或效率低
10内存泄露
内存泄漏会导致系统·运行越来越慢
导致内存泄漏的原因:
- 内存分配后,没有进行回收
- 没有调用正确的API函数,不能进行回收
- 内存分配方式存在问题,不能进行回收
二.按照是否查看代码进行划分
1.黑盒测试
(1)什么是黑盒测试
不关心软件内部代码结构和实现,只关注输入输出是否符合预期。
(2)黑盒测试的好处
- 不用看代码
- 站在用户的角度去使用功能,有利于培养用户思维
- 黑盒测试是按照需求进行测试,不容易遗漏需求
(3)黑盒测试方法
等价类,边界值,因果图,场景法,错误猜测法,正交法
2.白盒测试
(1)什么是白盒测试
针对代码进行测试,分析和测试代码的逻辑和结构,实现的功能是否符合用户的需求
(2)白盒测试方法
语句覆盖,路径覆盖
条件覆盖,判定覆盖,条件组合覆盖(等价类和边界值结合),判定组合覆盖(如TT,TF,FT,FF),判定和条件组合覆盖.
(3)如何进行白盒测试
Java中使用Junit(单元测试框架)进行单元测试
3.灰盒测试
介于黑盒和白盒测试之间
三.按照开发阶段进行划分
1.单元测试
测试阶段:编码前(TDD(测试驱动开发:测试人员先写测试代码,开发人员根据异常写代码,直到测试用例代码通过)),编码后
测试对象:组成软件的最小单元模块
测试方法:白盒测试
测试人员:白盒测试工程师或开发人员
测试依据:详细设计文档(软件测试V模型)
测试内容:模块的接口,局部数据的测试,边界测试,异常测试,路径测试
2.集成测试
按照一定的策略把单元模块组合形成一个大的功能模块,对这个功能模块进行测试叫做集成测试
测试阶段:单元测试后
测试对象:集成模块
测试方法:灰盒测试
测试人员:黑盒测试工程师,开发人员
测试依据:概要设计(V模型)
测试内容:整个模块功能的正确性,单元模块之间接口的正确性,全局数据结构测试,单个模块的缺陷对整个功能模块的影响,模块之间功能的冲突
3.系统测试
当软件开发完成后,系统的全面的对软件的功能进行测试
测试阶段:集成测试后
测试对象:整个系统
测试方法:黑盒测试
测试人员:黑盒测试工程师
测试依据:需求设计文档(V模型)
测试内容:系统的功能,界面,易用性,可靠性,容错性,可移植性,安全性,性能,兼容性等
回归测试:当系统引入了新代码的时候,查看新的代码是否影响了旧的功能,进行回归测试 (迭代,修改bug的时候)
冒烟测试:正式测试之前,对软件的基本流程和核心功能进行测试,如果测试通过,才同意正式测试
4.验收测试
软件上线前的最后一道测试,由用户或产品经理发起
测试阶段:系统测试后
测试内容:同系统测试
测试方法:黑盒测试
测试依据:用户需求(V模型)
测试人员:用户/产品方
测试内容:同系统测试(还包含一些文档,用户使用手册,功能设计文档)
四.按照实施组织进行划分
1.α测试
用户到达开发现场或者除了开发和测试人员以外的公司内部人员进行测试
测试环境:开发环境
α测试先于β测试之前
2.β测试
实际用户在实际使用环境下进行测试,不限时间地点
α与β测试的区别:测试环境不同,时间集中程度不一样α测试优先于β测试
3.第三方
第三方软件测评机构对软件进行测试 业界的标准进行测试
五.按照运行是否划分
1.静态测试
不运行代码,分析代码的风格,是否符合公司的标准规范,分析代码的结构,逻辑算法,方法的实现是否满足用户的需求
2.动态测试
运行代码,执行测试用例,进行测试。
六.按照是否手工进行划分
1.手工测试
手工执行测试用例,查看测试结果
缺点:量大容易出错,效率低
优点:不可替代的,无法被自动化测试替代,手工测试的过程是认为人为可控的,有利于探索性测试
2.自动化测试
系统按照预先设计好的条件去执行测试,这些条件包括正常和异常的方面
自动化测试脚本:UI自动化,接口自动化,性能自动化
七.按照地域进行划分
软件国际化:开发软件的时候使用了一种工程技术,使得软件在适用不同的国家的语言,风俗使用习惯的时候不用去改变软件的源码就可以做到。
软件国际化测试,软件本地化测试