2.10 如何使用自动化测试书中的建议
在开发自动化测试过程中,我们运用了《Software Test Automation》一书中许多有用的知识点:
在进行自动化测试工具开发之前,首先对工具进行需求分析并列出需求清单,我们对需求清单中的每一个需求进行讨论和评审,结果表明这是整个开发取得成功的坚实基础。在评审过程中,参与人员中有代表不同需求的关键人物:经理、IT运营商、发布工程师、测试经理、开发人员和测试人员。
测试自动化只是从以下几个方面来对测试进行自动化:测试的准备、执行、核对、清空、存档、生成报告和度量。而测试执行之前的过程,例如,测试用例的设计等,是没有进行自动化的。
我们得到了管理层的大力支持来实施这项自动化工作,并且他们有着切实的期望。
【真知灼见】
管理层的支持是至关重要的,但是他们的期望必须要符合实际。
如果没有来自不同领域的杰出专家,我们就不可能取得成功。整个实现过程和解决方案都很复杂并具有挑战性。
幸运的是,在大部分产品中都没有要求进行GUI测试,这使整个自动化过程不会显得很冗长。
数据库中的GUI测试属于可用性测试,识别这种测试类型使我们取得了很多重大的改进,并使可用性测试延期。到今天为止,可用性测试还没有完成,但是因为考虑到这点我们受益匪浅!
测试工具的大部分开发是集中在GUI部分的开发。然而,在后面,GUI几乎不会用到,因为所有的自动化都是通过命令行界面进行的。我们前期之所以会集中精力进行GUI的开发,可能是因为我们大脑中还存在进行手动测试的定势思维。
【小窍门】
工具中良好的用户界面可能在自动化项目的前期最有用。
经过本次自动化项目的实践,测试人员也学会了别的技术并在他们感兴趣的领域变得更加专业。有些测试人员更精通测试开发,有些则在测试的执行和生成报告方面更精通。
只有心中牢记不断取得进步这一目标,才能让我们大步前进。通过小组讨论来分析现有问题以及如何对其进行自动化,最终就会找到解决方案。
让所有的测试人员参加国际软件测试认证委员会(International Software Testiing Qualifications Board, ISTQB)的基础认证课程,这样有助于术语的统一使用和理解,从而有助于增进测试人员间的交流。
有时候项目中人员数量突然减少从某种程度上也可以促进自动化过程——使用更少人力资源的需求变得更为突出。
能详细地向整个项目中的其他成员介绍每一步是怎么实施的,很有用,因为相比于将它们整合到产品之后再进行测试,显然单个部分的测试更容易执行。
【真知灼见】
在走向成功时,步子要快,但也要稳。
通过自动化进行的测试是整个项目的核心过程,无论什么时候出现了故障,它们都会尽力地报告给整个部门的每个人。这可能会对开发产生负面影响,因为看到这些失效之后,开发人员在修改代码时会格外小心,虽然这种格外留心有助于提高产品质量,但他们可能要为此花费过多的精力和时间。对于软件产品来说,对于“怎样的质量才算足够好”是没有明确定义的,这可能会导致在开发中投入过多的精力。这仅仅只是我个人毫无根据的假设,并没有事实能证明这一观点,但是开发人员太关注质量这在软件行业里是不寻常的!