目录
按测试对象分
界面测试
界面直接和用户交互,界面设计的好坏决定了用户使用软件的直观感受
UI测试
- 保证界面和UI设计稿的一致性,正确性
- 测试界面的每一个功能的正确性(从上到下,从左到右)
- 界面布局排版合理(字体大小,图片布局排版,清晰程度)
- 界面的控件功能是否正常(滚动条,按钮,文本框)
- 进行界面的不同分辩率的测试
- 页面从小到大变化过程中衔接丝滑,让用户可接受
- 页面的字体不模糊不消失,不重影
- 页面图片不消失,排版布局合理
- 页面功能可正常使用
可靠性测试
可靠性 即可用性,是指系统正常运行的能力或者程度,一般用正常向用户提供软件服务 的时间占总时间的百分比表示。可靠性=正常运行时间/(正常运行时间+非正常运行时间)
系统非正常运行的时间可能是由于硬件,软件,网络故障或任何其他因素(如断电)造成的,这些因素能让系统停止工作,或者连接中断不能被访问,或者性能急剧降低导致不能使用有服务等 (不同系统,可靠性的要求是不一样的)
容错性测试
比如:输入账号6~16位,最多只能输入16位,到第17位就输不进去了;注册时要求输入两次密码,并检测前后信息的一致性。断电,断网(人为让系统发生故障),测试系统能否很快恢复稳定。
文档测试
文档:整个开发过程中产生的各种文档,需求文档,设计文档,功能文档,用户使用手册
文档测试的关注点:
文档的正确性,一致性,完整性,专业术语,易用性
兼容性测试
- 平台的兼容性:web网页(各种浏览器,操作系统的兼容性)APP:(不同系统(IOS/Android),不同品牌,不同系统版本)
- 软件本身兼容性:软件对本身功能前后的兼容性,比如开发的新功能不能影响老功能,也不能影响后续功能的开发。
- 软件对第三方软件的兼容性:不能影响其他软件的使用;如果和第三方软件有交互,数据要有兼容性。
易用性测试
易用性包含七个要素:符合标准和规范,直观性,一致性,灵活性,舒适性,正确性和实用性。
标准性和规范性
用户界面上的各种信息应该符合规范和习惯,否则用户使用起来会不舒适,并得不到用户的认可。测试人员需要把与标准规范,习惯不一致的问题报告为缺陷。
直观性
用户界面的直观性,要求软件功能特性易懂,清晰。用户界面布局合理,对操作的响应在用户的预期之中。
灵活性
软件可以有不同的选项以满足不同使用习惯的用户来完成相同的功能。例如手机键盘有九宫格和全键盘,还支持手写,满足了不同用户的需求。
舒适性
舒适性主要强调界面友好,美观,操作过程顺畅,色彩用运恰当,按钮的立体感等。让用户对自己进行的操作有感知,不产生焦虑情绪。
安装卸载测试
- 软件可以正常安装和卸载
- 软件更新
- 安装/卸载 软件时断网断电等异常情况下,软件的响应
- 安装软件内存不足是否有提示
- 卸载软件暂停,是否可以继续卸载
- 卸载软件到一半,取消卸载,看软件是否可以正常使用
- 卸载后软件的数据文件信息是否清理干净
安全测试
安全性是指信息安全,是指计算机系统或网络保护用户数据隐私,完整,保护数据正常传输和抵御黑客,病毒攻击的能力。防病毒,防黑客的攻击,防xss注入,SQL注入,防爬虫
性能测试
要进行软件产品的性能问题,要对产品的性能需求进行分析,然后基于系统的性能需求和系统架构,完成性能测试的设计和执行,最后要进行持续的性能调优。常见的性能问题如下:
- 内存泄漏
- 资源瓶颈
- 系统运行速度越来越慢
- 系统运行受外界影响越来越大
- 线程死锁,线程阻塞
- 查询,加载信息速度很慢
内存泄漏测试
内存泄漏会导致系统运行越来越慢
导致原因:
- 内存分配后,没有回收
- API函数使用不正确,无法回收
- 内存分配方式有问题,无法回收
按是否查看代码划分
黑盒测试
不关心软件的实现,不关心程序的逻辑结构,只关心软件功能的输入输出是否符号需求(只注重软件的功能)
黑盒测试的方法
等价类,边界值,因果图,正交发,错误猜测法,场景法
白盒测试
测试软件功能的实现,测试实现代码的风格,逻辑,结构,设计,看是否实现了需要实现的功能(主要是针对代码进行测试)
白盒测试的测试方法
语句覆盖,路径覆盖,判定覆盖,条件覆盖,判定组合,条件组合,判定和条件组合,循环覆盖
测试方式:单元测试,java,Junit
灰盒测试
介于白盒测试和黑盒测试之间的,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。
按开发阶段划分
单元测试
测试方法:白盒测试
测试内容:模块的接口测试,局部数据结构测试,边界测试,错误异常测试,路径测试
集成测试
测试方法:灰盒测试
测试内容:模块与模块之间的接口,不同模块之间的功能是否有冲突,整个模块的功能,全局数据结构测试,单个模块的缺陷对这个模块的影响
系统测试
测试方法:黑盒测试
测试内容:界面测试,功能测试,可靠性测试,可移植性测试,兼容性测试,安全测试,容错性测试,安装卸载,性能等
回归测试
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
冒烟测试
冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件主要功能和核心流程正常,在正式进行系统测试之前执行。冒烟测试一般在开发人员开发完毕后提交给测试人员来进行测试时,先进行冒烟测试,保证基本功能正常,不阻碍后续的测试。
验收测试
测试方法:黑盒测试
测试内容:同系统测试,包括文档测试
测试人员:用户或最终需求方
按测试实施组织划分
α测试
α 测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。开发和测试人员不参与。
β测试
β 测试是一种验收测试。 β 测试由软件的最终用户们在一个或多个场所进行。
α测试与β测试的区别:
- 测试场所不同,α测试是指把用户请到开发方的场所来测试,β测试是指一个或多个用户的场所进行的测试 。
- α测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。β测试的环境是不受开发方控制的,用户数量相对比较多,时间不集中。
- α测试优先与β测试先执行
第三方测试
介于开发方和用户方间的组织的测试。
按是否运行划分
静态测试
静态测试 就是 不实际运行 被测软件,而只是 静态地检查程序代码、界面或文档 中可能存在的错误的过程。
动态测试
动态测试 ,指的是 实际运行被测程序,输入相应的测试数据,检查实际输出结果 和预期结果是否相符 的过程。
按是否手工划分
手工测试
手工测试就是由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。优点:自动化无法替代探索性测试、发散思维结果的测试。缺点:执行效率慢,量大易错
自动化测试
自动化测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。简单说自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。不是所有项目都适合自动化测试,自动化测试不适合于项目不稳定,功能频繁变动的项目