表2:自动化表项的成功标准等级评价
|
周期数 |
用户数 |
稳定性 |
实现难易程度 |
总计 |
新设计的建设周期 |
1 |
1 |
0 |
5 |
7 |
建设时期后的直接新产品回归测试 |
5 |
10 |
5 |
10 |
30 |
在新产品过渡时期的回归测试 |
5 |
10 |
5 |
10 |
30 |
维护模式下的回归测试 |
15 |
10 |
10 |
10 |
45 |
版本验证测试 |
25 |
1 |
10 |
15 |
51 |
G11N平台的冒烟测试 |
15 |
5 |
10 |
5 |
35 |
总计 |
66 |
37 |
40 |
55 |
| |
根据表2的结果绘图(见图3)使得我可以比较容易地发现我应在何处投入时间和资源以获得最大的收益。
.
图3:投入自动化资源的最佳领域
点击放大
维护模式下的版本验证和回归测试——然后是外语G11N测试——很明显是首先应突破的领域。在产品仍在变化之中的时候试图自动化设计将是非常不切实际的,因为它将涉及大量自动化重复工作。
通过改变考虑中的标准和工具,你可以把这一技术应用于很多项目和初始版本。图4概括了这些步骤。
图4:一种区分自动化工具的引入的优先级顺序的技术的概括
结论
一些软件开发工具的使用覆盖了整个开发周期,但是它们不能把顺序变成混乱。即使是最先进的工具也只能和它们支持的过程一样地工作。你的工具投资的回报将直接与你的过程成熟度级别成比例。级别越高,你可利用的特性就越多,你使用工具就越频繁,你使用的目的就越多。
如果你想要提高你的过程成熟度等级,引入自动化工具能够把你送上一个自然的进化过程达到这个目的。如果你正处在第一级并决定你要使用自动化工具,你必须首先写下你的测试步骤并使它们是可重复的;自动化工具本身则作为你由第一级升至第二级的催化剂。然后,在第二级,一旦你在一个组(比如测试)里建立了一个可重复的过程,你可以建立一个其它组可以采用的标准,这样你的自动化工具就成为了一个跨越测试,开发,需求工程,等等过程的共享基础设备。由于工具的使用你将可以进入更高的成熟度级别(第三级),而且工具将体现它的价值,因为更多人正在为更多目的使用它。你可以从那里开始使用工具来收集和跟踪每日工作进展和沟通数据,并实现到第四级的转变。最后,这一严格的数据收集将允许你精确地预报,计划,规划,和管理你的资源和项目,把你带到第五级。
我在这篇文章里提供的要点是容易实现的,并可以提高你任何工具实施的成功率。尽管如此,在最后,对你和你的团队是否确实已经准备好面对引入工具带来的挑战的决定权仍然在你。
我欢迎来自你们的反馈。如果你发现这些技术有所帮助请告诉我,并描述其它你的团队已经成功使用的技术。
附录A:检查过程的成熟度等级清单
成熟度等级 |
示例:检查 |
初始 |
|
可重复的 |
- 关键主要检查的参与者受过检查方面的教育。
- 检察员有一星期时间为检查作准备。
- 所有检查由个人完成,有一个受过训练的监督员。
- 检查统计数据被记录下来,累积的数据在操作评估会议上被汇报。
|
清楚定义的 |
- 所有主要的和次要的检查参与者都接受过检查方面的教育。
- 组织确定并训练了一定(与整个团队规模成比例)的敬业的监督员。
- 检查被限制在每人隔两天一次两小时的检查。
- 检查团队很小(三到八人之间)。
- 检查通常(75%以上的时间)在产品完成前进行。
|
良好管理的 |
- 所有的检查参与者受过检查方面的教育。
- 指定了当地的受支持者/领导。
- 工作进展被按照个人分析以改进每一个部分(比如,代码,测试用例,设计文档,等等)。
- 检查几乎总是(90%以上的时间)在产品完成前进行。
|
最优化 |
- 工作进展被分析并且行动计划基于发布范围的检查数据为整个发布所规格化。
- 监督员和团队合作改进检查过程,实践进展,和工具——在项目的进行中和结束后。
| |
附录B:测试过程的成熟度等级清单
成熟度等级 |
示例:检查 |
初始 |
|
可重复的 |
- 由运行测试的个人写下的测试计划
- 由运行测试的个人写下的测试用例
- 没有共享或由他人进行的测试
- 没有覆盖或需求跟踪
- 没有总体测试基础设备
|
清楚定义的 |
- 满足测试组计划标准
- 测试团队两人组写下的测试
- 由开发,测试员,文档,产品经理进行的检查
- 一组测试员和开发者运行人工测试
- 与技术支持和客户培训职员共享的测试
- 标准测试基础设备的开始
|
良好管理的 |
- 指定本地的测试工程受支持者/领导
- 工作进展被按照个人分析以改进每一个部分(比如,测试用例,测试跟踪需求,测试覆盖,等等)。数据被用来预报项目的结束以及未来项目时间规划。
|
最优化 |
- 工作进展被分析并且行动计划基于发布范围的测试和质量数据为整个发布所规格化。
- 监督人和团队合作在项目期间和后面改进测试实践,工作进展,以及工具。
| |
附录C:在不同成熟度级别实现的IBM Rational工具
等级 |
软件过程特点 |
用以进入下一个级别的IBM Rational工具 |
1 |
特别的并且有时是混乱的;很少有过程是详细定义的。 |
IBM Rational Application Developer -- 在初始化的快速浏览第一级设置 |
2 |
基本项目管理过程已就位来跟踪成本,时间表和功能。 |
IBM Rational RequisitePro用以完成需求跟踪
IBM Rational TestManager用以管理不同的测试工件
IBM Rational Application Developer -- 在成熟度第二级设置以包括下一级别的时间和结果
IBM Rational ClearCase用以识别代码版本和跟踪代码变化
IBM Rational ClearQuest用以跟踪和分析缺陷 |
3 |
工程活动被记录到文档,标准化,并集成入一个标准的软件过程。 |
IBM Rational Application Developer -- 设置为第三级,带有政府政策验证,比如可访问性和全球性
IBM Rational Component Tester和IBM Rational Functional Tester用以自动化单元和特性/组件领域 |
4 |
量化理解和控制的详细度量已就位。 |
IBM Rational Application Developer -- 设置为第四级,关注移动性和性能最优化
IBM Rational Purify和Code Coverage在建立周期中被自动化并汇报单元测试覆盖数据和性能/存储使用
IBM Rational Functional Tester和IBM Rational Performance Tester用于性能和系统级测试 |
5 |
量化的反馈和创新的思想及技术激活了不断的过程改进。 |
IBM Rational Rose从细化到设计被使用
IBM Rational Application Developer -- 设置为第五级以从环境,语言和操作系统包含移动性;G11N规则也被设置和检查
IBM Rational Application Developer同首次开发实现模型一起使用来平衡基于Rational Rose模型情景的早期测试用例 | |