软件测试 零基础自学笔记_测试方法与理论

软件开发流程

软件开发流程的演变

由传统瀑布模型到敏捷开发模型再到DevOps开发模型。

瀑布模型

在这里插入图片描述

  • 按照线性方式进行软件开发
  • 下行单元受上行单元结果影响
  • 每一环节需要进行验证
优点
  • 开发的各个阶段清晰
  • 强调早期计划和需求调查
  • 适合需求稳定的产品开发
缺点
  • 由于是线性模型,增加开发风险
  • 早期错误在后期发现,难以修改,增加开发成本

敏捷模型

XP极限编程

在这里插入图片描述

SCRUM

在这里插入图片描述

敏捷模型特点
  • 采用增量迭代方式
  • 使用少量多次策略

DevOps

在这里插入图片描述
需求频繁变化,产品迭代更新周期极短

生命周期

在这里插入图片描述

  • 持续开发
  • 持续测试
  • 持续集成
  • 持续部署
  • 持续监控
特点
  • 产品发布频繁
  • 加强发布协调
  • 需要自动化测试介入

CI/CD 持续集成/持续交付

  • 持续集成意味着一天内可能发生多次集成,每次集成都通过自动化的构建来验证。
  • 持续交付是让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持随时可以发布的状况。可以减少软件开发的成本和时间。

CD与DevOps的关系

  • DevOps的范围更广,是软件交付过程所涉及的多个团队之间的合作,并且将软件交付的过程自动化。
  • 持续交付是一种自动化交付的手段,关注点在于将不同的过程集中起来,并且更快、更频繁地执行这些过程。
  • DevOps可以是持续交付下的一个产物,持续交付的成果直接汇入DevOps模型。

软件测试流程

软件测试

  • 验证实际结果与预期结果之间是否存在差异
  • 通过测试发现并修复软件中的BUG,提高用户的使用体验
  • 降低同类型产品开发遇到问题的风险

软件测试原则

  • 测试显示缺陷的存在
  • 穷尽测试是不可能的
  • 测试应尽早介入
  • 缺陷集群性(2/8原则)
  • 杀虫剂悖论
  • 测试活动依赖于测试内容
  • 没有错误是好 是谬论

软件测试的对象

在不同阶段存在不同的测试对象
需求分析阶段:需求文档,接口文档
编码阶段:源码
集成阶段:产品

测试用例

为测试而制定的输入输出数据组

软件测试模型

V模型

在这里插入图片描述

  • 基于软件开发模型中的瀑布模型产生的
  • 依旧是线性模型,具有线性模型的同优缺点

W模型

在这里插入图片描述

  • 在W模型中测试与开发是并行的关系
  • 测试尽早介入
  • 对开发阶段的产出物进行验证
  • 依旧具有线性缺点,无法支持迭代开发

H模型

在这里插入图片描述

  • 将测试流程独立出来
  • 对项目组的人员要求高
  • 测试就绪点分析困难

软件测试流程

在这里插入图片描述

系统测试流程

在这里插入图片描述

BUG管理流程

在这里插入图片描述

  • 使用BUG管理平台

测试左移、测试右移

测试左移

  • 尽早介入
  • 对代码进行测试
  • 从发现到预防
测试左移手段
  • 代码评审
  • 代码审计
  • 单元测试
  • 自动化冒烟测试
  • 研发自测

测试右移

  • 发布后持续监控

测试右移手段

  • 线上监控
  • 闭环的线上问题反馈
  • 业务监控
  • 指标每日监控
  • 生产数据监控

测试技术体系

软件测试分类

在这里插入图片描述

  • 系统测试:①功能测试 ②兼容性测试 ③性能测试 ④安全测试
  • 验收测试:①α测试 ②β测试
  • 黑盒测试:数据驱动测试,注重于测试软件的功能需求,只关心软件的输入输出
  • 白盒测试:研究产品内部的源代码和程序结构,单元测试白盒测试的一种

分层测试体系

自动化分层测试体系中:70%单元测试 20%服务测试 10%用户界面测试
在这里插入图片描述

单元测试方法

  • java
  • python

接口测试

  • 针对软件对外提供服务的接口的输入输出进行测试
  • charles、fiddler、postman、jmeter、loadrunner
  • java:httpclient、restassured
  • python:requests、httprunner

UI测试

  • 手工方法:人工点点点
  • 自动化方法:web:selenium app:appium

常用的测试平台

测试用例管理与BUG管理平台

  • jira
  • redmine
  • testlink
  • tapd
  • 云效
  • 禅道
  • gitlab
  • excel
  • 思维导图

代码管理平台

  • gitlab
  • subversion
  • github
  • bitbucket

持续集成管理平台

  • jenkins
  • gitlab runner
  • github action
  • 自建devops平台:tapd、云效等

黑盒测试

常用测试方法

等价类划分法

  • 明确输入域,将输入域划分为若干子集
  • 从每个子集中选取具有代表性的数据作为测试用例
  • 常见分类:有效、无效等价类

边界值分析

  • 边界值测试法是对等价类的补充
  • 来源于开发对于边界值的忽略

因果图与判定表

  • 因果图为有向图
  • 因果图可转换为判定表
  • 是有一种表达因果关系的逻辑表达方式
    在这里插入图片描述

决策树

在这里插入图片描述

  • 判定表也可以用决策树表示
  • 可用流程图表示决策树

场景法

探索式测试

  • 是一种软件测试风格,简而言之就是同步学习 测试设计和测试执行
  • 基于上下文的反馈及时调整测试执行
  • 通常用于黑盒测试
  • 成本低,可以不提前设计大量测试用例
  • 无法满足覆盖度

白盒测试

  • 白盒测试的执行手段可以涵盖单元测试、集成测试
  • 使用代码覆盖率作为主要度量指标

代码覆盖率

  • 语句覆盖:每行代码都要覆盖至少一次
  • 判定覆盖:判定表达式的真假至少覆盖一次
  • 判定/条件覆盖:判定覆盖与条件覆盖都必须覆盖
  • 条件组合覆盖:判定表达式中的所有条件组合都需要覆盖
  • 分支覆盖:控制流中的每条边都要被覆盖一次
  • 路径覆盖:所有的路径都要尽量覆盖
  • 指令覆盖:一行代码会被编译为多条指令,尽可能的覆盖所有指令
  • 方法覆盖:每个方法至少要被覆盖一次
  • 类覆盖:每个类至少被覆盖一次

覆盖率统计的工具

  • emma
  • cobertura
  • jacoco
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值