文章目录
- 按照测试对象划分
- 界面测试
- 可靠性测试
- 容错性测试
- 文档测试
- 兼容性测试
- 易用性测试
- 安装和卸载测试
- 安全测试
- 性能测试
- 按照是否查看代码
- 黑盒测试
- 白盒测试
- 灰盒测试
- 按照开发阶段划分
- 单元测试
- 集成测试
- 系统测试
- 回归测试
- 冒烟测试
- 验收测试
- 按照实施组织划分
- α测试
- β测试
- 按照是否运行划分
- 静态测试
- 动态测试
- 按照是否手工划分
- 手工测试
- 自动化测试
- 按照地域划分
- 问题
按照测试对象划分
界面测试
界面直接和用户交互,界面设计的好坏决定了用户使用软件的直观感受。
测试界面每一个功能的正确性。界面布局是否合理。(字体大小,是否斜体,图片布局排版,清晰程度)
界面的控件功能是否正常,滚动条,按钮,复选框。
要进行界面的不同分辨率的测试。
同一个Web页面不同页面大小下测试:
(页面从小到大变化过程中衔接丝滑,让用户可接受;页面的字体不模糊不消失不重影;页面图片不消失,排版布局合理;页面功能可以正常使用)
可靠性测试
正常使用时间 /(正常运行时间+非正常运行时间)
一般软件,可靠性要求99.99% 一年时间,软件出现故障时间52min
特殊软件,比如军事系统99.999%
容错性测试
系统因为自身或者外部一些异常的操作使得系统发生异常,系统能够自我处理这种错误操作或者异常的能力。
数据级别: 人民币0.09元 ;25时30分 ; 5月30日
校验级别:
输入账号6~16位 :最多只能输入16位,输入17位输不进去。
大小写校验、空格的校验、前后信息一致性的校验
查询信息前后空格自动过滤
界面级别
一些复杂的操作或危险的操作,会给用户提示信息
环境级别
断电、断网、硬件设备出现问题,是否可以无缝切换(让用户无感知)到备用服务器。
灾难恢复性测试,人为让系统发生故障,测试系统是否能很快恢复稳定,数据恢复,不丢失用户信息。
文档测试
整个开发过程中产生的各种文档,需求文档,设计文档,功能文档,用户使用手册进行测试。
文档的正确性,一致性,专业术语,完整性;文档和软件功能对比
兼容性测试
平台的兼容性(web网页:各种浏览器、操作系统的兼容性;APP:不同系统ios/Android,不同品牌、不同系统的版本)
软件本身的兼容性:软件对本身功能前后的兼容性,比如开发的新功能不影响老功能,也不影响后续功能的开发
软件对第三方软件的兼容性:不能影响其他软件的使用;如果和第三方软件有交互,数据要有兼容性。
易用性测试
用户使用软件的体验,用户体验测试
安装和卸载测试
软件可以正常安装和卸载
软件更新
安装软件时断网、断电、死机等异常情况下,软件的响应。
安装软件内存不足是否有提示
卸载软件暂停是否可以继续卸载
卸载软件到一半,取消卸载,看软件是否可以正常使用
卸载过程中异常情况的测试(断电、断网、死机)
卸载后软件的数据文件信息是否清理干净
安全测试
防病毒、防黑客攻击
xss注入、SQL注入
防爬虫
性能测试
内存泄漏
资源瓶颈
系统运行速度越来越慢
系统运行受外界影响越来越大
死锁
查询、加载信息速度很慢
按照是否查看代码
黑盒测试
黑盒测试也称功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据与输出数据。
黑盒测试不关心软件内部代码实现,不考虑程序的内部逻辑结构,只关心 输入输出是否符合预期。
黑盒测试系统的功能,站在用户的角度去使用功能,有利于培养用户的思维。
黑盒测试的测试用例是按照需求设计的,不容易遗漏需求。
黑盒测试设计测试用例的方法有哪些?
等价类、边界值、因果图、错误猜测法、场景法、正交法
白盒测试
白盒测试就是针对代码进行测试,分析和测试代码的逻辑和结构,实现的功能,看是否符合用户需求。
灰盒测试
介于黑盒和白盒测试之间。灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况
按照开发阶段划分
单元测试
测试的对象是软件设计的最小单位:模块。又称为模块测试(类、方法)
测试阶段:编码后或者编码前(TDD)
测试对象:最小模块
测试人员:白盒测试工程师或开发工程师
测试依据:代码和注释+详细设计文档
测试方法:白盒测试
测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
集成测试
按照一定的策略把单元模块组合起来形成一个大的功能模块,对这个功能模块进行测试叫做集成测试。集成主要目的是检查软件单位之间的接口是否正确。
测试阶段:一般单元测试之后进行
测试对象:模块间的接口
测试人员:白盒测试工程师或开发工程师
测试依据:单元测试的模块+概要设计文档
测试方法:黑盒测试与白盒测试相结合
测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响
系统测试
当软件开发完成,系统的全面的对软件功能进行测试。时间大部分在系统测试执行阶段,包括回归测试和冒烟测试。
测试阶段:集成测试通过之后
测试对象:整个系统(软、硬件)
测试人员:黑盒测试工程师
测试依据:需求规格说明文档
测试方法:黑盒测试
测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性
回归测试
当系统引入新代码的时候,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误,进行回归测试。 版本更新迭代的时候,修复Bug
冒烟测试
正式测试之前,对软件系统的基本流程和核心功能进行测试,如果测试通过,才同意正式测试。
验收测试
软件上线前最后一道测试,由用户或产品经理发起。验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买者展示该软件系统满足原始需求。
测试阶段:系统测试通过之后
测试对象:整个系统(包括软硬件)。
测试人员:主要是最终用户或者需求方。
测试依据:用户需求、验收标准
测试方法:黑盒测试
测试内容:同系统测试(功能…各类文档等)
按照实施组织划分
α测试
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试
β测试
Beta测试是一种验收测试。实际用户在实际使用环境下进行测试,不限时间、地点。
α测试与Beta测试的区别:
测试的场所不同:Alpha测试是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行的测试。
测试环境不同:Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。beta测试的环境是不受开发方控制的,用户数量相对比较多,时间不集中。
按照是否运行划分
静态测试
不运行代码,通过分析代码的风格,是否符合公司的标准规范,分析代码的结构、逻辑、算法、方法的实现是否符合用户的需求。只能看代码
动态测试
运行代码,执行测试用例,进行测试。
按照是否手工划分
手工测试
手工执行测试用例,查看测试结果
缺点:量大容易出错,效率比较低
优点:不可替代的,无法被自动化测试替代,手工测试过程人为可控,有利于探索性测试。
自动化测试
机器按照预先设定好的条件执行测试,这些条件包括正常和异常方面。自动化测试脚本
按照地域划分
软件国际化:开发软件的 时候用了一种工程技术,使得软件适用不同的语言、风俗使用习惯的时候不用去改变软件的源码就可以做到。
软件国际化测试
软件本地测试
问题
微信群发红包,100个人以上,发了100块100个人抢完,假设抢完了,收红包数和发红包数是否一致?
接口测试