漫谈测试成长之探索——缺陷分析
回顾校园生活中,我们参加每一场考试后都会对错题进行分析总结并补缺补漏,以便能更好地去应对更重要的考试。回到软件系统开发中,我们记录和跟踪缺陷的目的是什么,仅仅是为了在软件系统开发过程中跟踪Bug直至修复么?应该不止于此。我们也可以对项目缺陷进行分析,分析其共性进而分类,从而建立项目的“错题集”,为下一次“考试”提供宝贵的经验。
如图1-1所示,通常一条缺陷记录会包含缺陷编号、缺陷标题、状态、缺陷描述、严重程度、优先级、开发负责人、测试负责人、缺陷类型、功能模块、对应版本和对应环境等信息。那么,我们可以从哪些方面来分析和总结项目的缺陷呢?
一、缺陷分析维度
如图1-2所示,我们可以按项目缺陷的严重程度维度来统计。图中分别展示了项目各个严重程度的缺陷数和缺陷占比。从图可以看出该项目有25个严重程度为一般的Bug,占Bug总数的50%,严重程度为较小的Bug占据到了28%,严重和致命程度的Bug占总的22%。
基于上述各类严重程度缺陷占比数据,我们可以怎么分析项目情况呢?从占比上看,本次项目的严重及以上的Bug占比不到总的1/4,说明本次开发项目的整体提测质量还是比较高的。但是,从Bug总数上看,由于Bug总数较多,严重程度较小和一般的缺陷数达到了39个,将近总数4/5。为什么会有这么多严重程度不高的Bug?
我们可以继续从缺陷类型维度分析,如图1-3所示,这里我们可以看到,功能问题类的缺陷还是占据了一半以上,同时,界面和交互问题也占据了28%,说明开发对于产品比较细节的功能点以及产品界面和交互重视和理解程度不够,导致提交测试的产品大问题不多,但是小问题不少。这部分问题是不是可以避免或者减少的呢?这就是我们要思考的了。
为了减少下次同类问题频繁发生,我们可以在开发方案和测试要点评审节点明确各功能细节、界面和交互点。让开发人员在开发过程中尽量避免此类问题。
如图1-4所示,我们还可以从功能模块维度进度分析。从图中我们可以看到模块B和模块C的缺陷占据了总的82%,相对于模块A和模块D,我们可以理解为模块C和模块D的实现复杂度应该比较高。为了提高该模块的开发质量,这次版本交付后可以督促开发去做总结和复盘,同时下次产品迭代涉及到这两个模块的时候也要做好研发方案评审。
如图1-5所示,除了从缺陷的各个角度去分析,我们也可以从开发负责人维度来分析。假定这个项目有四个开发人员共同开发,且分配给他们的任务在工作量和工作难度上没有太大的差异,从图中我们看出RD_张开发任务的缺陷数远远少于其他三个开发人员,可以说明其对需求的理解以及开发的质量意识是比较高的。可以公开对其开发能力进行肯定,也可以让其总结和分享开发经验,引导其他开发人员进行改进。
二、总结
上文分析的缺陷数据并没有包含所有项目的缺陷情况,但是大家可以尝试去分析自己负责的模块或者是整个项目的缺陷数据,并思考可能影响项目质量的原因,进而采取一定的措施去改进。不太可能一步到位完成,但是可以持续改进,这样同样类型或者是重复出现的缺陷就会越来越少,我们也能有更多的精力去应对更有价值的缺陷。
作者简介:Chaofan,爱测角成员之一,专注探索和分享软件质量保障。
相关引文:《漫谈软件系统测试——缺陷分析》
文章首发于微信公众号爱测角
转载请注明文章来源公众号:爱测角并附原文链接
相关文章
- 漫谈软件系统测试——缺陷分析
- 【测试基础】每天这么忙,到底写不写测试用例?
- 测试19
- 渗透测试|Everything在取证收集方面的利用
- JMH 性能测试分析工具
- Bika LIMS 开源LIMS集—— SENAITE的使用(分析/测试、方法)
- 自动化测试在美团外卖的实践与落地
- 渗透测试基础- - -web日志分析
- 软件测试中如何测试算法
- 自动化-电子化-数码印刷印前机关文印系统-测试分析
- 黑群晖引导文件grub.cfg中参数对硬盘顺序的测试与分析
- 如何对minio进行性能测试和分析
- 一站式持续测试平台,打造你的DevOps流程
- 测试之路 pytest接口自动化框架扩展-GUI窗口
- Chaos 测试下的若干 NebulaGraph Raft 问题分析
- Shell 脚本的条件测试与比较
- 性能测试(第2集)第15讲:LoadRunner测试报告分析
- app自动化测试之Appium问题分析及定位
- 接口测试|postman模拟请求头&界面的响应信息
- 微信 "公众平台测试账号" 登陆失败的解决方法与分析
- 【Java 并发编程】线程池机制 ( 测试线程开销 | 启动线程分析 | 用户态 | 内核态 | 用户线程 | 内核线程 | 轻量级进程 )
- dig命令测试域名解析
- hz测试情况
- 软件测试|什么是压力测试?什么是负载测试?这两个区别是什么?
- 针对Redis的并发性能测试分析(redis并发性能测试)
- Redis抗压能力的测试:QPS的提升之路(redisqps)
- yunxingLinux版本运行测试结果分析(linuxbanben)
- SQLServer数据库综合能力测试(sqlserver综合题)
- Linux硬盘读写性能测试分析(linux硬盘读写测试)
- 分析压力测试基于LR压力测试Oracle性能(lr压oracle)
- 测试批量写入Redis的性能分析(测试批量写入redis)
- Oracle产品质量验证分析与评估(oracle产品测试介绍)
- PHP中json_encode、json_decode与serialize、unserialize的性能测试分析
- MySQL随机查询记录的效率测试分析