JIRA的使用介绍(三)- Xray - 基于JIRA的测试管理插件

JIRA是一个流行的产品,除了其自身功能强,可扩展性好以外,JIRA还拥有一个庞大的生态圈。拥有众多的插件开发商、合作伙伴和用户。

从产品层面看,JIRA产品具备很强的扩展能力,例如对于问题单类型、流程、表单、字段,报表,通知,权限配置都是可以定制的,而且还内置或者可以定制很多方案(Schemes)方便扩展。

另外JIRA产品拥有支持Add-On(插件)的能力,围绕Add-On能力Atlassian公司做了一个App市场,各种外围合作方和供应商可以通过App市场把他们开发的第三方的插件开放给所有JIRA产品的客户购买和使用。另外JIRA产品相关的相关的各种培训和论坛也都非常活跃。这些反过来也让这个产品更受欢迎。

Xray就是众多这些插件应用中的一个,Xray是一个叫xpand的英国公司开发的插件。据说就个插件已经在60多个国家被1K多的客户在使用。因为我们在之前的一个项目上用这个工具,所有有所了解。Xray在测试管理这个领域比较知名,下面就用这个插件为例介绍下使用JIRA+Xray如何进行测试管理。

核心概念和模型

概念/术语 问题类型 描述 别名
Test 测试用例 一个测试用例。可能是手工或者自动化的测试用例,由测试步骤,行为和预期结果构成 test case, test scenario, test template
Pre-Condition 前置条件 测试前置条件,一个测试前置条件可以被多个测试用例所引用  
Test Set 测试集合 一组测试用例的集合。一个测试用例可能会属于多个测试集合。 test group, test suite
Test Plan 测试计划 一个正式的测试计划通常被用于为某个给定的项目版本执行  
Test Execution 测试执行 测试执行是一个可分配的,可规划的任务,用于给一个指定的版本执行一个或多个测试用例,并给出结果报告 test cycle*
Sub-Test Execution 子测试执行 一个“子测试执行”同“测试执行”拥有相同的功能,不同之处在于子测试执行是一个可以在需求上下文中创建的子任务。在需求单的界面创建一个测试执行可以让用户有能力在敏捷看板中跟踪执行的进展。  
test run - 测试运行。一个测试运行的实例包括执行的状态和执行规格的快照。当给一个测试执行增加一个测试用例后,一个测试运行会在测试执行的上线文中被内建出来。一个测试用例可能会拥有多个测试运行。  
test status - 测试状态。大部分情况下,是一种测试运行的状态的速记。Xray提供了一个定制化的估算状态“TestRunStatus”,这个状态根据不同的规则可以被用于查询等多个场景中。 ..
requirement Story, Requirement, .... 需求是你希望从系统获得的东西,或者叫特性。一个好的需求应该解释系统是如何实现来达到目标的。  
test repository - 测试库是在一个项目中所有的测试用例集合。在Xray中, 测试库只是测试问题单的简单组合。  
test strategy - 测试策略描述了哪些需求需要验证,怎么验证,手工还是自动方式,以及测试资源分配等主题  
testing lifecycle - 根据需求规格和修订结果,测试生命周期会涉及到测试计划,测试设计,测试执行和测试报告。

以上这些测试概念的关系可以用下图来表达:

Entity Relationship Diagram

项目可以包括多个版本,每一个版本可以包括一个或多个需求,一个需求可能包括一或多个测试用例。实际上,一个需求甚至可以包括测试集合。测试计划包括那些需要被跟踪的测试用例。测试执行包括那些希望被执行的测试用例。一个测试用例可以被包括在多个测试集合中,可以被多个测试计划所使用,也可以被多个测试执行所执行。一个测试用例可以包括一或多个前置条件,一个前置条件也可以被多个测试用例所引用。每次一个测试用例在测试执行中被执行后,一个测试运行(Test Run)就会被创建。

测试流程

通常一个典型的测试生命周期如下,在Xray基本都可以找到对应的映射实体:

testing_lifecycle

每一个阶段的测试一般都包括计划,设计,执行和报告四个主要过程,Xray中可以通过创建特定的问题单来对应以上步骤。

  • 计划阶段: “Test Plan”问题单
  • 设计阶段: 通过创建“Pre-Condition”问题单和“Test”问题单(测试用例)解决. 另外还可以通过测试集合来组织这些测试用例。
  • 执行阶段: Test Execution问题单
  • 报告阶段: 通过使用JIRA内置工具,通过测试执行问题单可以产生需求覆盖率及一些其它测试报告数据。

需求和测试用例关系

通常在使用一个Xray的测试项目之前,最好先创建一个需求相关的项目,这样通过和需求项目的关联,我们可以很容易知道测试的覆盖率。

在系统中,测试用例会关联到需求(Requirement)或者缺陷(Defect)中,典型的需求问题会包括:Epic,Story,Requirement,Sub Requirement,Feature和Improvement这些,典型的缺陷问题会包括:Bug和Defect。需求和缺陷同测试用例的关系可以表示如下。

xray_issue_linking

使用JIRA内置的Link类型,可以把需求和测试用例链接起来,以上图为例:

  • 需求R "is tested by" 测试用例T (或者测试集合TS)
  • 测试用例T (或者测试集合TS) "tests"需求R
  • 缺陷D "is created by" 测试用例T
  • 缺陷D "is tested by" 测试用例T (或者测试集合TS)
  • 测试用例T "created" 缺陷D
  • 测试用例T (或者测试集合TS) "tests" 缺陷D

如何使用Xray(操作介绍)

安装Xray也很简单,通过JIRA内置的Add-On市场找到Xray,选择安装即可,可以试用一个月,喜欢就可以直接购买了。下面介绍下如何试用Xray一步步来做一个UAT测试的项目。

  1. 使用Xray的Template创建一个测试项目,创建完成后,会自动用于Xray自带的问题单类型,流程,表单和字段设置

    Xray Test Project

  2. 完成测试项目创建后,就可以直接开始使用系统了,可以创建一个测试用例试试看。

    Create a test

  3. 为需求单关联一个测试用例,打开需求单,点击More,选择Link,选择测试用例即可。

    Add a link

  4. 为缺陷单关联一个测试用例,同样的方法,如果需要为一个缺陷单关联一个测试用例,选择link,选择created by或者tested by选项,既可把缺陷单和测试用例关联起来。

    Link defect with test

  5. 执行一个测试阶段,首先去创建一个测试计划,然后把需要测试的测试用例挂入测试计划中去,接下来可以创建一到多个测试执行,测试过程如果发现问题可以直接创建故障单。一个测试用例测试失败后,可以直接在当前测试执行中标识为Fail,等相关故障单修复完毕后,可以再次创建一个新的测试执行,后一次的测试结果如果是Pass,整个测试用例的状态也会被标明为Pass。在下面这个例子中,一个测试计划包括一个测试用例,这个测试用例产生了两个测试执行,第一次执行失败后创建了一种故障单,第二次执行成功。

    Test samples

  6. 最后就是测试报告。这个通过JIRA内置工具可以很方便的统计测试覆盖率,如下:

    Overall Coverage requirements chart

    或者生成测试报告:

    Test Plans Report

结语

总体而言,Xray是一种非常简单易用的插件产品。系统设计的思路很贴近业界最新的测试理论和实践,例如自动化测试的设计,支持敏捷/看板的实践,另外可以很容易对接需求用例以及外围系统。
在我们的一个项目中,Xray被用于了UAT的测试过程,整个测试过程采用敏捷研发的方式,系统按照产品分多个团队,每个团队每两周一个迭代,每个迭代一个测试计划,每个测试计划包括若干测试用例,每个迭代失败的用例放入下一个迭代继续测试。
测试用例结构上分为Epic->Story->Test Case,其中Epic和Story来自需求和HLD,Test case需要覆盖所有Story。在用例执行层面有Sprint-> Test Plan -> Test Execution,用以管理所有用例的执行计划和执行结果。
整个使用过程很流畅,JIRA内置的强大JQL查询能力和Dashboard的定制能力也让人印象深刻。Xray+JIRA确实是值得推荐的测试管理方案。

转发:https://www.jianshu.com/p/50e0289a4656

原文地址:https://www.cnblogs.com/beiyue/p/11648071.html

时间: 2024-10-10 10:30:05

JIRA的使用介绍(三)- Xray - 基于JIRA的测试管理插件的相关文章

基于JIRA的Scrum敏捷开发的项目管理

Scrum开发的步骤及准备 Scrum敏捷开发的关键字就是增量.迭代,他更重视项目团队之间的现场沟通,不向传统瀑布式开发那样需要万事具备,才开始开发,Scrum在大方向和小故事点确认好了后,团队就可以开动了. Scrum的团队一般都不大,一Scrum团队人数一般在10人左右,主要角色有: product owner(产品负责人).scrum master(团队负责人).scrum team(开发/测试团队). Product owner :需求方,提出需求,能对功能流程.业务流程拍板的人. Sc

Lucene.Net 2.3.1开发介绍 —— 三、索引(五)

原文:Lucene.Net 2.3.1开发介绍 -- 三.索引(五) 话接上篇,继续来说权重对排序的影响.从上面的4个测试,只能说是有个直观的理解了.“哦,是!调整权重是能影响排序了,但是好像没办法来分析到底怎么调啊!”.似乎是这样,现在需要把问题放大,加大索引的内容.到博客园新闻区,用zzk找了4篇内容包含“测试”的文章.代码变成 2.1.5 代码2.1.5  1using System;  2using System.Collections.Generic;  3using Lucene.N

Lucene.Net 2.3.1开发介绍 —— 三、索引(一)

原文:Lucene.Net 2.3.1开发介绍 -- 三.索引(一) 在说索引之前,先说说索引是什么?为什么要索引?怎么索引? 先想想看,假如现在有一个文本,我们会怎么去搜索.比如,有一个string = "abcdefghijklmnopqrstuvwxyz",这都是26个字母.现在要看看里面是不是有a,用IndexOf就可以很方便实现.现在数据量大了,在数据库里已经有100多条数据了,当然,利用数据库提供的操作方法,也可以很方便的查找.而这里先抛开数据库,把这100多条记录放到N个

将 Shiro 作为应用的权限基础 三:基于注解实现的授权认证过程

授权即访问控制,它将判断用户在应用程序中对资源是否拥有相应的访问权限. 如,判断一个用户有查看页面的权限,编辑数据的权限,拥有某一按钮的权限等等. 一.用户权限模型 为实现一个较为灵活的用户权限数据模型,通常把用户信息单独用一个实体表示,用户权限信息用两个实体表示. 用户信息用 LoginAccount 表示,最简单的用户信息可能只包含用户名 loginName 及密码 password 两个属性.实际应用中可能会包含用户是否被禁用,用户信息是否过期等信息. 用户权限信息用 Role 与 Per

webapi框架搭建-安全机制(三)-基于角色的权限控制

webapi框架搭建系列博客 上一篇已经完成了"身份验证",如果只是想简单的实现基于角色的权限管理,我们基本上不用写代码,微软已经提供了authorize特性,直接用就行. Authorize特性的使用方法 配置Authorize 比较简单,直接上代码 using System.Collections.Generic; using System.Net.Http; using System.Security.Claims; using System.Web.Http; using we

linux程序分析工具介绍(三)——sar

本文要介绍的sar,是linux下用来分析系统本身运行情况的非常有用的工具.我们知道,程序在操作系统上要运行,要关注的点不外乎内存,CPU和IO(包括磁盘IO和网络IO).我们的应用程序在操作系统中运行前,我们需要了解系统当前的内存,cpu和IO的使用状况,还需要明白我们的应用程序运行时自身所需要的内存,cpu和IO资源的情况.只有操作系统剩余的内存,cpu和IO资源能够满足应用程序所需要的,才能保证应用程序在操作系统中正常的运行.sar就是用来帮助我们了解操作系统当前内存,cpu和IO等资源的

Lucene.Net 2.3.1开发介绍 —— 三、索引(四)

原文:Lucene.Net 2.3.1开发介绍 -- 三.索引(四) 4.索引对搜索排序的影响 搜索的时候,同一个搜索关键字和同一份索引,决定了一个结果,不但决定了结果的集合,也确定了结果的顺序.那个这个结果是怎么得出来的?这个顺序又是怎么排的呢?这两个问题不是本节讨论的重点,但是这两个问题却关系到本节要讨论的,索引对结果的影响问题.在不使用字段排序的情况下,Lucene.Net默认是按文档的得分来排序的,这个公式看着很复杂,感觉像是大学时高数书上的那些个公式,其实说清楚了也简单. 关于文档排序

Lucene.Net 2.3.1开发介绍 —— 三、索引(七)

原文:Lucene.Net 2.3.1开发介绍 -- 三.索引(七) 5.IndexWriter 索引这部分最后讲的是IndexWriter.如果说前面提到的都是数据的结构,那么IndexWriter就是业务的封装.无论述Document,Field还是看不见的Segment,Term都是对数据存储逻辑的抽象,IndexWriter包装了操作的过程. 当然,这里不会讨论IndexWriter的每个细节,这里主要介绍IndexWriter的常用法和实际使用中遇到的部署问题. 5.1 IndexWr

Lucene.Net 2.3.1开发介绍 —— 三、索引(六)

原文:Lucene.Net 2.3.1开发介绍 -- 三.索引(六) 2.2 Field的Boost 如果说Document的Boost是一条线,那么Field的Boost则是一个点.怎么理解这个点呢?设置Document的Boost会影响所有字段.在搜索的过程中,一般至少会搜索两个Field,比如同时搜索标题和内容.而Document的Boost将同时影响标题和内容的搜索得分,但是设置Field的Boost则不会有那么大的影响,Field的Boost只会影响一个点.那这个点有什么用呢? 现在来