本篇文章以国产开源工具禅道为例,来进行讲解。讲解的目的不是工具的具体使用,而是测试管理相关的理念。
测试管理工具是指在软件开发过程中,对测试需求、计划、用例和实施过程进行管理、对软件缺陷进行跟踪处理的工具。通过使用测试管理工具,测试人员或开发人员可以更方便地记录和监控每个测试的活动、每个阶段执行的结果,可以很方便的找出软件的缺陷和记录测试活动中发现的缺陷,并且提出改进建议。
测试管理工具应该具有如下基本功能:
1、测试需求管理
2、测试用例管理
3、测试过程管理(计划、任务等)
4、缺陷管理
5、报表统计
6、权限管理
1.产品经理:就相当于客户,提需求(在产品进入研发前,就去做一些调研,和客户进行交流,知道客户到底想要的是什么)
作为产品经理,您是否有如下感觉?
***为什么开发连这么简单的功能都做不出来。
***为什么我提的需求,开发和测试都理解偏差了呢?
***为什么上线会出那么多的bug?
***为什么开发做出来的东西和我预期的总是有很大差距?
***为什么我要的东西总是会延期?
2.作为项目经理,您是否有如下的感觉?
(1)一头是老板,一头是团队,既要对老板负责,又要对团队负责,压力重大。
(2)项目马上就结束了,但还有很多功能没有实现,还有一堆bug没有解决。
(3)团队里面总是有那么一两个刺头。
(4)资源总是那么紧张。
(5)产品经理又变更需求了,更变了需求那么就要重新写代码实现这个功能。
3.作为研发人员,您是否有如下感觉呢?
●天啊,需求又变更了,又要重写代码了。
●今天晚上又要加班了,唉,老婆又要抱怨了。
●该死的浏览器,该死的ie,该死的微软。
●我想学点新东西,没时间啊。
●测试的人也太,,,,老挑我毛病。
●项目经理啥都不懂,在那儿装。
●填完日报填周报,有啥用?
4.作为测试人员,您是否有如下感觉呢?
●天啊,明天就上线了,代码还没有提交呢,时间短怎样测试?
●天啊,开发的bug也太多了。
●天啊,要测ie6, ie8, ie9, chrome, firefox, opera, 360
●天啊,我还有那么多测试用例没有跑呢。
●天啊,测试需求又变更了,之前写的用例没用了。
●天啊,我一个人对付5个开发。
●天啊,线上又出bug了,又要挨训了。
●天啊,我还要负责过程改进,还要监督流程。
项目经理:他管理测试人员和研发人员
产品经理:他是提出产品需求的
以上的这些问题一切都源自于混乱
●混乱的战略
●混乱的组织结构
●混乱的产品和需求,经常变动需求
●混乱的项目流程
●混乱的代码
●混乱的程序结构
●混乱的测试
●混乱的产品
●混乱的客户
这些混乱的源头就是需求不明确,需求经常变更,一切都围绕着需求产生问题。那么我们要怎样解决这些问题呢?
---------将庞大的系统软件划分为小的版本产品。
一个产品开发了1年,完成后让客户看,客户说不是他想要的,那么此时最受打击的应该是我们研发方。所以我们可以把整个项目规划为好几个阶段,每个阶段完成不同的功能,然后完成每一个阶段的任务后就拿给客户去看,然后客户满意就冻结该阶段,完成下一阶段的任务,若客户不满意,我们也可以拿到客户最新的需求,及时更改。
我们该如何去做?
●将复杂的产品分解为一个个的用户故事(明捷开发模型里面的story)
●将复杂的团队分解为一个个的敏捷团队(本来一个项目经理,他管40个研发人员,可以把这40个研发人员分为8个小组,每组5个人选一个组长,那么最终项目经理就管5个人)
●将复杂的程序分解为一一个个的对象,方法,用例
●分之而后明之,明之而后有序,有序则治也
禅道就是把这三个角色拉在一起,使他们产生关系。产品管理里面有产品经理和客户,质量管理就是测试人员,项目管理就是研发人员和项目经理。
在禅道里面,用需求将这4者关联起来。
项目研发的全过程管理是一个极其复杂的流程,在实际应用中,禅道又可以单独作为需求管理,项目任务管理,bug管理工具来使用,因此,禅道的操作流程可以分为多个小的管理流程。
从需求管理的角度出发:
从项目任务管理的角度出发:
从bug管理的角度出发:
禅道是国产的开源项目管理软件,专注研发人员的项目管理,内置需求管理、任务管理、bug管理、缺陷管理、用例管理、计划发布等功能,实现了软件的完整生命周期管理。
在禅道项目管理软件中,核心的角色有产品经理、项目经理、研发团队和测试团队四种角色。如果您现在的团队是采用敏捷开发的话,那么可以对应到product owner, scrum master和team(dev and test)。这几种角色之间紧
紧围绕产品的需求展开协作,取得成果。
添加部门:
添加用户:最后等所有的用户创建好了之后,可以尝试去用这些用户登录禅道。
②产品管理
所有的测试计划,测试用例,缺陷管理都对应到一个具体的项目。产品是一类项目的抽象,而项目是具体的。比如说服务器产品,可以有Tomcat服务器项目,可以有自定义服务器项目。
假如说我已经和老板沟通过了,老板已经提出了需求,然后我以产品经理的角色登录禅道测试工具。
产品经理已经和老板沟通过了,他们要建立一个产品,叫做图片服务器。
添加产品:
建立了两个产品:
提出产品的需求:
以上维护了一个产品的模块
③项目管理
需要注意的是,当产品经理发出需求之后,产品经理和BOSS(用户)沟通后,也就是BOSS(用户)审核需求后,然后开发人员才去更具需求开发软件。在这个过程中,测试人员已经早早的知道了需求,所以在开发人员编写代码的同时,测试人员就可以编写测试用例。
添加测试用例:
测试用例建立完成:
⑤测试任务的分配与监控
我们已经建立好了测试用例,然后待研发人员完成一个模块,然后发版(提交一个测试版本)后,就要安排测试人员去测试了。若发版的产品只完成了ABC模块,那么就只选取与ABC相关的测试用例去进行测试。在禅道中,是用测试单来判断测试轮次的。
为测试单关联测试用例(我们这轮测试要对那些测试用例进行测试)
为这些测试用例的执行,去指派测试人员是谁:
执行测试用例:
查看我的地盘:
查看该测试单对应的各个测试用例的执行情况:
提出一个BUG:
⑥缺陷管理
若测试人员测得的结果和预期结果不相同就会自动生成一个缺陷,但我们也可以手动创建一个缺陷。接下来我们直接使用自动生成的缺陷,然后自己再手动录入一个缺陷。
手动录入一个BUG:
然后登录研发1来处理这两个BUG,一进来就发现有2个BUG待处理。
解决BUG
测试工程师上线,发现研发已经解决了BUG,然后对其进行回归测试:
BUG状态发生改变
测试人员创建一个BUG -----> 开发去修复BUG -----> 测试人员回归测试这个BUG -----> 测试人员没有发现问题就关闭这个BUG
⑦缺陷的统计分析
对该项目的所有BUG进行报表统计分析:
选定指定条件的测试用例,然后进行报表分析:
典型图列举:
⑧其他(回收站,自定义,我的地盘)