Azure Devops测试管理(上)
因为最近测试人员合并到我这边开发组,对于如何能更好管理测试流程和测试与开发能更高效的完成任务,通俗的说如何能更敏捷,深入思考,然后就开始琢磨起TFS(也称之为VSTS/Azure Devops,因为我这边还是用着TFS2018还未升级,下文都称之为TFS)
本篇文章分上下
上 主要更多说在测试流程和手工测试的管理下
下 主要是更多探讨自动化的一些流程(暂时摸索结合Specflow的形式来搞,这样可以方便和测试用例映射)
现状:
先业务部门先加业务需求到Jira,然后视情况有可能要配合QA添加测试任务,由此可能会带一个主Jira任务和若干个子测试任务。
然后QA可能会根据此会有他们的测试用例,写在各自的excel里,可能会某些时候汇总下但总体依然是本地保存。
对此我的疑惑:
Jira的目的应该是任务管理,任务管理里穿插着测试任务这样真的好吗?
另外就算任务分解也应该是开发的任务分解,比如业务部门提的应该是业务目标咯,为了完成一个业务目标开发可能要完成若干个事情,那任务管理里更应该体现的是这个而不是测试。
测试任务应该是另外的地方分门别类把?(当然之后肯定要有一个汇总展示的地方将业务目标/开发任务/测试任务都显示出来的)。
然后眼光放到了TFS上面的“Test”上。
发觉一个事情,TFS四大支柱里,Code/Work/Build And Release/Test。

网上介绍的最少的就是Test,最多的是Build And Release(也就是Azure Pipeline)。
摸索TFS的Test流程
Test下分为Test Plans/Parameters/Configurations/Runs/Machine这几个子tab。
除了一个Runs显然是显示测试结果用的,其他的我之前一点都没接触郭,然后我重点去摸索了下他的Test Plan

通过它的Test Plan大概整理出按照TFS的套路,一个测试流程是由三部分构成:
Test Plan 测试计划:猜想就是对应到某个迭代周期的意思
Test Suit 测试套件:猜想是映射到某个业务目标的意思
Test Case 测试用例:具体的某一个测试场景
一个测试计划包含若干个测试套件,一个测试套件包含若干个测试用例
但是一个测试用例可以属于多个测试套件,一个测试套件也可以属于多个测试计划
而最细粒度的测试用例则是类似下面的样子录入

然后应该会是类似下面这样的结构组成

有个细节是测试用例里的状态只有三个 设计/就绪/已关闭
之前有人问我,怎么没有“已完成”之类的状态,不然如何表达我测试完了,我一愣。
继续琢磨下发现测试用例本身是没生命周期的,他的生命周期是隶属于他所属的测试计划。
也就是测试用例是可以放到多个测试计划里,每个测试计划下可能成功可能失败,但它自身是没生命的

隔壁的五颜六色测试用例里就长这样

测试人员应该如何使用
前方大概聊了下TFS下的设计套路,下面聊聊作为一个QA如何使用。
1.创建测试计划

创建下,关联当前迭代,没啥好说的,一步略过。
2.筛选需要测试的需求

对着测试计划右键,可以通过这2个进行筛选,我觉得好一点做法是创建一个查询,制订好对应查询的条件那么就可以恒定用第三个基于查询的套件,我这选择第二个基于需求的套件。

查出了一堆任务,然后从中捞是分配给我的测试任务,比如我这里选择前三个后创建套件(Create Suites)

自动根据你选择的积压工作项创建了测试套件,然后我要在每个套件下创建对应测试用例


好,现在用例有了,我们运行测试,运行测试会有2种情况,分为自动化了的和没自动化的,自动化的下篇讲,先谈未自动化的。

选中用例,点击运行,之后会弹出一个框,就是对照着你的测试用例出来的每个步骤,那我们照着测试流程来一轮把

卧槽,该页无法显示,这是bug

先记录下我是在第一个步骤就出错了,然后上方有个创建Bug,点下然后填写好对应信息扔给开发

关于手工测试的时候,可以在浏览器安装对应插件之后,还能录制执行的动作,支持截屏等
https://marketplace.visualstudio.com/items?itemName=ms.vss-exploratorytesting-web
由于目前出现了Bug,所以测试流程中断,保存下

之后Dev说修好了,在重新走一次验证流程。
后续
由于各种流程还在探索中,暂时主要就上述部分。
另外还应该提供几个图表给测试人员看,暂时能想到的几个:
①当前已经可以进行测试了的任务(开发已提交了的)
②当次迭代还没被分配测试套件的任务
③手头还完成(即失败或未开始的)测试任务
④自动化测试占比
这几个应该要在一个测试专用的Dashboard里展示出来,让大家都能共享知道进度
手工测试部分和测试流程部分大概就那么多,自动化部分还在坑里中。
另外Test里还有Parameter和Configuration之类的,虽然感觉我能理解它是什么,但是不知道怎么用,微软官方里感觉也写的不明不白
一切都是自己摸索的,如果有误还望指正
Azure Devops测试管理(上)的更多相关文章
- Azure DevOps Server 入门实践与安装部署
一,引言 最近一段时间,公司希望在自己的服务器上安装本地版的 Azure DevOps Service(Azure DevOps Server),用于项目内的测试,学习.本着学习的目的,我也就开始学习 ...
- 微软Azure DevOps自动化部署
1.准备一个https://hub.docker.com账号,申请一个免费的镜像仓库(免费账户可以申请一个) 创建docker远程镜像库 2.新建一个mvc的项目 给这个项目加上Dockerfile文 ...
- Azure Devops/TFS测试管理(下)
紧接着 上篇 经过上篇折腾,我们已经有了: ①手工测试的流程规范 ②测试用例的管理 对于开发出身的我,我觉得一个项目上线流程应该主要瓶颈只能是开发本身,因为我认为最复杂过程应该就是开发,而肯定不能是测 ...
- [Azure DevOps] 管理测试计划、测试套件和测试用例
我喜欢测试计划,它能让团队清楚测试进度,还能妥善分配测试人员,更重要的是它能保证测试质量和效率.Azure DevOps 里提供了 Test Plans 这个模块用于管理测试计划. 1. Azure ...
- 在macOS苹果电脑上安装Azure DevOps Server(TFS)代理
1. 概述 MacOS是一套运行于苹果Macintosh系列电脑上的操作系统,是首个在商用领域成功的图形用户界面操作系统.Iphone应用软件的开发人员,都使用运行macOS的电脑或mini盒子进行软 ...
- 如何利用Azure DevOps快速实现自动化构建、测试、打包及部署
前两天有朋友问我,微软的Azure好用吗,适不适合国人的使用习惯,我就跟他讲了下,Azue很好用,这也是为什么微软云营收一直涨涨涨的原因,基本可以再1个小时内实现自动化构建.打包以及部署到Azure服 ...
- 在Azure DevOps Server (TFS)的流水线中编译和测试Xcode移动应用(iPhone)
概述 Xcode是开发基于苹果macOS系统的桌面应用和移动应用的主要IDE工具.使用Azure DevOps Server (原名TFS)系统中的pipelines流水线功能,可以方便的集成Xcod ...
- 在Azure DevOps Server(TFS)上集成Python环境,实现持续集成和发布
Python和Azure DevOps Server Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初主要为系统运维人员编写自动化脚本,在实际应用中,Python已经在前端 ...
- [Azure Devops] 使用 Azure Repos 管理代码
1. 什么是 Azure Repos Azure Repos 是一组版本控制工具,可用于管理代码.无论您的软件项目是大型项目还是小型项目,都应尽快使用版本控制. 版本控制系统是可帮助您跟踪随时间变化对 ...
随机推荐
- Spark宽依赖、窄依赖
在Spark中,RDD(弹性分布式数据集)存在依赖关系,宽依赖和窄依赖. 宽依赖和窄依赖的区别是RDD之间是否存在shuffle操作. 窄依赖 窄依赖指父RDD的每一个分区最多被一个子RDD的分区所用 ...
- Linux从一台linux机器复制文件到另一台linux机器
1.功能说明 scp 用于将文件/目录从一台linux系统复制到另一台linux系统.传输协议为SSH协议,保证了传输数据的安全性 其格式如下: (1)scp 本地linux系统文件路径 远程用 ...
- springCloud负载均衡Ribbon和Feign的区别
1.什么是负载均衡: 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据[均匀]分摊到多个操作单元上执行,负载均衡的关键在于[均匀]. 2.常见的负 ...
- 基于Redis的Service缓存实现
项目中有使用到缓存,每次需要将缓存代码和业务代码杂糅在一起,以及分散各处的key,严重影响代码的可读性.以下是使用AOP对其简单尝试.直接上代码: 1.定义缓存注解: @Target(ElementT ...
- 20)PHP,数组的遍历
然后开始使用这2个函数和while循环结构来实现数组遍历: 形式: reset($arr1); while ( list ($key, $value ) = each( $arr1) ) //从数组$ ...
- 华硕X450j清灰教程
近期本人电脑咳嗽,电脑发烧,风扇呼呼的吹(电脑风扇好像出了问题),去了电脑上商城买了一支止咳糖浆(HEATSINK COMPOUNDS)硅脂, 废话不多说了 1 ,当然要把电脑关了,卸下三排螺丝,然后 ...
- python关于文件操作
今日所得 文件操作模式的补充 文件光标的移动控制 截断文件 修改文件 函数的简单介绍 文件操作模式的补充 """ r w a 将上面的三个模式称为纯净模式 r+ w+ a ...
- swift中的category,扩展
1.创建选择 :swift file 2.名称:UIBarButtonItem-Extension 3.category,便利构造函数 extension UIColor { /* 1.extensi ...
- 对kotlin和java中的synchronized的浅谈
synchronized在java中是一个关键字,但是在kotlin中是一个内联函数.假如分别在java和kotlin代码锁住同一个对象,会发生什么呢,今天写了代码试了试.首先定义people类 12 ...
- [LC] 117. Populating Next Right Pointers in Each Node II
Given a binary tree struct Node { int val; Node *left; Node *right; Node *next; } Populate each next ...