Trinitytec 发表于 2015-10-27 15:51:52

敏捷开发下的自动化测试

虽然我们已经说了十多年的自动化测试,但是直到出现敏捷开发,人们才开始真正重视自动化测试。大家可能在想:是不是软件开发人员在瀑布式开发过程中,没有注意到自动化测试?瀑布式开发不利用自动化,又是怎么完成测试的呢?

我今天就说说为什么测试工具突然变得重要起来;团队在什么时候需要考虑自动化测试;自动化测试会带来什么不同。

我们为什么需要实现自动化测试?
自动化测试并不是一种测试方法。有很多进行瀑布式开发的团队在测试过程中利用了自动化的检测和评估方法。为什么自动化测试这么流行呢?

个人看来,自动化测试最大的驱动因素就在于敏捷开发需要经常进行版本发布。现在敏捷开发方法的应用十分广泛,团队需要在两周之内完成整个项目的计划/构建/测试/部署工作,那么我们就不可能花两个月的时间来进行测试/修复/再测试等工作。因为各个组织都要追求速度、效率和质量,所以都在进行敏捷开发。而自动化测试能够大大提高测试的效率和质量,能满足敏捷开发高效的需求。所以敏捷开发无疑是推动了自动化测试的发展。

我们什么时候需要利用自动化测试?
我们要实现自动化,并不能仅仅因为亚马逊(Amazon)、脸书(Facebook)等比较受欢迎的公司在使用自动化测试。首先,我们应该清楚地知道我们是不是真的需要实现自动化。或许你会说,既然自动化测试能够在成本、速度、质量、效率等方面带来全面的竞争优势,为什么我们不用呢,还等什么呢?但是,我们在引进自动化测试之前,一定要真正理解这些竞争优势。

也许我们需要制作一个表格,来量化这些优势。下面有一个表格样板,或许能够帮助我们理解使用自动化工具的目的和可能带来的影响:
      
      
不要被上面的数据冲昏了头脑。不同团队和不同环境下得出的结果是不同的。实际上,我也遇到过自动化测试弊大于利的情况。
所以,我们要对流程进行量化分析,多运用数据驱动思维来看问题,而不能情绪化地做决定。如果无法对利润进行估算,就不要浪费时间了。
      
我们应该如何向团队引进自动化测试?
      我们每次在做出改变之前,都应该早就有了进行改变的意识。所以,在引进自动化测试这个概念之前,首先要让大家有自动化测试的意识。这种意识可以通过举办座谈会,专家演讲,见面会等来培养。也就是说,可以采用辅导套路来培养自动化测试的意识。
         
      虽然自动化测试主要是测试方面的工作,但是业务分析师、开发人员、数据库管理员,以及其他所有要配合测试人员开展工作的人员,都应该具备自动化测试的意识。我们现在说的是测试过程,在敏捷开发环境下,软件测试是所有人的责任。简单地说,管理员负责制定宏观目标,团队负责实现更细化、更具体的小目标,技术人员则负责完成每一个具体的步骤。
         
      开始进行自动化测试时,要谨慎选择适合通过自动化来完成的工作内容,而不能试图让所有的工作都靠自动化来实现。进行自动化测试时,可以先从易于出现问题的地方着手。如果测试过程中出现问题,自动化测试工具就会发现。我发现自动化测试最适合从涉及多个接口的内容着手。不仅仅是因为这些地方容易出问题,还因为执行这些内容的时候,能同时运行并检查很多其它容易出问题的地方。
         
      完成了一些重点测试之后,就该开始形成一个测试框架了。在自动化测试的基础框架之上,团队可能还需要添加持续集成和视觉辐射源,以便查看引进新代码之后出现的故障。这通过在服务器上连接简单的监视器就可以实现,监视器能够以视觉化的形式反馈出与测试质量、性能以及与时间相关的参数。
         
      有些公司在自动化测试工具上投资了很多钱,但是他们却只是让团队成员自行学习该工具。两年之后,70%的员工还是不知道该怎么使用该工具,所以自然也就很少使用该工具了。很明显,他们并没有能很好地体会到出自动化测试工具的优势。其实只要给他们安排一个老师来指导他们如何使用该工具,就不会出现这种情况,至少能够引导大家积极学习。(并不是所有的工具都适合的,主要还是得看各个环境下适合用什么样的工具。)所以,在选购了工具之后,一定要培训大家如何使用这些工具,从而最大程度地发挥工具的价值。
      
自动化测试工具的选择
      在选择自动化工具之前,要先明确测试需求,以及测试需要达到的成果,因为不同的工具有不同的侧重点和优势。比如:
      
      1. 单元测试类的,选用的测试工具就要能帮助用户进行单元测试,包括覆盖率测试,自动生成测试用例等等功能。如VectorCAST,该工具不仅能很好地实现单元测试、集成测试、覆盖率分析,还能进行编码规范检查,该产品有特别针对汽车电子行业的标准测试;
      2. 要进行系统测试/性能测试,就要选择系统测试级别的工具。如DT10,可实现回溯调试,性能测试,覆盖率测试,变量跟踪,多任务监控等功能,DT10有个比较特别的功能是软硬件同步测试;
      3. 静态测试可以选择静态分析工具,PRQA是使用最为广泛的代码静态分析工具,能提供从编码规范检查、缺陷分析到度量分析的完整的代码分析平台,有效保障编码质量,并协助用户满足满足高安全软件合规性的要求。
页: [1]
查看完整版本: 敏捷开发下的自动化测试