测试开发体系介绍——测试体系介绍-L1

news2025/2/1 17:53:59

目录:

  1. 软件测试基础概念
    1. 软件测试:
    2. 软件测试作用:
    3. 软件缺陷:
    4. 软件测试原则:
    5. 软件测试对象:
    6. 测试用例
  2. 软件开发流程
    1. 软件:
    2. 软件生命周期:
    3. 软件开发流程:
    4. 瀑布模型:
    5. 瀑布模型优缺点
    6. 敏捷开发模型:
      1. XP - 极限编程:
      2. SCRUM:
    7. DevOps:
    8. DevOps 生命周期:
    9. DevOps 对发布的影响
    10. CI/CD
    11. CD 与 DevOps 的关系
  3. 测试流程体系
    1. 软件测试模型:
      1. V模型
      2. W模型
      3. H模型:
    2. 软件测试工作流程:
      1. 传统测试流程:
      2. 系统测试流程:
      3. Bug管理流程:
    3. 测试左移和测试右移
      1. 测试左移
      2. 测试左移-质量保障手段(方法)
      3. 测试右移
      4. 测试右移-线上监控
  4. 测试技术体系
    1. 软件测试分类:
    2. 黑盒测试:
    3. 白盒测试:
    4. 自动化分层测试体系
    5. 单元测试
    6. 接口测试:
    7. 接口测试方法:
    8. UI 测试:
  5. 常用测试平台
    1. 测试用例管理平台
      1. JIRA 测试用例管理
      2. Xray Test Management
      3. RedMine 系统
      4. TestLink
    2. Bug 管理平台
    3. 代码管理平台
      1. GitLab
    4. 持续集成管理平台
      1. Jenkins 平台
  6. 流程管理平台
    1. JIRA 管理平台
    2. JIRA 中的基本概念
    3. JIRA 管理测试用例流程
    4. JIRA 管理 Bug 流程
  7. 项目管理与跨部门沟通协作
    1. 项目管理:
    2. 需求阶段:
    3. 设计阶段
    4. 开发阶段:
    5. 集成测试阶段
    6. 系统测试阶段
    7. 软件项目管理的方法
    8. 跨部门沟通协作 - 与产品沟通
    9. 跨部门沟通协作 - 与研发沟通
    10. 跨部门沟通协作 - 上下游测试配合
    11. 项目实例
  8. 测试经典书籍拆分讲解
    1. 全程软件测试
    2. 探索式测试
    3. Google测试之道
    4. 持续交付
    5. 不测的秘密

1.软件测试基础概念

软件测试:
  • 通过手工或者工具对 “被测对象”进行测试
  • 验证实际结果与预期结果之间是否存在差异
 软件测试作用:
  • 通过测试工作可以发现并修复软件当中存在的缺陷,从而提高用户对产品的使用信心
  • 测试可以降低同类型产品开发遇到问题的风险
软件缺陷:
  • 软件缺陷被测试工程师和开发工程师们称作 bug
  • 软件缺陷会导致软件不能正常运行,它的存在会在一定程度上导致软件不能满足用户的需求,甚至有可能破坏或泄漏用户的重要数据
软件测试原则:
  • 测试显示缺陷的存在
  • 穷尽测试是不可能的
  • 测试尽早介入
  • 缺陷集群性(2/8原则)
  • 杀虫剂悖论
  • 测试活动依赖于测试内容
  • 没有错误是好是谬论
 软件测试对象:
  • 需求分析阶段:需求文档、接口文档
  • 编码实现阶段:源代码
  • 系统功能使用:软件程序
 测试用例
  • 为特定的目的而设计的一组测试输入、执行步骤和预期的结果,以便测试产品否满足某个特定需求的文档

2.软件开发流程

软件:
  • 软件是与计算机系统操作有关的计算机程序、可能有的文档及数据。

软件生命周期:
  • 定义问题
  • 软件开发
  • 软件维护

 

软件开发流程:
  • 为了使软件开发的工作系统化并且可控制;
  • 需要采用合适的软件开发模型和开发过程管理所有的活动。

瀑布模型:
  • 软件开发的各项活动严格按照线性方式进行。
  • 当前活动接受上一项活动的工作结果。
  • 当前活动的工作结果需要进行验证。

 

 瀑布模型优缺点
  • 优点:
    • 开发的各个阶段比较清晰。
    • 强调早期计划及需求调查。
    • 适合需求稳定的产品开发。
  • 缺点:
    • 早期的错误可能要等到开发后期的阶段才能发现。
    • 由于开发模型是线性的,增加了开发的风险。
敏捷开发模型:
  • 适用于需求频繁变化和需要快速开发的场景。
    • XP
    • SCRUM
XP - 极限编程:

SCRUM:

敏捷模型总结

  • 增量迭代
  • 小步快跑
DevOps: 

DevOps 生命周期: 
  • 持续开发
  • 持续测试
  • 持续集成
  • 持续部署
  • 持续监控

DevOps 对发布的影响
  • 减少变更范围
  • 加强发布协调
  • 自动化
CI/CD
  • 持续集成(Continuous Integration,缩写为 CI):
    • 一种软件开发实践。
    • 团队开发成员每天可能会发生多次集成。
    • 每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证。
    • 根据测试结果确定新代码和原有代码能否正确地集成在一起。
  • 持续交付(Continuous Delivery,缩写为 CD)
    • 是一种软件工程手法。
    • 让软件产品的产出过程在一个短周期内完成。
    • 保证软件可以稳定、持续的保持在随时可以发布的状况。
    • 目标:
      • 让软件的构建、测试与发布变得更快以及更频繁。
      • 减少软件开发的成本与时间,减少风险。
CD 与 DevOps 的关系
  • DevOps 的范围更广:
    • DevOps 是软件交付过程所涉及的多个团队之间的合作。
    • 并且将软件交付的过程自动化。
  • 持续交付是一种自动化交付的手段:
    • 关注点在于将不同的过程集中起来。
    • 并且更快、更频繁地执行这些过程。
  • 总结:DevOps 可以是持续交付下的一个产物,持续交付的成果直接汇入 DevOps 模型。

3.测试流程体系

软件测试模型:
V模型
  • V模型是瀑布模型的一种改进
  • V模型标明了测试过程中的不同阶段

V模型的优缺点

优点

  • 既有底层测试又有高层测试。
  • 将开发阶段清楚的表现出来,便于控制开发的过程

缺点

  • 容易让人误解为测试是在开发完成之后的一个阶段。
  • 由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些bug可能不容易找到其根源,并且代码修改起来很困难。
  • 如果需求变更较大,导致要重复变更需求、设计、编码、测试。返工量大。
W模型
  • W模型明确表示出了测试与开发的并行关系
  • W模型中测试伴随着整个软件开发周期,并且测试的对象不仅仅是程序,需求和设计同样要测试

 

W模型的优缺点:

优点

  • 将测试贯穿到整个软件的生命周期中,且除了代码要测试,需求、设计等都要测试。
  • 更早的介入到软件开发中,能尽早的发现缺陷进行修复
  • 测试与开发独立起来,并与开发并行。 

缺点

  • 无法支持迭代的开发模型
  • 对有些项目,开发过程中根本没有文档产生,故W模型无法使用。。对于需求和设计的测试技术要求很高,实践起来很困难。
H模型:
  • 软件开发中需求、设计、编码等活动被分阶段执行、但是实践中,他们并不是完全串行的,它们之间更多时候是交叉进行的,更多的是迭代执行
  • 把测试活动完全独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来

 

优点

  • 软件测试完全独立,贯穿整个生命周期,且与其他流程并发进行。
  • 软件测试活动可以尽早准备、尽早执行,具有很强的灵活性 

缺点

  • 测试就绪点分析困难
  • 对于整个项目组的人员要求非常高 
软件测试工作流程:
传统测试流程:

系统测试流程:

Bug管理流程:

测试左移和测试右移 
测试左移
  • 左移是往测试之前的开发阶段移
  • 测试团队在软件开发周期早期就开始介入。
  • 对代码进行测试
  • 从发现bug到预防bug
测试左移-质量保障手段(方法)
  • 代码评审(code review)
  • 代码审计
  • 单元测试
  • 自动化冒烟测试。研发自测 
 测试右移
  • 右移是往发布之后移。
  • 产品上线后进行线上监控。
测试右移-线上监控
  • 闭环的线上问题反馈-检查-解决-更新流程
  • 更便捷的日志查看、回传服务
  • 丰富有效的log,便于问题的快速定位。
  • 丰富的监控指标(例如业务异常点指标)。
  • 业务监控(例如短信发送等)
  • 关键指标每日监控(服务器指标)。
  • 生产数据监控(警报)

4.测试技术体系

软件测试分类:

黑盒测试:
  • 黑盒测试又称数据驱动测试。
  • 完全不考虑程序内部结构和内部特性。
  • 注重于测试软件的功能需求。
  • 只关心软件的输入数据和输出数据。
 白盒测试:
  • 白盒测试研究产品内部的源代码和程序结构。
  • 单元测试就是白盒测试的一种。
 自动化分层测试体系
  • 70% 单元测试。
  • 20% 服务测试。
  • 10% 用户界面测试。
单元测试
  • Java
    • JUnit
    • TestNG
  • Python
    • unittest
    • pytest

接口测试:
  • 接口全称 Application Programming Interface,一般称作 API。
  • 接口测试是针对软件对外提供服务的接口的输入输出进行测试。
    • 检查接口参数传递的正确性。
    • 接口功能实现的正确性。
    • 输出结果的正确性。
    • 对各种异常情况的容错处理的完整性和合理性。
接口测试方法:
  • Charles、Fiddler
  • postman
  • Jmeter
  • loadRunner
  • python:Requests、HttpRunner
  • Java:HttpClient、RestAssured

 

UI 测试:
  • 手工方法:人工查看、操作。
  • 自动化方法:
    • Web:Selenium
    • App:Appium

5.常用测试平台

测试用例管理平台
  • JIRA:推荐方案,定制性很强。
  • RedMine:推荐方案,开源,活跃,定制性很强。
  • TestLink:流行的测试用例管理平台,体验不太好。
  • 其他:Tapd、云效、禅道、GitLab、在线协作文档。
  • 无协作模式:Excel、思维导图。
JIRA 测试用例管理 

Xray Test Management 

RedMine 系统 

TestLink 

Bug 管理平台
  • 通常与用例管理平台一致。
  • 测试用例、Bug 都可以使用 issue 表达。
  • 关联关系设定。
  • 测试用例与 Bug 的属性设定。
代码管理平台
  • GitLab:可本地部署的 Git 代码管理平台,行业标准。
  • SubVersion:SVN 管理,已经过时。
  • GitHub:开源项目运作。
  • BitBucket:与 JIRA 同属一家公司 Altassian。
 GitLab

持续集成管理平台
  • Jenkins:持续集成与持续交付的主流平台。
  • GitLab Runner:GitLab 的持续交付方案。
  • GitHub Action:GitHub 的开源方案。
  • 自建 DevOps 平台:企业定制平台,Tapd、云效等。
Jenkins 平台

持续集成与持续交付:

  • 研发:
    • 构建、单元测试 + 覆盖率分析。
    • 自动化代码审计。
  • 运维:自动化部署。
  • 测试:
    • 接口测试。
    • UI自动化测试。
    • 专项测试自动化。
    • 性能测试、安全测试。

6.流程管理平台

JIRA 管理平台
  • 推荐方案。
  • 定制性很强。

JIRA 中的基本概念
  • Project 项目
  • Issue 问题
  • Field 字段
  • Workflow 工作流
  • Screen 视图

 

JIRA 管理测试用例流程
  1. 创建测试用例管理项目。
  2. 录入用例。
  3. 测试用例状态转化。

 

JIRA 管理 Bug 流程
  1. 创建 Bug 管理项目。
  2. 从用例关联到 Bug。
  3. 在项目中录入 Bug。
  4. Bug 状态转化。

7.项目管理与跨部门沟通协作

项目管理:

需求阶段:
项目经理产品研发测试
活动
1. 在项目管理工具中建立项目目录
2. 分析项目所需资源、风险等
3. 预估项目周期
活动
1. 收集整理需求
参与
1. 需求分析
2. 环境分析
参与
1. 需求分析
2. 环境分析
产出
1. 项目计划(大致时间规划)
产出
1. 需求文档
设计阶段
项目经理产品研发测试
活动
1. 监控项目进度
2. 组织安排本阶段的评审
3. 任务分解,责任到人
4. 细化项目计划
活动
1. 系统功能设计
活动
1. 系统功能技术设计
2. 数据库设计
活动
1. 组织测试计划评审
产出
1. 项目计划(具体到各个功能)
产出
1. 系统说明书
产出
1. 概要设计文档
2. 详细设计文档
产出
1. 测试计划
开发阶段: 
项目经理产品研发测试
活动
1. 监控项目进度
2. 调整人员安排
3. 跟踪解决技术难点
参与
1. 需求细节沟通
活动
1. 具体功能开发
2. 组织 code review
3. 单元测试
活动
1. 编写测试用例
2. 组织测试用例评审
产出
1. 项目计划(更新进度)
2. 项目报告进度
产出
1. 功能代码
2. 单元测试代码
产出
1. 测试用例
集成测试阶段 
项目经理产品研发测试
活动
1. 监控项目进度
2. 跟踪解决技术难题
参与
1. 需求细节沟通
2. Bug 修改方案
活动
1. 集成测试
2. 修改 Bug
活动
1. 支持研发进行集成测试
2. 准备测试数据
3. 准备自动化测试用例
产出
1. 项目报告进度
产出
1. 集成测试报告
2. 部署测试环境
系统测试阶段 
项目经理产品研发测试
活动
1. 分配 Bug
2. 跟踪解决技术难题
参与
1. 需求细节沟通
2. Bug 修改方案
活动
1. 支持测试
2. 修改 Bug
活动
1. 测试环境搭建
2. 补充测试数据
3. 功能测试
4. 自动化测试
产出
1. 项目报告进度
产出
1. 系统测试报告(执行报告)
2. 缺陷报告
软件项目管理的方法
  • 制定项目计划。
  • 执行该计划并监控跟踪管理。
  • 项目风险应对与问题解决。
  • 项目收尾。
 跨部门沟通协作 - 与产品沟通
  • 需求评审会。
  • 在分析需求阶段。
  • 在测试用例编写阶段。
  • 在测试过程中。
跨部门沟通协作 - 与研发沟通
  • 在分析需求阶段。
  • 在测试用例编写阶段。
  • 在测试过程中。
  • 在线上监控发现 Bug 时。
 跨部门沟通协作 - 上下游测试配合
  • 测试计划沟通。
  • 环境对接。
  • 熟悉业务。
项目实例 

8.测试经典书籍拆分讲解

全程软件测试
  • 测试行业的经典书籍
    • 测试方法
    • 测试策略
    • 领域测试
    • 主流测试技术
    • 涵盖了软件测试的流程与方法体系

探索式测试
  • 探索式测试的经典代表性书籍
  • 探索式测试是业务测试和手工测试实践中的一个方法论

Google测试之道
  • 高级测试工程师与架构师必读
  • 讲解google的测试策略与方法
  • 以及google对软件开发与测试的理解

持续交付
  • 持续交付的经典书籍
  • 现代化软件研发与测试的启蒙
    • 持续交付 1.0
    • 持续交付 2.0

不测的秘密
  • 腾讯TMQ出品
  • 精准化测试代表性书籍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1329288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言中关于操作符的理解

本篇文章只会列出大家在生活中经常使用的操作符 算术操作符 在算数操作符中常用的有&#xff0c;&#xff0c;-&#xff0c;*&#xff0c;/&#xff0c;% &#xff0c;我们重点讲一讲 / (除) 和 % (模) " / "运算 #include <stdio.h>int main() {int a5/2;fl…

【Amazon 实验③】使用Amazon WAF做基础 Web Service 防护之速率策略

文章目录 1. 速率策略1.1 介绍 2. 实验步骤2.1 添加规则2.2 测试2.3 结果 通过上一篇文章大家了解到如何使用Amazon WAF做关于自定义规则设置的 Web Service 防护【Amazon 实验②】使用Amazon WAF做基础 Web Service 防护之自定义规则&#xff0c;本篇文章将继续讲解一下关于速…

WebGL开发三维解剖学应用

开发基于 WebGL 的三维解剖学应用通常涉及以下步骤。这些步骤包括创建三维模型、整合交互性、优化性能等&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.三维模型创建&#xff1a; 首先&#xff0…

SpringBoot 使用Quartz执行定时任务对象时无法注入Bean问题

文章目录 问题描述解决方案结束语 大家好&#xff01;今天是2023年12月21日 | 农历十一月初九(距离2024年还有一周左右的时间)&#xff0c;最近还是比较忙的&#xff0c;忙着搞钱&#xff0c;毕竟马上过年啦&#xff01; 问题描述 感谢大家对我一直以来的支持与帮助&#xff0c…

7.串口通信uart编写思路及自定义协议

前言&#xff1a; 串口是很重要的&#xff0c;有许多模块通信接口就是串口&#xff0c;例如gps模块&#xff0c;蓝牙模块&#xff0c;wifi模块还有一些精度比较高的陀螺仪模块等等&#xff0c;所以学会了串口之后&#xff0c;这些听起来很牛批的模块都能够用起来了。此外&#…

Qt/QML编程学习之心得:在QML工程中添加库(十四)

实现库并且使用库&#xff0c;类似于vc中的静态库library、动态库dll、COM组件等方法一样&#xff0c;在Qt中也经常会使用库&#xff0c;或者将部分功能打包成库。 右击Qt项目&#xff0c;点击add library... 在linux中将.a文件导入&#xff0c;工程会自动在.pro温江中增加相应…

centos安装Jenkins并拉取git远程仓库的代码进行自动化构建部署

安装Jenkins并拉取git远程仓库的代码进行自动化构建部署 1 前置条件2 先安装jdk113 安装git4 安装maven5 安装jenkins5.1下载jenkins5.2启动jenkins 6 使用jenkins拉取git仓库代码并部署6.1 安装插件6.2 在jenkins中配置maven6.3在jenkins上构建maven项目6.4 配置拉取的git仓库…

成功案例分享:物业管理小程序如何助力打造智慧社区

随着科技的进步和互联网的普及&#xff0c;数字化转型已经渗透到各个行业&#xff0c;包括物业管理。借助小程序这一轻量级应用&#xff0c;物业管理可以实现线上线下服务的无缝对接&#xff0c;提升服务质量&#xff0c;优化用户体验。本文将详细介绍如何通过乔拓云网设计小程…

【vtkWidgetRepresentation】第十六期 vtkContourRepresentation(三)

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享vtkContourLineInterpolator接口的源码剖析和实例应用,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 目录 前言 …

csrf自动化检测调研

https://github.com/pillarjs/understanding-csrf/blob/master/README_zh.md CSRF 攻击者在钓鱼站点&#xff0c;可以通过创建一个AJAX按钮或者表单来针对你的网站创建一个请求&#xff1a; <form action"https://my.site.com/me/something-destructive" metho…

【Java基础】 一个空的Object对象到底占多少内存

对象头包括&#xff08;Markword、类元指针、数组长度&#xff09; 压缩指针ON&#xff1a;占用12字节&#xff0c;Markword占8字节、类元指针占4字节.但是为了避免伪共享问题&#xff0c;JVM会按照8字节的倍数填充&#xff0c;所以会在对其区填充4字节&#xff0c;变成16字节。…

PhysX——源码编译

从git下载源码 git主页 https://github.com/NVIDIA-Omniverse/PhysXclone地址 https://github.com/NVIDIA-Omniverse/PhysX.git源码编译 运行PhysX需要两个编译器的支持&#xff0c;CMake 3.12 或以上版本以及Python 2.7.6 版本 进入工程的 physx 目录&#xff0c;运行generate…

系列一、GitHub搜索技巧

一、GitHub搜索技巧 1.1、概述 作为程序员&#xff0c;GitHub大家应该都再熟悉不过了&#xff0c;很多时候当我们需要使用某一项技能而又无从下手时&#xff0c;通常会在百度&#xff08;面向百度编程&#xff09;或者在GitHub上通过关键字寻找相关案例&#xff0c;比如我想学…

贪心法之活动安排问题

问题: 给定n个活动&#xff0c;每个活动有一个开始时间si和结束时间fi&#xff0c;选择出最大的互不相容的活动 集合。 思路&#xff1a; 将所有活动按照结束时间从小到大排序。 选择第一个活动&#xff0c;并将其加入最终的选择集合中。 依次考虑剩余的活动&#x…

基于Linphone android sdk开发Android软话机

1.Linphone简介 1.1 简介 LinPhone是一个遵循GPL协议的开源网络电话或者IP语音电话&#xff08;VOIP&#xff09;系统&#xff0c;其主要如下。使用linphone&#xff0c;开发者可以在互联网上随意的通信&#xff0c;包括语音、视频、即时文本消息。linphone使用SIP协议&#…

2024年你的年度目标OKR制定好了吗?

标题2023年余额见底&#xff0c;2024年的FLAG都制定好了吗&#xff1f; 目标很明确&#xff0c;计划很丰满&#xff0c;执行起来又处处透着一点点乏力&#xff0c;怎么办&#xff1f; 2024年可以尝试用OKR制定目标。 OKR目标管理方法&#xff0c;既适用于企业&#xff0c;也…

连续色调图像的二维编码

连续色调图像的二维编码&#xff08;也被称为连续色调图像的矢量量化&#xff09;是一种图像压缩和数据储存的方法&#xff0c;适用于连续渐变的色彩信息。该编码方法有助于减小图像文件的体积&#xff0c;并被广泛应用于数字图像处理、存储和传输领域。本文将介绍连续色调图像…

【科学计算语言】实验四 科学计算与可视化

【目的和要求】 &#xff08;1&#xff09;理解科学计算实质并掌握Python语言的科学计算应用 &#xff08;2&#xff09;掌握常用科学计算库 &#xff08;3&#xff09;熟练运用numpy及scipy、matplotlib等计算库资源 【实验准备】 Python核心科学计算库的导入、配置并熟悉相关…

Hive-high Avaliabl

hive—high Avaliable ​ hive的搭建方式有三种&#xff0c;分别是 ​ 1、Local/Embedded Metastore Database (Derby) ​ 2、Remote Metastore Database ​ 3、Remote Metastore Server ​ 一般情况下&#xff0c;我们在学习的时候直接使用hive –service metastore的方式…

基于ChatGLM搭建专业领域问答机器人的思路

如果我们对ChatGLM进一步提出涉及专业领域的问题&#xff0c;而此方面知识是ChatGLM未经数据训练的&#xff0c;那么ChatGLM的回答效果如何呢&#xff1f;本节将考察ChatGLM在专业领域的问答水平&#xff0c;并尝试解决此方面的问题。 在使用ChatGLM制作专业领域问答机器人之前…