今天分享一下个人对于质量管理流程的看法,也是基于CMMI,看看这里面有哪些东西可以为我们所用。
从员工(特别是从我们普通测试人员)角度来说,研究CMMI有哪些好处呢?
既然有这么多益处,为什么又有那么多人反感CMMI呢?觉得整天写文档,然后写出来以后还没什么实际用处,吃力不讨好。
齐白石有句话“学我者生,像我者死”。流程改造最重要的就是要符合公司的实情,如果因为CMMI里面的流程“科学、规范”就贸然套用,那最后的结果必然不乐观。其实CMMI本身也提倡要根据企业的实情来进行裁剪,换言之,我们要取其精华去其糟粕。
CMMI强调计划、监控、标准、可度量。
总而言之,多吸取CMMI在计划、监控、标准、可度量方面的思想,但不要盲目套用。
CMMI测试流程
下图是CMMI中定义的测试流程:
01
—
测试计划
CMMI中定义了《总体测试计划》《单元测试计划》《集成集成计划》《系统测试计划》《验收测试计划》。里面的内容虽然不一样,不过都是围绕着5W1H的原则去说。有兴趣的朋友可以看看对应的模块。
02
—
编制测试需求
有的单位里接到需求后,就开始着手写测试用例。当需求比较复杂时,这样的做法容易带来新问题,比如不利于评审(效果差)。
CMMI中强调的一个文档是《 需求跟踪矩阵》(如下图):CMMI期望通过制定矩阵跟踪表,达到需求的在详设和编写用例时被完全覆盖。但生产过程中,需求很难在最初就完全明确下来,且会一直变化。
我们工作中常用的做法是用思维导图把测试点整理出来。虽然虽然在这一环节上多花了时间,但总体时间成本是会下降。
03
—
编写测试用例
CMMI中将用例分为功能测试用例、非功能测试用例(非功能测试用例包括性能测试用例、压力测试用例、图形界面测试用例、数据库测试用例等)。
我们可以将非功能测试用例整理成为“公共测试用例库”,以后再写用例时,就不用花很多时间去编写比如图形界面相关的用例了。
04
—
单元测试
单元测试基本上都是开发人员的工作,他们会做一下主流程、格式化、数据验证、异常提交等方面的测试。
很多测试同学听过这句话“程序员应避免测试自己编写的程序”。我发现有一些测试同学对这句话存在误解,认为研发人员由于“定势思维”会想当然的认为自己开发出来的是没有问题的,发现不了问题。其实从我合作过的研发来看,大多数开发对于业务的正常场景、异常场景、需求改动后的影响范围都是大概清楚的,也就是说可以满足送测标准。 而且团队中常常每个开发单独负责一个模块,这意味着他们对其他人的模块去从逻辑上验证是有困难的。
个人对这句话的理解是,互相检查代码,一方面是开发经验丰富的程序员可以帮忙优化实现方法,一方面也是避免程序员忘记备注、或者命名方式方式不规范等问题。
05
—
集成测试
集成测试在大多数企业、测试团队、项目中都会做。某些情况下,我们也会叫它“冒烟测试”。
经常有面试官会问集成测试做什么工作,跟系统测试有什么区别?这里列一下集成测试的目的和工作内容:
集成测试目的是确保各单元模块组合在一起后能够满足设计要求运行,并确保增量组装的构件正确。它所测试的内容包括单元间的接口以及集成后的功能,对以前的集成进行回归测试。
集成测试主要完成:
对模块和子系统的连接进行测试,确保各程序模块之间无错误连接
验证整个软件系统或子系统的输入/输出处理是否达到设计要求
验证软件系统或子系统(业务方面的)正常处理能力和异常处理能力
验证是否达到产品需求,是否遵循系统设计
集成测试用例
在某些行业比如银行,集成测试用例可能是由开发人员来编写(也是他们执行)。他们会在完成集成测试之后送测,送测的文档中包括《集成(联调)测试用例》、《集成测试报告》《送测说明》。在《集成测试报告》中甚至会添加测试通过的截图。 在送测说明中又会描述本次修改的内容、修改的原因、以及本次修改的影响范围。
06
—
系统测试
跟集成测试的区别,就是还需要做兼容性测试、性能测试、安全测试、发布测试等等。
07
—
缺陷管理
缺陷管理的最终目标是最大限度地减少缺陷的出现率,从而提高软件产品的质量。细分为:
缺陷分析
典型缺陷统计:通过缺陷的数据分析,总结缺陷出现的原因、类型和规律,采取相应措施避免该类型缺陷再次出现,提高产品质量。
线上bug统计:针对线上bug,分析bug原因,记录修改过程,并从测试角度分析为什么会漏测?以前怎么测试的?以后怎么改进测试的方式?
产品缺陷趋势图:统计项目组阶段缺陷的趋势图,用于分析产品的质量。
问题关闭情况图:
O/C图:分析open和closed状态的bug的趋势
未完待续......