我是一家小型Web开发公司的软件质量检查工程师,我需要全神贯注于实施新流程。

最近,我的商店只处理了“一次性”事务。我们将在几周内衡量开发进度的项目上工作,部署后我们几乎不需要接触项目。由于我们的开发周期很短,因此似乎不需要功能自动化。但是,就在最近,客户要求我们接管将要为其创建的网站维护。这将涉及完整的开发,测试,支持,实施第3方插件(还需要进行测试)。为了使它对我有用,并且在几个月后不让您感到不知所措,我想开始实施自动化。

由于我选择的语言是python,因此我已经安装了selenium模块和一直在使用Webdriver。如果弄清楚这一切都适合开发生命周期,我需要什么帮助。我觉得如果我等到获得完整的产品时为时已晚,或者如果我开始太早,那只会浪费我的时间。

所以,如果有人可以解释他们当前的项目周期或引导我一些解释他们的博客,那真是太棒了。

感谢您提供的所有信息!

#1 楼

如果可以的话,尝试并推广使用“持续集成”(Thoughtworks中对Hudson或GO等管道的频繁提交,它会连续运行自动检查以查看是否进行测试)的测试优先开发(又名TDD,BDD,ATDD,示例性规范)的想法。在最近的提交之后,它们中的任何一个都损坏了。然后,他们编写代码以使自动检查通过。最后,他们整理代码(重构)。

这将导致开发人员在编写代码时很大程度上测试(检查)代码的功能/逻辑。作为当前客户的测试人员,我与开发人员结对,以帮助在编写任何代码之前确定我希望看到的自动检查。

这些自动检查主要在单元,集成和容器(需要Web服务器)级别进行,因为它们是运行最快/最便宜的,但是我们也有GUI级别的自动检查。

在将代码提交到管道之前,开发人员会演示代码以及Tester和BA,以确保其满足要求。然后,测试人员将在Developers机器上浏览软件和代码,以执行极端情况并查看是否存在任何问题。

如果确实出现任何问题,则Developer会写一个失败的检查来重现该问题,并进行修复。它并确保检查通过。

当测试人员满意时,开发人员将代码提交到管道中,然后我们在集成环境中测试代码。

理想情况下,我们在集成环境中发现的唯一问题就是集成问题!

这可以节省大量时间,帮助客户和BA完善需求,以确保我们构建正确的东西。

这是对我们如何在当前客户站点进行操作的非常全面的概述。这可能不是最佳过程,但对我们有用。一些链接可能会有所帮助:

Wikipedia上的TDDTDD Yahoo GroupsLisa Crispins博客的链接,以及与Janet Gregory共同撰写的书的链接! /或找到答案我的博客文章,其中包含有关测试如何变化的大量资源
持续集成

还有很多很多资源-尝试使用Google搜索“敏捷测试”。

希望这会有所帮助,

唐克斯

#2 楼

我建议您认真考虑构建一个绝对减少重复脚本代码的框架-这具有使更新工作最小化的优势。同样,我会考虑使用具有面向对象的框架的数据驱动脚本,在其中构建事务对象以利用应用程序的功能。

这样,随着应用程序的增长和功能的添加,您可以以最小的需要插入功能模块,而无需重写您以前的代码。

Web对象到自动化的良好映射对象也是必不可少的-它的复杂程度取决于Web应用程序代码的性质,正如与开发人员合作以确保其生成的Web对象具有足够的钩子以允许脚本访问它们(这可以就像将项目ID放入Web对象的属性一样简单)。

您可能希望避免功能和流程自动化,直到开发的每个阶段都稳定下来。

在开发周期中,老实说,我将自动化归类为自己的开发周期,在其自己的周期中进行设计,构建,测试等,并且依赖于要测试的稳定应用程序。

评论


我对自动化还是很陌生,已经读了很多书,但是您指的是PageObject模型吗?

– gla
2012年1月24日18:05

嗨,笨拙,我实际上指的是创建自己的对象,在这里您可以保存要使用的数据。在我使用的脚本中,我们创建包含以下信息的交易对象:交易类型(数据输入,配置,选择某项商品,进行购买),交易所需的特定数据以及与任何其他所需数据的链接,以及描述事务对象正在执行的测试的注释。这些都有效地测试了我们的系统。

–凯特·保罗(Kate Paulk)
2012年1月24日19:17

#3 楼

早于实际软件开始。
这将为您带来很多好处-
1。您可以奢侈地评估几种工具或自动化设计
2。您的工具即使不完整,也可以帮助开发人员在早期阶段测试其代码。
3。您的最终产品(即自动化代码)将更适合实际产品
4。在功能开发期间,准确地在需要时提高自动化程度将作为一种探索性测试。

#4 楼

当接口固定且实现可能更改时,自动测试最有意义:接口固定,因为否则会浪费时间追赶移动的目标,而实现可能会更改,因为否则在第一次调试后就没有理由运行测试发布。 (为说明这一点,自动化开发人员(如使用可预测元素ID的网站)的原因是,它们提供了比仅仅DOM层次结构更稳定(固定)的接口来进行测试。)

您的目标,然后,将选择要测试的界面足够稳定的开发周期中的一点,以使您花费更多的时间进行测试而不是赶上更改。没有做出决定的折衷方法-毕竟,您正在尝试预测未来-但您可以通过让开发人员知道您要做什么并监视开发人员的进度来提高成功的机会。