测试分类

测试的分类

按开发阶段划分

单元测试

集成测试

系统测试

验收测试

按测试实施组织分类

α

β

第三方

按测试执行方式分

静态测试

动态测试

按是否手工划分

按是否查看代码划分

黑盒测试

白盒测试

灰盒测试

按照测试地域划分

国际化测试

本地测试

按测试对象划分

业务测试

界面测试

容错性测试

文档测试

兼容性测试

易用性测试

安装测试(卸载)

安全性测试

性能测试

内存泄漏测试

测试的分类

  • 按开发的阶段分:

单元测试、集成测试,系统测试,验收测试

  • 按测试实施组织分类:

α测试、β测试、第三方测试

  • 按测试执行方式:

静态测试、动态测试

  • 按是否查看代码:

黑盒测试、白盒测试、灰盒测试

  • 按是否手工执行划分:

手工、自动化

  • 按测试对象划分:

性能测试、安全测试、兼容性测试、文档测试、易用性测试(文档体验测试)、业务测试、界面测试、安装测试

  • 按测试地域划分:

本地化测试、国家化测试


按开发阶段划分

测试金字塔

  1. UI界面层:功能验证测试、兼容性与用户测试
  2. 业务逻辑层(Server):客户端模拟测试、内外接口测试、SDK接口测试
  3. 数据处理层Unit:单元测试、CodeReview

SDK:Software Development Kit ,一般指软件工程师特定的软件包建立的开发工具的集合。

为什么测试金字塔越往上投入产出比越小?(测试人员投入相同的经理,测试成果越来越小)

  • 越往上定位问题越困难
  • 越往上层,测试的效率越低

单元测试

单元测试是对软件组成单元进行测试,其目的是检验软件基本组成单位的正确性。

  • 测试的对象是软件设计的最小单位:模块
  • 测试阶段:编码后,编码前(TDD)

测试驱动开发(Test-Driven-Development):

先写测试用例,跑测试用例,开发人员根据测试用例产生的异常去补充开发的代码

  • 测试人员:白盒测试工程师或者开发工程师
  • 测试依据:代码和注释+详细设计文档
  • 测试方法:白盒测试
  • 测试内容:模块接口测试 、局部数据结构测试、路径测试、错误处理测试、边界测试

接口测试

输入参数:参数的个数、参数类型、参数的顺序要符合接口文档

边界测试:for、while

错误处理测试:try   catch  finally

路径测试: if  else ,while

单元测试框架:Junit

  1. 安装插件Junit
  2. 找到要进行单元测试的类,选中类名,Ctrl+Shift+T,创建单元测试类
  3. 写单元测试方法

集成测试

  • 测试阶段:在单元测试之后
  • 测试对象:模块间的接口
  • 测试人员:白盒测试工程师或开发工程师
  • 测试依据:单元测试的模块+概要设计文档
  • 测试方法:黑盒测试与白盒测试相结合
  • 测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响

系统测试

全面测试

  • 测试阶段:开发完成之后(集成测试完成之后)
  • 测试对象:
  • 测试人员:黑盒测试工程师
  • 测试依据:需求设计文档
  • 测试方法:黑盒测试
  • 测试内容:界面、功能、性能、易用性、安全性、兼容性等

回归测试

  • 当系统的代码进行了修改的时候,为了防止新添加的代码对系统引入新的 错误而进行的测试。
  • 添加新需求、修改BUG
  • 使用自动化测试

冒烟测试

  • 准入原则
  • 对系统的核心功能和主要流程进行的测试
  • 决定测试人员是否接收系统进行正式测试的依据
  • 针对冒烟测试写的测试用例——提测用例

验收测试

  • 测试阶段:系统测试之后,用户进行测试
  • 测试对象:
  • 测试人员:黑盒测试工程师
  • 测试方法:黑盒测试
  • 测试内容:界面、功能、性能、易用性、安全性、兼容性等,文档测试(功能说明文档、开发文档、使用说明书)

按测试实施组织分类

α

把用户(除了开发和测试以外,公司的其他人)请到开发现场进行测试

及时的解决发现的问题

测试时间比较集中

环境受开发环境的限制

β

用户在正常的使用环境进行测试,通常一个周期测试完成,把问题整理成文档,反馈给开发人员

测试时间比较分散

用户在真实的使用环境下进行测试

β测试在α测试之后

第三方

第三方软件测评机构,行业中的一些标准和规范 

按测试执行方式分

静态测试

静态测试指不运行被测程序本身,仅通过分析或者检查源程序的语法、结构、过程、接口等来检查程序的正确性。

  • 检查项:代码风格和规则审核,程序设计和结构的审核;业务逻辑的审核;走查、审查与技术复审的手册。
  • 静态质量 :ISO25010标准

代码静态分析和文档测试都属于静态测试

动态测试

通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。

构造测试用例、执行程序、分析程序的输出结果

大多数软件测试工作都属于动态测试。

按是否手工划分

手工测试

  • 如果进行大量的测试容易出错
  • 比较灵活,可以进行发散的测试

自动化测试

前提:在系统功能比较稳定的前提下才可以做自动化测试。

自动化测试最大价值:脚本的重复利用率,重复利用率越高价值越大

自动化测试实施步骤

  • 完成功能测试,版本基本稳定
  • 根据项目特性,选择适合项目的自动化工具,搭建环境
  • 提取手工测试的测试用例转化为自动化测试的用例
  • 通过工具、代码实现自动化的构造输入,自动监测输出结果是否符合预期
  • 生成自动化测试报告
  • 持续改进,脚本优化。

按是否查看代码划分

黑盒测试

不关心软件内部的逻辑、结构,只关心输入和输出是否可以达到我们的预期,相当于把测试的软件堪称一个只有输入和输出的黑色盒子。

黑盒测试设计测试用例的方法:等价类法、边界值、因果图、正交法、场景设计法、错误猜测法

白盒测试

就是研究软件内部的程序逻辑和结构,验证是否满足软件需求,相当于把软件当成一个能看见内部结构的白色盒子去测试。

白盒测试的方法:

语句覆盖、逻辑覆盖、路径覆盖、判定覆盖、条件覆盖、判定和条件的组合、判定组合、条件组合

灰盒测试

介于白盒测试和黑盒测试之间,既关心输入和输出,又关心程序内部的结构。

按照测试地域划分

国际化测试

软件国际化:在设计软件的时候,采用一种工程技术,使得软件在转换不同国家的语言以及风俗习惯的时候,不需要修改源码的技术,叫软件国际化。

软件国际化测试:

  • 本地化后得软件在外观上与原来的版本是否存在很大的差异,外观是否整齐
  • 是否对所有界面元素都进行了本地化处理,包括对话框、菜单、工具栏、状态栏、提示信息(包括声音的提示)、日志等等
  • 在不同的屏幕分辨率下界面是否正常显示
  • 是否存在不同的字体大小,字体的设置是否恰当
  • 日期、数字格式、货币等是否能使用不同国家的文化习俗
  • 排序的方式是否考虑了不同语言的特点
  • 在不同的国家采用不同的度量单位,软件是否能自适应和转换
  • 软件是否能在不同类型的硬件上正常运行
  • 软件是否能在Windows或者其他的擦欧总系统的当地版本上正常运行
  • 联机帮助和文档是否已经翻译,翻译后的链接是否正常。

软件本地化和国家化测试是一个综合了翻译行业与软件测试行业的测试类型。

本地化测试

 

按测试对象划分

业务测试

场景法:正常流程,异常流程

测试人员把系统的各个模块串接起来运行、模拟绅士用户实际的工作流程,满足用户需求定义的功能来进行测试的过程。

业务测试关注需求和用户

1.界面测试

UI测试,测试用户界面的功能模块的布局是否合理,整体的风格是否一致。

测试界面操作便捷性、导航简单易懂性,页面元素的可用性,界面中文字受否正确,命名是否统一,页面是否美观、文字图片组合是否完美等。

  • 文字:大小、字体、排版、颜色、粗细、是否斜体、是否是链接;
  • 图片:大小、排版、色彩、清晰度、是否重叠;
  • 页面整体排版、信息提示说明语言表达是否清晰
  • 控件:对话框、查询框、滚动条、弹出框、按钮、勾选框
  • 按钮亮度的显示:有效按钮高亮显示、无效按钮置灰

响应式测试

系统页面可以随着屏幕的分辨率不同而自适应。

响应式页面的测试:

  1. 页面上的文字在不同分辨率下能够完成并且清晰展示;
  2. 图片在不同分辨率下能够正确排版,清晰展示,不重叠;
  3. 界面的功能随着屏幕分辨率变化的时候没有消失;
  4. 界面的功能在不同的分辨率下可以正常使用;
  5. 界面在不同分辨率下切换的时候,是平滑的过渡;
  6. 在不同的分辨率下,界面的展示要严格按照UI设计稿来进行展示。

界面测试常见的错误:不合适的快捷键,文字消失(没有正常展示),重叠展示,重复的快捷键,没有对齐等。

2.容错性测试

当系统出现一些异常,或者用户输入错误的信息,进行异常的操作,系统可以自我处理这些错误情况,不会出现崩溃,页面异常这些情况,可以给用户一个很好的提示体验;

数据容错性:时间、日期、数字、货币等

校验容错性:查询信息前后加空格,大小写转换、验证码、数据信息一致性校验

信息级别:

填写表单的时候,异常关闭是否会自动保存;

同一个数据被不同的人操作的时候,是否会有锁定;

同一个信息在不同的平台上被操作(同一个账号下),信息要同步

界面容错性处理

  1. 复杂的操作,有说明提示;
  2. 用户在执行有风险的操作的时候,会给出提示;
  3. 注册的时候账户和密码的位数限制,当用户输入最大位数的时候就禁止输入了
  4. 用户只能输入一些规定好的固定选项的时候,以下拉框的形式展示

环境容错性处理

网络、电源、服务器,无缝切换备用网络,电源或者服务器就能保证用户无感知

灾难恢复性测试,人为的让服务器或者服务器所依赖的环境发生故障,测试系统的自我修复能力。

  • 系统能不能恢复
  • 系统碰到极端情况的时候,恢复系统的功能和里面的信息所需要的时间用户是否能够接受。

3.文档测试

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

主要测试文档和软件系统的一致性

关注文档的术语、文档的正确性,文档的完整性、文档的一致性,文档的易用性

4.兼容性测试

兼容性测试在不同的平台上测试的功能都是一样的,所以可以使用自动化测试。

  • 平台测试
  • 浏览器测试
  • 软件本身能否向前或向后兼容
  • 测试软件能否与其他相关的软件兼容
  • 数据兼容性测试

web

  • 不同的操作系统要进行测试
  • 不同操作系统的不同版本要进行测试
  • 不同的浏览器下网页是否可以正常展示和使用(Chrome,Firefox,edge,IE,360,qq)【不同的浏览器内核不一样】
  • 不同浏览器的市场上主流的版本

不同的浏览器内核不一样,对同一个页面的解析不一样

APP

  • 不同的机型要进行测试
  • 不同机型的不同的操作系统进行测试
  • 不同操作系统的主流版本上进行测试

5.易用性测试

用户体验性测试

遵循一定的易用性标准开发软件

  • 直观性,灵活性,舒适性,实用性等
  • 软件的展示要和软件定位相关

6.安装测试(卸载)

APP:应用商店、官网、安装包、命令行

系统:官网

7.安全性测试

web的安全测试,需要熟悉各种网络协议TCP/HTTP,防火墙,CDN,熟悉各种操作系统的漏洞,熟悉路由器等

病毒,SQL注入、XSS注入、系统攻击等

8.性能测试

为什么要进行性能测试?

保证下面几点对系统的需求都能够实现:

  • 能够快速的响应用户的请求(3s/5s/8s)
  • 系统能够负载的用户数量
  • 能够处理系统所需要事务数量
  • 在负载和事务处理的高峰期,系统可以稳定运行
  • 在系统能够处理的最高用户负载和事务数量的时候,用户可以获得良好的体验

性能测试测试哪些方面?

  1. 对资源的利用率:CPU、GPU、内存、硬盘、网络、电源等
  2. 响应时间(用户发送请求到用户所期待的响应【页面、信息】展示出来)
  3. 吞吐量:系统在单位时间处理的信息量(字节、事务处理量、HTTP请求数)
  4. 辅助存储区(换宠物、工作区的大小)
  5. 日志事件(如中断、报错)【日志的级别:info,debug,warn,error】

内存泄漏测试

内存泄漏就是系统在使用一些内存的时候,没有及时释放或者无法释放,造成系统占用的内存越来越大,系统运行越来越慢,从而影响了其他app的运行。

造成内存泄漏的原因:

  • 分配了内存,忘记回收;
  • 写法有问题导致分配的内存无法回收
  • 错误的使用一些API造成内存无法回收;
  • 没有及时释放。

内存泄漏的检测:

  1. 使用专门的工具来进行内存问题的检查
  2. 通过代码扫描分析工具来检查

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值