自动化测试计划管理的必要性
计划管理是自动化测试的关键实现,在一个测试项目里,虽然紧缩或者干脆忽略掉制订计划的过程是相当具有诱惑力的事情,尤其在项目周期短、时间紧的情况下;但是,没有明确的计划,尤其对于初次实施自动化测试的软件企业,根本无法体现自动化测试的种种优势,虽然可以在初期稍稍感觉到自动化测试的甜头。因此,针对自动化测试项目,一定要制订明确良好的计划。
RUP提出计划是投资。
录制/回放脚本的弊端:企业购买自动化测试工具后,通常的做法都是热血沸腾的开始将工具分派给相应部门,并立即着手创建、执行测试,虽然通过录制/回放脚本可以获取短暂的受益和喜悦,但是从长期来看,自动化测试的真正收益来自于脚本的重用,而这根本不是靠简单的录制/回放能获得的。虽然获取计划的时间和资源比较困难,但是我们也要投资一定的时间和精力,以获取长期回报。越早投资于当前自动化测试项目的计划过程,会从将来的项目中获取越大的收益。
时间、资源需要计划:如果对自动化测试不做时间、资源上的计划安排,可想而知,终消耗和浪费的东西,不单单是个自动化工具而已。
对高层领导的承诺:在从涉众范围获得对自动化测试的支持后,如果没有正规明确的计划流程,开始盲目推广工具使用,从而导致无法从中获得投入的收益,那么对企业高层领导的承诺也将付诸一炬,如此可想象企业高层将如何处理这一行为,谁又能负担的起呢!
计划要与时俱进。
初的计划无法覆盖全部内容。从来没有第一次做的东西可以涉及全部内容,也从来不会有日后不经修改的。
初次的计划必将为今后提供参考。一般来说,初次的自动化测试计划内容包含选择那些易于维护和复用的基本功能结构,然后对其编写测试脚本。从这个意义来说,我们意识到在初始阶段对自动化测试的全部投入,必将对将来测试项目产生深远的影响。如果在第一个项目里我们严谨的实行安装、设计等工作,那么对于后来的项目,工作量将会减少很多。
自动化测试的项目计划
您见过一个软件开发项目没有明确的计划能够成功的么?不能!正如一个软件开发项目一样,自动化测试也包含着种种复杂性,一个稳定的测试计划帮助您分解测试的复杂性,并减少测试的风险。
的测试项目计划包括:
以简单术语描述测试项目 计划项目的日程安排 评估项目的风险 设置项目的沟通计划 确定项目的所需资源
我们重点讲述后四项内容。
日程管理:一款的日程安排对任何测试项目都是重要的,尤其初次实施自动化测试,必须考虑构建自动化测试的时间。项目计划的日程应考虑如下方面:
对项目成员进行自动化测试工具和脚本开发的培训 创建自动化测试的基本架构,包括定义测试流程、开发标准、创建自动化测试框架等 计划和设计测试用例 开发测试脚本 创建并执行测试套件 评估输入:需求、测试用例、测试策略等 配置测试环境:硬件、软件、环境等
计划的编写形式可使用microsoft的project软件,这也是业界通用的计划管理工具。 风险管理:自动化测试项目计划的风险包括:
时间风险 资源风险 人力风险 项目细节风险
这四项是概括性描述,实际项目中的风险还要根据实际情况细化并评估,然后写出避免风险的预备方案;如人员中途离职、需求变更造成的时间变更等。
更详细的软件测试项目的风险列表,请参考如下表格:
沟通计划:由于项目成员间的经验偏差,以及交流能力的不足,经常会出现发生问题时不知该找何人负责的麻烦。因此,有必要在自动化测试计划里规定沟通计划的方面。所谓沟通计划,是事先在计划里预计测试实施中出现的各种错综问题,然后指定每种问题出现时候的责任人,以免到时发生时,左右徘徊。
资源计划:测试项目所需资源包括几方面:
人力资源 人数 工作时间 设备资源 硬件(服务器、客户端等) 软件 预备时间
项目的自动化测试策略
自动化测试的策略是确定哪些测试实行自动化测试,以及何时采用自动化测试。
人们对自动化测试的一个误区是将测试尽可能的实行自动化,并且越早越好;通常的理解是,自动化测试程度越高,自动化测试工具的利用率越高,我们从中获取的投资收益越大。实际上,我们从自动化测试工具获得的收益应该体现在测试质量上,而不是数量上,选择哪些测试实行自动化,如何开发执行测试脚本,要比究竟多少测试实行自动化要重要的多。
如何选择适合实行自动化的测试呢?通常分三个步骤:
提取适合自动化的测试 评估每个自动化测试的时间消耗 根据测试目标确定自动化测试的优先顺序
首先,制订表格提取适合自动化测试的项目,这里的原则是挑选能获得投资回报的测试项。表现在:
能缩短时间周期 能减少风险 能提高测试精度
RUP推荐以下测试类型适合实行自动化测试:
重复性大-例如数据的边界值测试、回归测试等 冒烟测试-每个发布版本提交测试欠的基本功能确认 配置测试-需要在不同支持平台的测试 郁闷的测试-对于手工测试看似郁闷乏味的测试 复杂的测试-难以手工执行,或者容易出错,即便也难于自动化测试,但可做相应考虑 需要对测试结果做电子记录的测试
然后,评估自动化测试的时间。目前没有简单的数学模型判断自动测试和手工测试的时间消耗比例;但是根据RUP测试专家的估计,开发一个自动化测试的时间,是手工测试的3到10倍,对于复杂的测试,甚至更长。因此,一个需要100小时的测试套件,如果实行自动化测试,需要300到1000小时或更多的时间。RUP测试专家CemKaner认为从创建、校验、文档化自动测试的时间消耗是手工测试同样过程的3到10倍;自动化测试专家LindaHayes认为是5到10倍。
任何估计都是一种猜测而已,我们必须根据企业测试人员的实际测试技能、测试软件的实际特征,以及测试工具的实际使用复杂度进行判断。但是有一点是无可厚非的,是初次实施自动化测试的时间消耗,要比熟悉工具和测试流程后需要的时间更长。因此在评估自动化测试的时间消耗时,一定要将其考虑在内。例如,一个1600个测试用例的项目,估计前400个用例每个需要4个小时,下400个每个需要2小时,后的800个,每个只需要1小时,故而全部时间是:1600小时+800小时+800小时=3200小时。我们的基本原则是,挑选时间消耗比例大的测试优先实行自动化测试。
关于如何选择测试的自动化,可以参考Marick.Brian文章WhenShouldaTestbeAutomated?或Pettichord.Bret的SuccesswithTestAutomation.
后,确定自动化测试的优先顺序。这里重要的原则是采用迭代的方式确定自动化测试的执行顺序。首先确定每个迭代的目标,挑选能获得投资回报的测试,例如冒烟测试几乎总是能立即获得时间和资源上的回报;再挑选容易开发脚本、容易理解的测试实行自动化,之后逐渐扩展并迭代。
至此,您可以考虑在您近实施的自动化测试项目中:
哪些手工测试适合成为实行自动化测试候选测试呢? 您将如何开始这些自动化测试呢?
自动化测试的标准 为什么需要确定自动化测试项目的标准呢?
防止项目成员按照个人工作方式造成实施上的混乱 防止随机无序的执行测试过程 有助于跟踪测试资源的利用 减少脚本的全局变更产生的维护工作量 跟踪脚本变更记录 减少测试程序变更造成的测试修改 更方便于测试脚本的复用 更容易调试测试 更有效的注意到容易忽略的测试 更方便的在测试者之间交换工作
自动化测试标准包含两方面:
测试资源相关的标准 测试过程相关的标准
测试资源相关的标准,一般来说,包括如下内容: