干货|对于软件产品质量的一些思考
转自公众号投稿:https://mp.weixin.qq.com/s/0jGK1W3TPQRzqsW6ihbYVw
笔者作为一个经验不甚丰富的测试人员,在从测试人员(主要作为测试执行者)转型为QA时,非常迷茫。曾问过一个经验丰富的同事:到底什么是QA?QA和我现在的工作的区别是什么?怎么做一个QA?同事回答:QA就是质量的把控和监督者,QA不要局限于"测试分析"、"测试设计"、"测试执行"等等,所有能够顾促进质量提高的事情都QA应该参与。同事的最后一句"所有能够顾促进质量提高的事情都QA应该参与"让笔者茅塞顿开。
那么作为一个QA,应该从哪些方面关注软件产品质量?从何处入手以提高交付产品的质量?!今天笔者根据自己的经验,总结一下自己的看法,如有错误,还望斧正。
质量是产品交付的重要属性,质量的把控应该贯穿产品生产的整个生命周期。从软件产品交付的整个周期来看,笔者认为QA应该从以下几个方面来关注和把控产品质量,如图1-1所示:
1)软件功能验收方面
软件功能验收主要包括:AC用例覆盖率、AC用例自动化率、AC测试成功率。
AC用例覆盖率=用例(TC)数/AC数*100%。如何提高AC用例覆盖率?!首先,应该确保AC对产品功能的覆盖足够完善,这需要QA和团队成员一起提高AC对产品功能点的覆盖率。主要措施是分析产品特性和功能,提高测试方案和AC评审。
AC用例自动化率=实现自动化的用例数/总用例数*100%。自动化程度越高,人力节省越大,对产品快速验收和交付具有非常重大的意义。
AC测试成功率可定义为:一次性通过测试的AC数/AC数*100%。AC测试成功率越大,越表明产品具有高质量,也表明团队开发者的具有很强的开发能力。
2)持续交付方面
持续交付主要包括:软件产品构建时长、软件产品构建周期、软件产品构建成功率。
软件产品构建时长定义为:从提交开发代码到经过UT、FT等自动化测试后合入新功能代码构建出新版本软件的时长。构建时长越短,表明软件产品生产时间越短。
软件产品构建周期:定义为相邻两个软件版本构建时间间隔。构建周期越短表明软件版本更新速度越快。
软件产品构建成功率=构建成功的软件版本数/提交构建软件版本总数*100%。构建成功率越高,表明通过UT、FT等自动化测试率越高,基本功能的代码质量越高。
3)故障方面
故障方面主要包括:故障解决周期、故障遗留数、外部/外场故障泄漏率。
故障解决周期:定义为从故障提出到故障解决以及测试通过的时长。故障解决周期越短表明团队响应速度快,产品质量意识强。
故障遗留数:定义为软件产品交付后,在交付版本中未能解决的故障数。遗留故障数越小,可以表明交付产品暴露给用户的缺陷越少。
外部/外场故障泄漏率=外部或外场故障数/总故障数*100%。该指标可以体现用户使用软件产品后的反馈,泄漏率越低可以说明交付给用户的产品质量越高。
图片 图1-1 QA质量关注点
如上所述,软件功能验收、持续交付和故障三方面贯穿软了件产品从开发、测试和交付以及用户反馈整个产品周期。通过对软件功能验收、持续交付和故障三方面的跟踪,可以让QA更加清晰地制定目标进行改进,提升产品质量。