职业经验 [jira] 基于 jira 的数据进行测试总结

bauul · 2019年01月22日 · 最后由 bauul 回复于 2021年03月05日 · 3670 次阅读

缘由

新加入的公司业务测试到现在,累计发现问题数接近 4000 笔问题,那么在测试完成之后,即需要对这些问题进行总结

问题

如何总结,统计哪些数据?如何做到可视化?
1,基于数据进行统计,
2,基于统计出来的数据进行绘图
这里大概罗列了一下思路:

数据统计

我们是使用的 jira,所以就看了一下 jira 的库表,基本上还是 OK


#总的bug
SELECT 
#优先级字段
#priority.pname,
count(*)
FROM  jiraissue
INNER JOIN issuestatus ON jiraissue.issuestatus=issuestatus.ID
INNER JOIN priority ON jiraissue.PRIORITY=priority.ID
WHERE jiraissue.issuetype='10004' 
#集成测试的
#AND jiraissue.PROJECT='10500'
#前端
#AND jiraissue.ASSIGNEE IN ('x','y','z')
#后端
AND jiraissue.ASSIGNEE IN ('a','b','c')
#按照优先级
#GROUP BY jiraissue.PRIORITY

#测试提bug
SELECT REPORTER, count(*) 
FROM jiraissue as i, priority as p 
WHERE p.SEQUENCE=i.PRIORITY  AND i.issuetype='10004' GROUP BY REPORTER

#各开发完成数量
SELECT ASSIGNEE,count(*),
#优先级字段
priority.pname
FROM  jiraissue
INNER JOIN issuestatus ON jiraissue.issuestatus=issuestatus.ID
INNER JOIN priority ON jiraissue.PRIORITY=priority.ID
#前端
#AND jiraissue.ASSIGNEE IN ('x','y','z')
#后端
AND jiraissue.ASSIGNEE IN ('a','b','c')
WHERE jiraissue.issuetype='10004' AND jiraissue.issuestatus in ('10001','6') GROUP BY ASSIGNEE,priority.pname

#各开发完成数量按照优先级
SELECT ASSIGNEE,count(*),priority.pname
FROM  jiraissue
INNER JOIN issuestatus ON jiraissue.issuestatus=issuestatus.ID
INNER JOIN priority ON jiraissue.PRIORITY=priority.ID
WHERE jiraissue.issuetype='10004' 
AND jiraissue.issuestatus in ('10001','6') 
#前端
#AND jiraissue.ASSIGNEE IN ('x','y','z')
#后端
AND jiraissue.ASSIGNEE IN ('a','b','c')
GROUP BY ASSIGNEE ,PRIORITY 

#集成reopen10202
SELECT changeitem.ID,jiraissue.issuenum,jiraissue.ASSIGNEE,count(changeitem.groupid),jiraissue.SUMMARY
FROM  jiraissue
INNER JOIN changegroup ON changegroup.issueid = jiraissue.ID
INNER JOIN changeitem ON changeitem.groupid = changegroup.ID
WHERE changeitem.NEWVALUE in('4','10202') AND jiraissue.issuetype='10004'
AND jiraissue.PROJECT='10500'
GROUP BY jiraissue.issuenum ORDER BY count(changeitem.groupid) DESC

#各模块的reopen
SELECT changeitem.ID,jiraissue.issuenum,jiraissue.ASSIGNEE,count(changeitem.groupid),jiraissue.SUMMARY
FROM  jiraissue
INNER JOIN changegroup ON changegroup.issueid = jiraissue.ID
INNER JOIN changeitem ON changeitem.groupid = changegroup.ID
WHERE changeitem.NEWVALUE in ('4','10202') 
AND jiraissue.issuetype='10004' GROUP BY jiraissue.issuenum ORDER BY count(changeitem.groupid) DESC

#每天完成数
SELECT date_format(changegroup.CREATED,'%Y-%m-%d') as time, count(1) as count
FROM  changegroup 
INNER JOIN changeitem ON changeitem.groupid = changegroup.ID
INNER JOIN jiraissue ON changegroup.issueid = jiraissue.ID
WHERE changeitem.NEWVALUE in ('5','10200') AND jiraissue.issuetype='10004' 
#前端
#AND jiraissue.ASSIGNEE IN ('x','y','z')
#后端
AND jiraissue.ASSIGNEE IN ('a','b','c')
GROUP BY date_format(changegroup.CREATED,'%Y-%m-%d') 
ORDER BY time 

#每个bug时效'5','10200'
select 
 TIMESTAMPDIFF(HOUR,startTime,endTime) cost,endTime,startTime,issuenum
from (
SELECT 
(SELECT CG.CREATED
FROM  jiraissue jira
#left JOIN changegroup CG ON CG.issueid = jira.ID
#left JOIN changeitem ON changeitem.groupid = CG.ID
INNER JOIN changegroup CG ON CG.issueid = jira.ID
INNER JOIN changeitem ON changeitem.groupid = CG.ID
WHERE changeitem.NEWVALUE in ('5','10200')
AND jira.issuetype='10004' 
and jira.ID=jiraissue.ID
ORDER BY CG.ID DESC
limit 1
) endTime,
jiraissue.CREATED startTime,
jiraissue.ASSIGNEE,
jiraissue.issuenum
from jiraissue 
WHERE jiraissue.issuetype='10004'
#前端
#AND jiraissue.ASSIGNEE IN ('x','y','z')
#后端
AND jiraissue.ASSIGNEE IN ('a','b','c')
) a
where a.endTime is not NULL;

图表绘制

1,缺陷严重等级分布

2,Issue 总数 Top10 的模块

思考

  1. 开发测试过程中存在哪些问题?如何改进?

畅想

未来可以基于更多的数据,比如自动化,性能等维度,来了解系统的质量如何

交流

你所在的测试部门是如何做数据统计或结果分析的?

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 14 条回复 时间 点赞
异彩飞天 回复

jira 的数据都在库表里,你可以通过 rest api 或者直接去库表里捞取你需要的数据集合,需要花点时间按自己的需要定制

我的意思,jira synapseRT 的测试报告,太过零散。qa 去做测试报告的时候需要花较多时间。由于之前是使用禅道专业版本,可以一键导出 一个测试报告合集,qa 只负责总结和结论。

异彩飞天 回复

不清楚你想要啥样的报告,我没有用过禅道,你可以根据自己的需求去定制的

请问有整理得出类似 禅道专业版 导出的测试报告吗?

bauul #10 · 2021年01月06日 Author

一是不能一键出结果,二是有些数据不直观

JIRA 不是有数据分析功能吗,为什么还要自己写代码数据分析

周小凤 回复

这个好久没看了,看下涉及到的几张表吧,主要是修改记录表,来判断一个 issue 是不是有重新打开来着,你试着改改吧,可以对比 web 界面上看到的数据看看

hi,重打开的 sql,是可以使用吗?我需要改哪些字段

CleverMing 回复

对数据进行统计分析啊

jira 本身的问题搜索做的很全啊 为啥要用 sql……

hello 回复

谢谢你的建议,👍

老师可以了解一下禅道,非常好用,二次开发也非常容易上手。

linpengcheng 回复

嗯,那也是一种维度,还有一些 jira 插件的

jira 看板

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册