2.2软件测试进阶知识

进阶篇

1.按照开发阶段划分测试类型

(1)单元测试

测试工具:java Junit框架

测试阶段:编码前(TDD)或者编码后

测试内容:接口,局部数据结构,路径测试,错误处理测试,边界测试

白盒测试

(2)集成测试

测试阶段:单元测试之后

测试内容:模块之间接口的测试,全局数据结构测试,单个模块的缺陷对系统的影响,模块之间功能是否有冲突

黑盒测试和白盒测试相结合

(3)系统测试

测试阶段:编码后,集成测试之后

测试内容:界面,系统的功能,性能,安全性,兼容性,易用性,可移植性,可靠性

黑盒测试

回归测试:

测试内容:当系统引入新的代码的时候要测试新代码是否对旧功能产生影响

测试时机:改BUG或者进行迭代之后

冒烟测试:

测试内容:判断系统是否可以进行全面系统测试的标准,测试主要功能和核心流程

(4)验收测试

测试阶段:系统测试通过之后

测试对象:整个系统(包括软硬件)

测试人员:主要是最终用户或者需求方

测试内容:验收测试不仅要对系统进行全面测试,验收文档(开发文档,软件设计文档,需求分析文档,功能使用文档,用户使用手册)

2.按照实施组织划分

(1)α测试:

  • 用户和公司内部非测试非开发人员请到开发现场进行测试
  • 时间比较集中在开发现场沟通产品的问题哦
  • 容易受到开发环境的影响

(2)β测试:

​ Beta测试是一种验收测试,测试的参与者是购买者,场景和环境也不再是厂家的环境和场所。

  • 用户在实际使用环境下进行测试

  • 用户测试结果更接近于实际使用情况的反馈

  • α测试优先于β测试

不同点:

测试环境:α测试在开发环境,β测试在实际使用环境

测试人员:α测试除了开发和测试人员以外的任何人,β测试是用户

在进行β测试之前要进行很长时间的α测试

(3)第三方:

3.按照是否运行划分

静态测试:

​ 不运行程序,根据需求规格说明书,软件设计文档,程序文档等结合程序(代码),查看代码的风格,语法,逻辑等是否符合需求.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zCe2xWgi-1629092516236)(https://i.loli.net/2021/08/06/51rPv2XtEJ6nzDW.png)]

动态测试:

​ 编写测试用例,运行系统(程序),执行测试用例

4.按照是否手工来划分

手工测试:

​ 优点:灵活性强,发散性强

​ 缺点:测试量过大容易出错

自动化测试:

按照预设的条件去自动执行测试,预测测试结果,设置正常验证和异常验证

UI界面测试自动化:selenium unittest ddt HTMLResultRepport

接口测试自动化:jmeter postman

性能测试自动化:loaderrunner

开启自动化测试的前提:项目功能要相对稳定

自动化价值:脚本的重复使用率越高,自动化越有价值。

自动化实施步骤:

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

5.按照是否查看代码来划分

黑盒测试:(系统测试,验收测试)

概念:

​ 把软件当成一个黑色的盒子,软件的具体实现是被屏蔽的,测试人员只关心软件的输入和输出。

设计测试用例的方法:

  • 等价类
  • 边界值
  • 因果图法
  • 场景法
  • 错误猜测法
  • 正交法
白盒测试:(单元测试)

概念:

​ 对软件的具体实现,结构,逻辑进行测试。

设计测试用例的方法:

  • 语句覆盖
  • 路径覆盖
  • 循环覆盖
  • 逻辑覆盖
    • 判定覆盖
    • 条件覆盖
    • 判定组合覆盖
    • 条件组合覆盖
灰盒测试:(集成测试)

​ 介于白盒和黑盒之间的测试,不仅关注输入输出的正确性,也关注程序内部的情况

6.按照地域来划分

国际化测试

本地化测试

7.按照测试对象来划分

(1)业务测试 : 场景法

如何快速了解新接触的系统的业务

  1. 系统文档(需求文档,系统设计文档)
  2. 询问开发人员

一个采购系统,向供应商采购商品,供应商发货之后,需要给供应商打款

打款逻辑,收到货物之后延迟15天打款

问:公司仓库9月20收到货物,但是15天之后供应商没有收到货款,为什么。

  1. 银行非工作日不提供转款业务,节假日财务不上班
  2. 在编写代码的过程中,应该写为工作日15天的逻辑
  3. 闰年和平年的区别
  4. 每年节假日时间不同

(2)界面测试(UI测试)

要测试界面的完整性,准确性,一致性,易用性

借助页面设计稿来检查界面的正确性

**布局:**字体、图像大小位置

**控件:**对话框 文本框 按钮 滚动条 CheckBox

不同页面大小的自适应测试(遵循完整性,一致性,准确性)

  • 页面从小到大文字图片有没有消失重叠
  • 页面从小到大功能有没有消失
  • 页面从小到大是否可以正常使用
  • 页面从小到大过程衔接是否丝滑

(3)容错性测试

当系统由于外界异常环境或者人为错误操作,系统可以自我处理错误,而不是把错误或者异常直接抛出展示给用户,甚至直接崩溃。

数据级别

校验级别:验证码,前后信息的一致性,

环境级别

界面级别

前端限制,后端处理返回异常

失效恢复性测试

​ 通过各种手段,将软件强制性的发生故障,然后验证系统已经保存的用户数据是否丢失,系统和数据能否尽快恢复

(4)文档测试

文档的完整性、术语专业行、准确性、一致性、易用性

(5)兼容性测试

移动应用平台

  • IOS 不同版本的苹果手机,不同的IOS系统

  • Android 不同版本的Android系统,在不同品牌的手机上测试

  • Windows phone

  • 塞班

软件向前或者向后的兼容性

软件和其他相关软件的兼容性

桌面端应用平台

  • Windows
  • Mac
  • Unix
  • Ubuntu

不同系统的不同版本

Web应用

  • 不同浏览器的不同版本

(6)易用性测试(用户体验测试)

  1. 遵循标准(行业惯例)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RPk6I514-1629092516238)(C:\Users\精神小伙\AppData\Roaming\Typora\typora-user-images\image-20210619132709497.png)]

  1. 直观性

标识要直观可见

  1. 灵活性

灵活性过高会导致复杂性提升

  1. 舒适性

上传下载之类的进度条,可以缓解用户等待的焦虑。

  1. 实用性

微信朋友圈评论,可以发收藏的表情

(7)安装测试 APP基础功能的测试

测试程序的安装、卸载
典型的是app的安装、卸载

(8)安全测试

数据泄露、黑客攻击、SQL注入、XSS注入、病毒等

例如:

  1. Web的安全测试

需要熟悉各种网络协议
TCP\HTTP,防火墙,CDN,熟悉各种操作系统的漏洞,熟悉路由器等。从软件来说,熟悉各种攻击手段,例如
SQL注入、Xss等。
作为web入门测试,可以IBM的appscan。

  1. 上传,下载的安全测试:
  • 检测文件上传是否过大
  • 上传时文件过大,导致内存爆掉

(9)性能测试

资源泄露 资源瓶颈 线程阻塞 数据库查询慢效率低等。

性能测试指标:

TPS(每秒事务处理量)

响应时间:越短越好 ,最慢不能超过10秒

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

资源利用率:(CPU 带宽 硬盘等利用率)

(10)内存泄露测试

引起内存泄漏的原因:

  • 分配的内存没有释放
  • 使用API函数的时候不正确
  • 代码有问题,导致无法正确释放内存

代码评审的工具

例子:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值