看了还不会测试分类把头敲碎!

测试金字塔理论

投入相同的人力精力,越往上层,

产出越低、定位问题越困难、测试效率越低!

 

按开发阶段划分

1. 单元测试:对程序的一个单元进行测试,这个单元可能是一个类,也可能是一个办法
  • 测试阶段:编码后或者编码前;
  • 测试对象:最小模块;
  • 测试方法:白盒测试;
  • 测试依据:代码和注释+详细设计文档;
  • 测试内容:模块接口测试(输入参数数量、类型、类型排列,输出是否符合接口设计文档),
                        局部数据结构测试,路径测试(if,else,switch等逻辑判断),错误处理测试, 边界测试;

@Ignore      忽略该部分单元测试

@Before     执行单元测试前执行xx

@After         执行单元测试后执行xx

2. 集成测试:按照一定策略(逻辑)组合单元模块形成一个功能模块
  • 测试阶段:单元测试以后;
  • 测试对象:模块间的接口;
  • 测试方法:灰盒测试
  • 测试人员:开发工程师,白盒测试工程师
  • 测试依据:概要设计文档,详细设计文档
  • 测试内容:接口之间的数据传输,模块之间的功能冲突,模块组装功能正确性,全局数据结构,单个功能模块缺陷对整体的影响;
3. 系统测试
  • 测试阶段:集成测试以后;
  • 测试对象:整个系统(软、硬件);
  • 测试方法:黑盒测试;
  • 测试人员:黑盒测试工程师
  • 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
     回归测试(属于系统测试)

    回归测试指修改了代码后(增加新功能、修复bug),重新进行测试以确认修改后没有引入新的错误;

     冒烟测试(属于系统测试)
    对系统主要功能和核心流程测试,
    评判系统是否进入正式的测试环节的依据  ——准入原则
    冒烟测试的测试用例——提测用例:很少,主要针对本次迭代的主要功能和系统的核心流程进行测试用例的设计
 
4. 验收测试:客户按照用户需求对系统进行测试
  • 测试阶段:系统测试之后;
  • 测试对象:整个系统;
  • 测试人员:客户
  • 测试方法:黑盒测试;
  • 测试内容:系统测试内容+文档测试(软件设计文档、功能设计文档、用户使用手册、详细功能使用文档等)

按测试实施组织划分

1. α 测试
  • α测试是由用户在开发环境下进行的测试;问题及时发现解决(开发人员和测试人员不能参加)
2. β 测试
  • β测试是由用户在一个或者多个场所进行测试;(测试环境不受影响)测试结果接近实际使用结果
α 测试和 β 测试的区别:
  • 测试场所不同:Alpha测试指把用户请到开发方的场地来测试,测试环境受开发方控制;Beta测试时一个 或多个用户在不同场所进行测试,测试环境不受开发方控制;
  • 时间集中程度不同:Alpha用户数量较少,时间比较集中;Beta时间分散;
  • alpha测试先于beta测试;
3. 第三方测试
由软件的第三方测评机构进行测试;

按是否运行划分

1. 静态测试
  • 不运行被测程序本身,通过分析源程序的语法,结构,过程等检查程序的正确性;
  • 代码静态分析和文档测试都属于静态测试;
  • 静态质量标准:功能性、性能、兼容性、易用性、可靠性、安全性、维护性、可移植性
2. 动态测试
  • 写测试用例,运行程序,检查运行结果和预期结果的差异,并分析运行效率,正确性等;

按是否手工划分

1. 手工测试
       由手工一个一个去输入测试用例,然后观察结果;
  • 优点:思维发散,测试灵活,根据不同情况进行测试用例的完善和修改;
  • 缺点:执行效率低,量大易错;
2. 自动化测试
        手工测试的测试用例转化为自动化测试的用例
        接口自动化,性能自动化,web自动化,APP自动化
        优点:提高测试效率,节省人力时间资源
        提高自动化测试脚本使用率 = 提高自动化测试脚本价值
        适用项目:周期长,需要不停迭代,需求稳定
自动化测试的步骤:
1. 功能测试,确保版本基本稳定;
2. 根据项目特性,选择合适项目的自动化测试工具,搭建环境;
3. 手工测试的测试用例转化为自动化测试的用例;
4. 通过工具、代码实现自动化的构造输入,自动检测输出结果是否符合预期;
5. 生成自动化测试报告;
6. 持续改进,脚本优化;

按是否查看代码划分

1. 黑盒测试
黑盒测试也叫 功能测试 ,把被测试软件当成一个黑盒子,不关心内部结构是 什么,只关心 软件的输入与输出数据
等价类,边界值,因果图,正交设计法 ,场景法,错误猜测法
 
2. 白盒测试
白盒测试是 基于代码 的测试,需要打开盒子,去研究里面的 代码(逻辑、结果、功能)和执行结果
语句覆盖法,逻辑覆盖法,循环覆盖法
逻辑覆盖法:路径覆盖(if,else),判定覆盖(true,false),判断组合覆盖,条件覆盖
 
3. 灰盒测试
灰盒测试是介于白盒测试和黑盒测试之间的一种测试,多用于 集成测试阶段 不仅关心输入输出的正确性、同时也要关注程序内部的逻辑结构;

按地域划分

国际化测试、本地化测试

按照测试对象划分

  • 界面测试

文字:大小、类型、粗细、斜体、颜色、下划线、超链接

图片:大小、颜色、清晰度、排版、重叠

控件:按钮、文本框、滚动条、下拉框、勾选框      (有效控件——高亮;无效控件:置灰)

备注的提示说明语言表述是否清楚;整体布局排版

响应式测试(界面测试的一种)——系统的页面可以随着屏幕的分辨率不同而自适应

ps:文字、图片不会随着屏幕分辨率的变化而重叠、遮挡、消失、模糊;页面功能随着屏幕分辨率变化可以正常使用;严格遵循UI设计图;页面在不同屏幕分辨率进行衔接是否丝滑不出现断层

 常见错误界面:不合适的快捷键,文字消失(或截断),重叠展示,重复的快捷键,未对齐等

  • 容错性测试

当系统因外部环境影响或用户误操作导致系统内部发生错误,但系统可以自处理,使系统可正常稳定运行

验证级别:查询信息前后的空格,trim(),验证码输入错误,同一个系统前后信息的容错处理 

环境容错处理:系统运行出现断电断网、服务器故障等情况时,随时切换电器,网络,备用服务器并让用户无感知

界面容错处理:进行危险操作时,是否给用户提示或将这些功能屏掉;账户注册账户和密码的位数限制,输入最大位数时禁止输入;用户输入规定的选项时,可存在下拉框;出现复杂易出错操作时,给用户提示

灾难恢复性测试:人为让系统发生一系列故障,让系统出现断网断电、系统崩溃的极端情况,检测系统是否可以自我恢复,以及恢复正确数据的准确性和耗时长短

  • 文档测试

对软件开发过程中产生的文档进行测试:软件设计文档、流程图文档、功能分析设计文档、用户使用手册等

主要测试文档和软件系统的一致性;文档术语是否得当,正确性、完整性、易用性

  • 兼容性测试

web系统兼容性:

平台:Windows(Windows10、Windows7……)、Mac(IOS不同版本)

浏览器:Firefox、Chrome、Opera、IE、360……(不同浏览器的当下市场的主流版本:不同;浏览器内核不同,对同一个页面的解析不同)

APP兼容性:

iOS:不同iPhone机型,不同的iOS系统(主流)

Android:不同安卓手机的不同型号,不同的Android系统(主流)

软件本身向前向后的兼容性:不影响之前之后的兼容性

软件是否和其他相关软件的兼容性:APP之间的第三方登录(例:QQ登录CSDN),软件之间信息数据的共享(例:淘宝快递和菜鸟裹裹)

数据的兼容性

  • 易用性测试

用户体验性测试:符合标准规范,直观性,灵活性,舒适性,实用性……

  • 安装/卸载测试

APP安装方式:应用商店、安装包、命令行、压缩包解压、第三方应用安装(手机助手,软件助手)

APP卸载方式:应用商店、桌面卸载、命令行、第三方应用卸载

断电断网、手机电脑关机情况下的安装和卸载情况;安装过程中空间不足情况;安装过程能否暂停;暂停之后是否能继续成功安装;卸载能否连带清楚所有相关数据;

  • 性能测试

性能测试的目的:为了用户体验感,系统能够快速响应用户需求;系统能够处理预期的用户负载和事务数量;系统能够满足以上的情况下稳定运行

响应时间:系统响应用户操作的时间

TPS:每秒处理的事务数量

吞吐量:系统在单位时间内处理的信息量

点击量:每秒向服务器发送的HTTP请求的个数

系统运行时占用资源情况:CPU、内存、磁盘、网络带宽、耗电量…

  • 安全测试

SQL注入

上传下载:对保密文件进行测试,防测试分类止被截取信息;上传病毒文件;上传下载大文件

防爬虫:xss注入、黑客、病毒

  • 内存泄漏测试

分配内存时,没有及时释放内存或无法释放,导致系统运行占得内存越来越多,系统运行越来越慢,甚至崩溃

原因:使用API函数不准确;程序写的有问题,无法释放内存空间;分配内存空间之后,忘记释放

  • 静态测试

走读代码;使用工具测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值