(朱少民等译 原文由微信公众号“软件质量报道”2016-03-09发布)
春暖花开,步入2016年。回望和总结2015年自动化测试产业的是如何发展,在2016年将会有怎样的新趋势和展望呢?
Google Trends中对2015的统计中,展示在自动化测试领域下的各种技术的发展和进步。我们听说越来越多的公司采用敏捷测试方法,移动测试、大数据测试、云测试和一切与敏捷有关的测试领域,现在都热闹非凡。现在,让我们往前看,为那些自动测试领域的社区和企业去寻求2016年多半会发生的事情。
自动化测试领域的领军人物Joe Colantonio在最近的一次TestTalks中,关于自动化测试趋势分析,分享了一些他认为可以作为2016年一些趋势分析标志的有趣的想法,这些想法是来自于Google、Indeed和Github的趋势研究 和 对诸如“世界质量报告(World Quality Report)”和ZephyrGlobal(智能与信息报告)等分析的结果。
根据世界质量报告的第七版,由Capgemini、Sogeti和惠普公司共同赞助的,基于全球市场领域的,由1560位来自32个不同国家的资深IT管理人员和测试领导者共同进行的研究,得出结论:
持续且自动化的安全测试将是关键性的策略
敏捷和DevOps将是测试中的重头戏
预测分析技术将极大地有助于应用软件准时和高质量的交付。
客户与业务的保证将成为人们关注的焦点
基于其他一些关键性指标、专家的预测和行业报告等,以下是我们认为将会在2016年掀起新浪潮的几个方面,以呈现自动化测试发展趋势。
1. 移动测试
象去年一样,由于移动设备和技术的巨大变化,移动测试仍然是测试趋势的重中之重。移动应用软件对软件测试行业将产生重要的影响,主要包括有功能、性能、兼容性、安全性和易用性等方面的测试。专家们还预测,如果移动市场以现有速度的继续发展,那么基于移动的自动化测试迟早会超越网站自动化测试,这只是个时间的问题。由于开源框架、移动DevOps和APP市场的不断增长,这为移动自动化测试开辟了一个很广阔的前景。
根据Gartner的预测,到2017年将有超过2680亿的APP移动应用的下载量,并将产生770亿美元的累计收入。
2. 大数据测试和预测分析
随着大数据测试和预测分析的兴起,大数据实现的质量管理问题将凸显出来。如果缺少质量管理,众多设备、应用和网络形成的巨大的资源网,呈现为非结构化和破碎的数据群,最终会导致错误而为之付出惨重代价。因此,测试和质量先行仍将是最热门的趋势之一。同时,通过大数据采集和分析测试,企业将其目标定位于获取应用软件的行为是否将会满足客户的要求的数据指标。
3. API和微服务测试
随着对大数据的投资的增加,我们也将看到企业对微服务的投资的增加,因为微服务可以在不改变其他应用程序和流程情况下进行测试,它更容易被测试和部署一个独立的功能,这使得应用软件和产品可以加快上线速度。因为它可以用于测试包含许多小的、独立的流程和体系结构的而构成的复杂应用程序,所以这个趋势必然在2016年将持续升温。另一方面,为了对应用程序进行全面测试,测试应用程序与其他应用程序之间的依赖关系的接口测试也将是企业的最高要求之一。
4. Web 服务和SOA的测试自动化
与API和微服务测试一样,Web服务和SOA体系结构的测试作为对应用程序的端到端进行性能测试也将同等重要。现在复杂应用系统的集成,要求测试系统之间消息是否能正确传输和响应,因此,将有越来越多的企业投资于SOA和Web服务的自动化测试。
5. 生命周期测试全自动化
接口测试、Web服务测试和大数据测试将成为重要的测试发展趋势,可见今年测试自动化将不会仅仅局限在功能测试方面。企业将会开发“端到端的、全生命周期测试的自动化”,要求贯穿整个软件生命周期测试的单元测试、集成测试或系统测试的任何一部分都可以实现自动化。这种趋势肯定会给测试人员提供很多机会,从开始到结束的整个测试生命周期的所有自动化测试技术,而不再仅仅是功能测试的自动化技术。
6. 配置管理自动化,Chef与Puppet
为了实现端到端的测试目标,为使大部分的QA(质量保证)活动/工作实现自动化,配置管理自动化也引起了许多QA企业的关注。配置管理是使得软件产品开发的基础设施、功能、操作和物理属性等,更易于管理、版本控制和测试。有几种工具可以帮助实现配置管理自动化,例如:Chef、Puppet和Docker。根据Indeed网统计,Chef和Puppet是10大工具中,企业QA工作中最想使用的两种工具。
这种趋势进一步发展,人们就迫切希望自动化测试工具可以完成配置测试,并能有效控制软件性能测试、提高软件可维护性、降低系统运维风险。
7. 基于TDD和BDD 的左移测试
通过配置管理自动化可以提高系统运行性能,而左移测试(Shift left testing)则是另一个正在快速兴起的趋势。左移测试是在开发生命周期的早期就开始进行测试工作,而不是等到开发快要完成,然后再由QA测试人员来发现缺陷、报告缺陷。例如,从需求分析阶段就开始启动测试,可以防止开发的前期工作的错误进入代码阶段,防止前期缺陷的扩散又引起更多的其它新Bug。
对于企业来说,左移测试可以帮助节省成本和缩短开发时间,因为越迟发现错误,修复错误的成本就越高。企业也更倾向于采用TDD和BDD方法开发应用程序,因为可以无错误、无延迟的满足客户的要求。采用TDD和BDD的方法,开发团队可以得到与需求一样的基于开发的想法,而不会有对需求的误解而带来的麻烦。
根据Indeed.com网站提供的数据,39%的企业采用左移测试方法,使用了BDD和TDD。
8. 虚拟化和集装箱化
采用左移测试可以帮助软件开发在整个生命周期出现的缺陷更少,虚拟化(Virtualization)和容器化(Containerization)则可以加快开发进程。如今测试自动化面临的最大挑战之一就是:App的更新速度越来越快,而且需要保持跟踪应用环境并不断维护。虚拟化和容器化将是最大发展趋势之一,这样可以将测试代码独立出来,这种方法将帮助自动化更好的执行和更快的发现问题,并消除由于软件的运行环境而造成的困扰和问题。
9. 敏捷与协作工具
在应对快速和敏捷的方法学中,专家预测:开发人员、测试人员和运维工程师应该使用同一工具,以增强他们之间的合作。前几年,同一个团队不同角色还会使用不同的工具,但是这几年来,团队内使用相同的工具和集成开发环境,有助于促进团队协作和提高测试工作的有效性。例如,使用同样的缺陷跟踪和任务管理工具,这将为跨部门团队合作过程中提供更好的透明度,这也将促进团队间更好的沟通和反馈,帮助实现灵活的测试需求。
10. DevOps
和上面的趋势类似,开发人员之间的合作机会越来越多,IT专业人员和系统运维工程师,越来越接受DevOps的合作模式。现在越来越多的企业,把开发人员和运维工程师的角色与测试角色相融合,这是因为他们之间有许多方面对能力要求是重叠的,而且需要适应持续敏捷迭代的工作环境。
根据一项谷歌趋势统计,67%的企业正采用DevOps的原则,从拥有跨职能技术的员工上获益,以加速测试项目的交付速度。
11. QA和开发人员的角色融合
随着采用DevOps原则的企业不断增加,预计将打破以工作职责所划分的开发人员、QA和测试人员、业务分析师和产品经理之间的界限。随着时代的变化,开发和运营管理人员开始接受测试作为他们日常工作的一部分。其实他们喜欢在软件开发的生命周期中采用测试,以确保缺陷尽早的被发现和排除。因此,专家们预测,随着这种趋势的持续演化,开发人员和测试人员的角色将在未来的几年中合二为一。
12. 持续集成的自动化
由于开发人员将和测试人员进行持续的同步工作,很可能会要求他们互相之间要不断的更新和反馈消息,以了解软件质量的实时状况和快速的修复缺陷。基于这点,持续集成的自动化很可能将发挥巨大的作用。
13. 物联网和硬件测试
物联网(Internet of Things,IoT)呈现一个不断增长的态势,专家预测,大约有500亿个对象连接到网络上,他们将通过某种连接和传感器连接,构成了物物相息的环境。这自然会要求针对物联网众多对象进行测试,特别是要验证持续产生的、来来回回传输的数据。也有人说,硬件测试也将成为2016之后的物联网测试的重要趋势。
就像日立公司质量保证总监Jonathon Wright说的,“当我们谈论IOT,我们更多的是谈硬件而不是软件。测试人员的测试文化将要改变为也能测试硬件。”
14. 安全性
随着产业走向物联网和无头式测试(headless testing),安全性成为最重要问题之一,以确保没有数据和信息被黑客攻击、窃取和滥用。因此,近几年安全性问题将越来越受到人们的关注,将在自动化测试领域占有重要的一席之地。
据世界报道,80%的人表示安全是他们最关心的问题之一。
15. Selenium自动化包
随着企业越来越多的使用网络应用产品,Selenium在自动化测试工具中的使用率正在飞速增长。将看到越来越多的商业工具提供对Selenium的技术支持,以实现web应用的自动化测试。这些工具通过整合Selenium Web Driver与后台架构,与Selenium打包在一起而发挥更好的作用,这种融合不仅可以帮助测试客户端的应用程序,而且测试那些通过API进行交互的Web应用。
通过上述的趋势分析、预测和统计分析,自动化测试在2016和之后会有很美好的前景。DevOps、容器化、持续集成、左移测试将会吸引人们更多的关注,从事QA的企业和从事自动化测试的工程师们会在大数据测试、移动和API测试方面有很多令人兴奋的机会。
在此,我希望所有的自动化测试专家和企业能抓住这场全球测试市场兴起的新机遇。NASSCOM预估这股新浪潮到2020年将达到500亿美元的效益。