采用这些把隔离引入了我们的集合中,并缩减了系统变换时脚本和文档改变所需的时间。由于现在一个调用包含许多嵌套的步骤,测试用例的创建时间已被小化了。如果被调用的内容已被自动化,那么自动化时间也减少了。书面测试步骤保证了精确度,因为任何测试员都可以为该功能从业外调用步骤,但他们调用的项是由业内专家创建的。这使得可以从测试员吸取业内知识并用于测试集系统。
说明:
像大多数电子商务公司一样,我们的网站有用户登录功能,且许多网站功能(管理购物篮中的物品,结账等)都需要先登录。还有许多专为确认这些功能是否有用的测试工作,并且所有的都必须登录操作。一组“登录”构建模块被组成一个模板,该模板附带所有这些功能测试。只有一个脚本是需要在数百个测试中自动登录,大限度地减少编程时间,并在我们的登录行为改变时阻止测试集变化。如果一个行为确实发生了变化,我们可以更新“登录”模板,所有使用此模板的测试都随之改变。这样的实现和重用导致我们无需额外费力去更新和维护能大规模地缩放我们的测试集。
测试参数
参数是测试中的变量,它们允许特定的数据点在测试设计完成后分别被输入。一些VISTAPRINT充分利用的参数包含了:环境( DEV ,TEST等),浏览器(IE9,Chrome等),及篮子物品(名片,明信片等)。目前我们测试库中的参数总数超过了700 !使用参数构建模块和模板引起自动调用测试接续它们。这扩展了测试下我们大部分系统的功能集使所有调用测试都免费了。测试设计者利用行业知识确定应使用哪些参数来确保适当的覆盖范围。参数可以使测试用相同的一般步骤但以不同的方式进行配置。定义广泛变量以在之后的阶段配置值使得许多数据驱动场景下表现为一个单一测试。这对测试管理有帮助并能有效地提高覆盖率。实际上这也使我们的测试变得可升级。参数也可以内置到相应的自动操作中以进行数据操作,而不必直接更新脚本。这使我们能够从一个测试脚本获得更多的价值及更快的自动化周转时间。我们目前大约有2000个自动化测试,目前几乎生成了8600个独特的自动化场景。每个自动化脚本约30分钟,累积起来已经超过了3000小时!虽然参数可以存在于几乎所有事物周围,但知道什么时候使用正确的参数可以大大提高每个测试配置的价值。仅仅因为一个变量存在并不意味着它有价值。决定必须根据具体情况来做,且还需要深入了解被测试的功能的专业知识。
说明:
我们的一个用例模型是确保客户能够成功在我们的网站下名片订单。为此,我们必须打开浏览器,导向一个运行环境和区域,并详述送货地址和付款信息。所有这些项目(还有更多)已被参数化,获得了更多可扩展性。我们支持10种浏览器,3种运行环境和26个区域;这一个测试现在只要一个自动化脚本可以处理所有780种可能的组合。
“测试到软件”的映射
我们的技术部(与内部团队合作)开发了整个代码库的一个3层组件分类框架。这需要超过17万行代码并将之划分为约500个组件。质量工程部采用了这种分类系统作为我们测试案例部的等级制度。我们的测试可按测试范围的基础归于任何等级的分类。测试分类使所有权能被分配给测试组,建模组和模板组。当测试设计人员对内容或执行特定的测试有疑问时,这给了他们一个明确的方向,都是免费的。许多其他进程映射到这个分类,以及包括我们的工作管理的JIRA票。这能通过像基于风险的优先级机制快速优先拥有不同软件组件的测试,。
说明:
下面左侧是VISTAPRINT软件分类的样品,右侧是相应的测试等级结构。测试存储在对应于测试检验范围的目录里。这种分类法渗透于我们整个功能的工具集( JIRA ,Subversion等),使我们能够根据特定需求映射目标测试集并确定覆盖面的差距和目标。
当关于我们的质量风险分析和我们的风险优先级时,这个映射为我们提供了一套确定和策划有效测试的“正确”集的佳方式用于发布和项目。
图4 技术分类和测试计划的映射
结论
在VISTAPRINT中 ,我们已发现了使用这些测试用例“建筑设计”原则的很多价值。引进构建模块,模板和参数已经减少了我们的测试设计,创建和维护的时间,且显著减少了我们测试库中的零散重复。多亏了孤立特征交互的大量重用,系统更改对我们的测试集的影响比起以前的方法,已经少得多了。利用我们的软件组件分类为我们组织提供了我们测试集和测试下的系统之间长期需要的对齐方式。更深远地,它已经把我们的测试集连接工票,让我们能够基于代码变化针对回归测试来运行。测试对象模型可以使整个测试信息库中的内容更加一致,对于快速智能的造成失败的分类也一样。
我们将继续探索这个领域及其可产生的更多利益。
版权声明:本文出自 SPASVO泽众软件测试网:http://www.spasvo.com/news/html/201448160229 .html
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。