DevOps理念下的软件测试发展

提到DevOps这个词,大家马上就会想到开发(Dev)和运维(Ops)一体化。是的,DevOps理念带给我们的直观感受就是开发团队的持续交付以及运维团队的持续集成。采用敏捷的工作方式来挺高产品发布效率。那么是不是在DevOps的理念下,传统的软件测试环节已经被弱化了呢?答案是否定的。相反,在DevOps实践中,产品测试的效率提升往往决定了组织的DevOps实践是否获得成功的必要条件。下面我们来看看DevOps理念中软件测试的发展趋势。
我们对DevOps的认识和理解它应该是一套实践方法,在保证高质量的前提下缩短系统变更从提交到部署至生产环境的时间。那么我们先来看看DevOps的五个要素:
DevOps理念下的软件测试发展
我们可以看到,在DevOps的五个要素中,重点提到了自动化这个关键词。在DevOps实践中,为了提高效率,需要自动化一切可以自动化的内容,包括配置管理、代码检查、编译构建、单元测试、系统测试、验收测试、部署发布等等。我们可以看到,在DevOps理念中,测试已经被归为开发流程中的 一个过程环节,在此过程中,对测试的自动化要求也是非常的高,可以说,DevOps组织流程是否实施成功,测试自动化的能力建设尤为重要。下面我们来看看一些典型的自动化化测试场景:
• 大量机械的、重复性的回归测试;
• 需要模拟大量数据、大量并发的测试;
• 需要不间断执行的测试;
• 需要短时间内完成的大量测试用例;
我们知道,回归测试覆盖的是产品的基本功能,固化率较高,这类功能对应的测试用例完全可以转化成自动化测试脚本,在每次新功能发布后执行自动化测试,提高回归测试效率。同时对于大量并发、不间断操作的测试,我们同样可以采用自动化的方式进行模拟来完成。在这些业务背景下,自动化测试就必须被完全引入。当前,引入自动化的同时,对于产品新功能的测试,需要对比手工测试和自动化测试的效率和成本,最终制定如何进行新功能测试策略。
我们来看看自动化测试的一些优点:
DevOps理念下的软件测试发展
看到了这么多自动化测试的优点,我们再来看看如何挑选合适的测试工具进行自动化测试。目前IT领域主流的一些自动化测试工具有:HP UFT(商用)、Selenium Framework(3.x,开源)、Robot Framework(开源),SoupUI等。如果不考虑测试工具成本的话,HP UFT的功能还是非常强大的,针对C/S,B/S架构的应用程序都可以进行自动化测试。有着强大的对象识别管理机制,以及完整的API支持,同时支持VBS脚本语言进行脚本编写。但在开源自动化测试工具领域,就不得不提应用广泛的Selenium框架,虽然Selenium框架只支持Web端的测试,但其多浏览器的支持,多种开发语言的支持(Java、Python、Ruby、C#、JavaScript等)、多平台(windows、Linux、Mac)的支持特性,受到了很大的欢迎。目前的市场占用率也是非常高的。另外像Robot Framework工具也是基于Selenium内核进行封装的,有着更好的IDE支持,更方便的进行Web脚本录制。
以上提到的几种自动化测试工具,大家可以根据自己项目或产品的实际情况进行选型,在DevOps实践过程中,效率就是一切,无论选择哪种自动化测试工具,只要适合的就是好的。需要指出的是,DevOps不是将手工测试完全摒弃,在产品的新功能测试过程中,仍然需要依赖手工测试进行,采用自动化进行新功能测试,测试脚本开发和维护的成本和资源较大,反而降低了测试效率,不利于产品迭代速度。在优秀的DevOps实践中,应该是手工测试与自动化测试高度融合,并通过集成测试管理工具,将上游的需求、开发与下游的运维、部署环节紧密连接起来,最终做到整体效率的提升。

Create by 陈瑜

DevOps理念下的软件测试发展