简介
工欲善其事,必先利其器。测试管理平台就是测试过程中的“器”,它是贯穿测试整个生命周期的工具集合,它主要解决的是测试过程中团队协作的问题,比如缺陷管理、用例管理、测试任务管理等。目前市面上比较流行的测试管理工具有QC、Mantis、BugZilla、TestLink、Redmine等。有开源软件,也有商业软件。这些软件的各自侧重点不同:比如Mantis、BugZilla偏重缺陷管理,TestLink则偏重测试用例管理,QC则更加全面,Redmine项目管理的概念又更强一些。
下表从以下九大功能对各个工具进行对比:测试需求管理、测试用例管理、测试套件管理、测试版本管理、测试计划管理、测试执行管理、缺陷管理、发布管理和分析报表。
国内外有很多测试管理平台,比如Jira, IBM RQM等。但大多数平台为商用的不开源的,今天我们主要介绍几个开源的平台,商用平台仅以QC为例。
详细介绍
1、TestLink
http://www.testlink.org.cn/
TestLink是开源的基于web的测试用例管理系统,主要功能有产品需求管理、测试用例管理、测试计划管理,并且还提供了一些简单的统计功能。
需求管理:维护用户需求,并可做到与测试用例关联,及统计用例对需求的覆盖度。
测试用例管理:可制定测试计划,维护测试用例及生成测试用例集,记录测试执行结果。
测试用例输入模式为:
度量分析:包括用例执行进度,主要问题存在点,哪些用例无法执行。及通过分析用例执行结果,报告哪些需求未被测试到,分析测试风险。
可与Mantis
(http://www.mantis.org.cn/)或bugzilla(https://www.bugzilla.org/)集成进行缺陷管理。
2、QC
QC是HP提供的企业应用级商业软件,提供项目与组合跟踪功能、版本管理程序、具体需求、测试管理程序、手动测试执行过程、缺陷跟踪程序、测试自动化规划/执行支持服务以及跨项目报告、资产共享和重复利用、开发过程洞察和问题根因分析。
对于需求和测试,它可以做到:
应用QC的测试执行过程如下:
(1)检查应用程序,以确定测试范围,包括测试目标,测试策略。
(2)构建Requirements Tree以定义全部的测试需求。
(3)为需求树中的每个需求创建详细的测试需求列表。描述每一个需求,为之分配优先级,必要时添加附件。
(4)生成报告和图表以助于分析测试需求。复审需求以确保该需求适宜测试范围。
(5)检查应用程序、系统环境和测试资源以确定测试目标。
(6)将应用程序划分为模块或功能以备测试。构建Test Plan Tree,将应用程序划分为测试单元或主题。
(7)为每个模块确定你所需要的测试类型。向Test Plan Tree中的每个测试添加基本定义。
(8)每一个测试连接到相应的一个或多个需求。
(9)在TestPlan Tree中,通过为测试添加测试步骤开发手度。测试步骤描述了每一个测试的测试操作、需要检查的点和预期结果。然后确定哪些测试需要被自动化。
(10)可集成内部或第三方测试工具,应用第三方测试工具为需要自动化的测试创建测试脚本。
(11)生成报告和图表以助于分析测试计划数据。复审测试以确定该测试适宜测试目标的程度。
(12)定义多个测试集以用于在项目中达到各种各样的测试目标。确定在每个测试集中包括哪些测试 。
(13)确定测试执行的时间并给测试人员分配任务。
(14)在相应的测试集中自动或手动执行测试。
(15)查看测试运行的结构以确定是否在应用程序中发现了缺陷。生成报告和图表以分析测试运行结果。
(16)项目相关人员可以在测试过程中的任意阶段添加缺陷。
(17)复审新缺陷并且确定哪些缺陷应当被修复。
(18)改正那些需要修复的缺陷。
(19)测试新创建的应用程序。继续以上过程直到被修复。
(20)生成报告和图表以助于分析缺陷修复的过程,还可以帮助确定何时发布相应的程序。
从测试执行过程可以看到QC提供了强大的分析统计能力——分析需求,分析测试计划,分析测试执行及结果,分析缺陷修复。
3、Redmine
http://www.redmine.org.cn/
Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理开源系统。还可以集成其他版本管理系统和BUG跟踪系统,例如Perforce、SVN、CVS、TD等等。这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、文档等内容来推动项目的进度,同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度。
Redmine较适用于100人以内的项目。Redmine支持如下功能:
页面如下所示:
4、禅道
http://www.zentao.net/
禅道是国产的一个比较优秀的开源测试管理工具,它实现了需求到任务,需求到用例及用例到bug之间的相互跳转,从产品、研发和测试分视图进行管理,做到了以下几方面的管理功能。
(1)产品管理:包括产品、需求、计划、发布、路线图等功能。
(2)项目管理:包括项目、任务、团队、build、燃尽图等功能。
(3)质量管理:包括bug、测试用例、测试任务、测试结果等功能。
(4)文档管理:包括产品文档库、项目文档库、自定义文档库等功能。
(5)事务管理:包括todo管理,我的任务、我的Bug、我的需求、我的项目等个人事务管理功能。
(6)组织管理:包括部门、用户、分组、权限等功能。
(7)统计功能:丰富的统计表。
(8)搜索功能:强大的搜索,帮助您找到相应的数据。
(9)灵活的扩展机制,几乎可以对禅道的任何地方进行扩展。
(10)强大的api机制,方便与其他系统集成。
以下各图显示了各个视图下的可见项,尤其三层打开式使各视图下结构清晰,跳转方便。
产品视图:
开发视图:
测试视图:
事务管理:
5、TestCenter
TestCenter是国内一个新兴的开源测试管理软件,可以支持需求管理、测试管理和缺陷管理,甚至可以支持事务管理。但经过试用,功能多而不细,故不作详述。
缺陷跟踪
测试管理软件的另一个方面是缺陷跟踪。缺陷跟踪的软件比较多,国外比较著名的有Bugzilla,mantis (其他还有),国内有bugfree(原作者后来自创了禅道)。接下去我们重点介绍下Bugzilla和Mantis。
1、Bugzilla
完善的Bug跟踪体系,包括报告Bug、查询Bug记录并产生报表、处理解决、管理员系统初始化和设置四部分。
Bugzilla具有如下特点:
2、Mantis
Mantis是基于角色和项目模块为划分的BUG跟踪系统。
Mantis基本特性有:
各角色权限如下表:
总结
作为商业级的应用软件,QC功能最为强大,最大的优势在于其贯穿整个研发流程的透明化,及其详尽的报告内容。Testlink很易用,但是缺少缺陷管理这个重要指标,必须与其他工具集成方可。国内测试管理软件中禅道功能很全,甚至包含了事务管理和文件管理,也能与敏捷开发很好地对接,比如使用了燃尽图来标识项目过程。
TAPD与这些优秀的测试管理软件相比,在以下几方面有待提高:
(1)项目树形结构及项目间关联关系待提升;
(2)没有与SVN连接,无法做到迭代与代码提交的对应;
(3)项目过程不透明,无法透视开发过程完成率和测试完成率;
(4)无预警制度,没有在项目脱离正常开发时自动报警;
(5)没有与自动化用例关联,不可自动触发自动用例的执行。
测试用例管理类:
(1)QMetry
http://www.qmetry.com/
QMetry是一个集成的测试管理工具, 可以提供需求管理, 测试用例(测试用例集)管理,可与许多主流的缺陷跟踪系统无缝集成,适合在自动化环境下使用。是一个商业产品,有一个30天免费试用期。
(2)TestRail
http://www.gurock.com/testrail/
TestRail是一个集中在测试用例的管理工具,可以创建测试用例和用例集,跟踪执行和报告。此外,它集成了许多跟踪工具,使得外部系统需求与测试用例关联起来。它附带了一个基于http API集成自动化测试结果的收集功能。一个最常见的集成是Gemini,这是一个事件/票务管理系统(支持敏捷)。TestRail是一个商业产品,免费试用。
(3)qTest
http://www.qasymphony.com/qtest.html
由QASymphony开发的qTest是基于云计算的测试管理工具,有各种典型的关键特性。qTest在连接器的帮助下,它可以集成JIRA整个端到端质量的解决方案,它还集成了其他工具,比如Bugzilla、FogBugz, Rally等。不开源。
(4)TestLodge
http://www.testlodge.com/
TestLodge是一个全面的测试用例管理工具, 关注在测试相关的4个关键方面——测试计划、需求、测试用例集/用例和测试运行。对于其他的操作,它集成了许多主流问题管理工具,可以提供一个全面的解决方案。可免费试用。
(5)Testuff
http://www.testuff.com/
Testuff是Saas测试管理工具,有许多很酷的功能。典型的测试用例管理功能是默认包括的。此外,它有一个很酷的视频上传报bug的功能。集成了一个巨大的bug-trackers列表,如Bugzilla,JIRA,YouTrack,Mantis等等。它有一个支持自动化工具的API,如QTP,Rational Robot,Selenium、TestComplete等等。
(6)TestCollab
http://testcollab.com/
TestCollab这是一个基于web的测试用例管理工具,因为它的 “Ajax 'ified接口,它的速度是一个关键特性。它简单易用,集成了所有主要的bug/问题/事件追踪器,可定制,是良好的分析报告工具。
(7)Gemini
http://www.countersoft.com/solutions/testing/
Gemini支持测试和QA以及如项目计划、问题跟踪等其他方面。可以创建测试计划,测试用例,测试运行、可追溯性、测试运行报告等,还有各种集成和扩展。可免费试用。
(8)PractiTest
http://www.practitest.com/
PractiTest是一个端到端的测试和测试管理软件。可提供创建测试,运行测试,跟踪缺陷等功能,它可以很好地与JIRA,Bugzilla RedMine三个主要的事件管理工具集成。
全能类:
(1)Jira
https://www.atlassian.com/software/jira
Jira是Atlassian公司开发的一款缺陷跟踪和任务管理软件,可以对需求、任务、缺陷和改进进行跟踪管理。Jira可以和其他系统如CVS、SVN、VSS,Perforce、LDAP、邮件服务等整合,可扩展性好。Jira与敏捷开发无缝结合,支持story分解。适用于中大型项目。Jira是款商业产品,但对开源项目免费提供缺陷跟踪服务,因此在开源领域应用广泛。
(2)QAComplete
http://smartbear.com/products/qa-tools/test-management/
QAComplete是最强大的测试管理工具之一。适合敏捷/传统、手动/自动化各类项目。它可以集成QTP TestComplete。对于自动化项目,可以安排测试运行,远程注册,在任何主机上运行。还提供了发布管理功能及分析功能。它可以集成几乎所有主要的缺陷跟踪工具和源代码控制工具——SVN,Perforce和CVS。
(3)SilkCentral
http://www.borland.com/products/silkcentral/
SilkCentral是一个由Borland生产的测试管理产品。它几乎覆盖了软件开发过程所有特性。包括跟踪、测试的创建、运行和分析报告。它集成了许多源代码控制和问题跟踪系统,有额外的插件以扩展其功能自动化测试使用如QTP 、WinRunner等等。它带有一个视频捕捉功能,支持SAP测试。
(4)IBMRational Quality Manager
http://www-03.ibm.com/software/products/en/ratiqualmana
IBM推出的测试管理产品,典型特征是——测试计划、设计、执行、跟踪和报告。它集成了许多合理的产品的自动化、源代码控制和bug跟踪。
读者互动环节
你在工作中用的测试管理平台是什么? 有什么痛点吗?