【51CTO.com快译】如今,随着软件开发技术在云计算、人工智能、以及机器学习等领域的长足进步,数据测试,特别是在大数据、以及物联网等应用场景中的产品质量和可靠性,都得到了显著增强,应用程序本身的错误也得以大幅减少,其对应的安全性和性能也提升了不少。
不过,各种自动化测试与质量检查工具更为实用,但是它们仍然无法完全代替熟练的测试专家,交付出高质量的测试方案。因此,各大软件企业在增加软件测试预算的同时,也在SDLC(软件开发生命周期)中,让团队与诸如敏捷(Agile)之类的测试方法相结合,增强持续测试等DevOps类型的实践效果。
本文将帮您梳理2021年值得关注的15种软件测试趋势,以便您在开发与构建本公司的业务项目中,适当地参考与借鉴。
1.无代码自动测试
无代码测试工具构建于先进的AI技术之上。其可视化的建模,能够更快地形成满足各种自动化测试需求的测试用例。无代码测试的关键优势体现在:有效性、易于审核、学习曲线平缓、以及节省了宝贵的资源等方面。
通过此类工具,IT人员既无需具备编程方面的专业知识,又不必深入理解自动化测试框架(如Selenium),以及应用底层的相关技术,便可生成简单的测试案例场景,进而减少花费在重复测试案例上的时间。
无代码自动化测试的基本原理是:通过更改前端视图,在后端中生成相应的、有意义的代码。诸如Testsigma(https://testsigma.com/)之类工具的测试用例,便主要采用NLP(自然语言处理),用一种简单的语言(如英语)编写而成。它们会以报告的形式,转换为可实现的后端代码。
以下是一些流行的测试自动化工具,它们使用无代码测试技术,来实现测试用例的自动化:
- TOSCA:这是一种由Tricentis带来的、基于模型的测试方法。它能够自动创建测试所需的用例、数据和场景等模型。
- test.ai:作为一款广受欢迎的自动化工具,它可以从用户体验的角度,来测试移动应用,而无需进行任何编程与维护。其AI特性能够自动生成应用测试用例,并产生与用户体验相关的结果。
- Ranorex:此工具提供了一个丰富的软件包,可录制和播放测试的整个过程。
- Ghost Inspector:此工具的每一步测试都无需任何编程,因此它能够轻松地确保目标网站的正常运行。
- TestComplete:由smartbear提供的这款工具,可以利用关键字驱动来实现自动化测试,而无需用户自行编写代码。
2.机器学习和人工智能在测试自动化中的深入应用
根据MarketsAndMarkets.com的研究显示:在北美,人工智能的当前市场体量已达6-7亿美元。到2025年,其全球投资总额将达到 2000亿美元。当前,广受欢迎的、基于AI的自动化测试工具有:
- Appvance:该AI工具可以根据用户的行为,来生成测试用例。由于它完全是以客户为中心(customer-centric),因此其测试产品套件涵盖了生产系统上的方方面面。
- Testim.io:该工具通过使用机器学习来编写,实施和自动化各项测试。它十分重视用户界面测试、综合测试和功能测试等方面。
- Test.ai:该工具通过人工智能,来执行回归测试。它可以作为一种监视工具,以获取应用程序的各项性能指标。
- Functionize:通过机器学习,该工具能够实现无需脚本的快速运行测试,即在数分钟之内执行多次测试,并执行深入分析。
- TestCraft:作为一个自动化测试平台,它可以在Selenium的基础上,执行持续测试,回归测试,以及监控Web应用。通过基于人工智能的相关技术,它能够自动识别应用程序中的修改,进而削减维护的成本和时间。
- Applitools:作为一款广受欢迎的应用可视化管理,和基于AI的可视化用户界面监控与测试软件,它通过一个基于Visual AI的综合软件测试平台,可供数字化转换、测试自动化、工程、DevOps、以及QA团队等专家来使用。
- Sauce Labs:作为一款基于云的自动化测试工具,它可以支持各种操作系统、浏览器、移动模拟器、仿真器、以及移动设备。同时,它能够利用人工智能和机器学习,按照用户所需的速度,来测试其应用程序。
3.敏捷团队中的测试自动化
传统项目管理工具主要关注的是分阶段的瀑布式项目,而敏捷方法则是通过自动化测试,来加快质量检测的进程。同样根据MarketsAndMarkets.com的最新报告显示:预计全球自动化测试的市场规模,将从2019年的126亿美元增长到2024年的288亿美元,其间的复合年增长率为18.0%。
4.增加对于大数据测试的需求
大数据的挖掘测试往往被定义为:针对任何体量的非结构化、或结构化的数据,进行端到端的测试。此类测试可以通过正确的数据验证,来协助制定各类增强性的决策;并通过有针对性的分析,从中得出精通的判断,进而改善业务战略和市场目标。
根据MarketsAndMarkets的估计,由于企业中物联网(IoT)设备使用率的增加,以及各国政府为促进数字化技术普及所采取的各项举措,大数据市场的价值持续攀升。一些高度依赖数据的垂直领域,需要通过智能化的大数据测试,以确保数据的完整性、准确性、可靠性,进而在此基础上,做出与各种服务和产品有关的数据驱动类决策。
5.通过物联网测试促进智能设备的数字化互连
2016年,全球针对物联网的连接部件只有64亿;而到了2020年,该数量已达到了200亿。这些数据代表了业界对于有效物联网产品的测试需求。其中包括:对于通讯协议、操作系统、以及物联网设备本身的硬、软件测试。鉴于物联网产品所处的环境存在着诸多不确定性风险,我们需要将测试的重点放在避免各类漏洞和威胁等安全性上。
有调查表明:物联网测试市场的估值在2019年为7819.6亿美元,预计到了2025年,将达到3624.23亿美元,而且2020-2025年的预测复合年增长率为32.34%。可见,该领域的测试工具会在不久的将来,迎来爆发式的增长。
6.更加广泛地采用敏捷和DevOps
对于DevOps,许多公司并不陌生。它能够通过实践、流程、工具、规则,让开发团队更加准确、敏捷地响应那些快速变化的需求,实现持续集成,并最大程度地缩短从开发到交付的时间。
目前,随着“测试左移”在SDLC(软件开发生命周期)中作用的突显,质量检查专家更需要在快节奏的开发过程中,通过持续测试,以保证交付出高质量的应用软件。在未来几年中,此类占比还会持续增多。
7.切换到性能工程(Performance Engineering)
众所周知,开发出具有优异性能的软件着实不易。毕竟,我们时常需要平衡业务价值、可用性、配置简易性、以及整体安全性等方面的因素。在软件的开发周期中,为了面对频繁的发布、以及不断变化的市场需求,软件开发人员需要在每个SDLC阶段优先考虑以客户体验为中心的方法,以减少在产品生命周期的早期,就引入了性能故障或瓶颈问题。
对此,业界提出了以“性能工程”替代“性能测试”的概念,以确保团队在最初的设计时,就能构建出各项重要的性能指标。具体而言,性能工程与性能测试之间的主要区别包括如下三个方面:
首先,性能测试是对应用程序响应能力和负载处理质量的检查。它可以获悉目标系统对于真实负载的承受能力,并预测出在高负载发生时可能出现的故障。而性能工程则是在应用程序的设计之时,就充分考虑到诸如:传输时间、数据质量、生产率等,有助于尽早发现开发中各种问题的性能指标。
其次,作为质量保证环节,性能测试通常是在软件开发阶段尾声进行的。而性能工程则是一个不间断的过程。它贯穿于软件开发周期的每个阶段,从产品设计到开发、再到最终客户的体验。
最后,性能测试是由软件测试团队执行的。而性能工程则是由质量检测和研发团队开展的。
8.区块链测试
根据MarketsAndMarkets的数据显示:预计到2025年,国际区块链市场的规模,将从2020年的30亿美元升至297亿美元。同时,预计到2022年,通过智能合约将区块链技术与IoT设备融合在一起,以便实现异地双方微交易,将会成为未来的趋势。
因此,随着区块链、及其智能合约技术在加密货币、互联网金融等业务领域的使用,区块链测试的概念也应运而生。它是一种高效、专业的下一代测试方案,可用于调试代码,并交付出高效的区块链应用。此类测试通常由如下关键测试类型组成:
- 性能测试:这是确定性能瓶颈,提出微调方案,进而重新评估目标应用是否适合面市的技术。
- 功能测试:这是一个用于评估区块链的智能合约等多项功能,是否运行正常的整体程序。
- 节点测试:通过对网络中每个异构节点,开展独立的测试,以确保它们相互之间能够顺利地开展协作。
- ·应用编程接口(API)测试:通过检查区块链应用程序之间的接口,以确保接口的回复和请求,能够被正确地处理和格式化。
下面是一些流行的区块链测试工具:
- Ethereum Tester:这是Github库中被使用最为广泛的平台和开源测试库之一。它不但安装简单,而且提供一个能够支持多种测试需求的可管理性应用API。该工具能够可靠地支持与Web3集成、API、智能合约、后端、以及其他方面的区块链测试。
- Ganache:曾被称为TestRPC工具的Ganache,可专门用于在本地测试以太坊合约。它能够通过生成一个模拟的区块链,方便用户采用多个帐户进行测试。
- Populus:这是一个围绕着py.test框架开发的测试框架。它可以测试合约部署等一系列以太坊功能。
- BitcoinJ:该工具通过基于比特币的应用,构建的基于Java的框架,方便用户与实际的BTC网络,以及一些测试活动进行交互。
- Embark:该测试框架专注于开发出可以在多个节点或系统上运行的dApp(去中心化应用程序)。它能够与IPFS(InterPlanetary File System,星际文件系统)、以太坊区块链、以及诸如Orbit和Whisper等去中心化的通信平台,集成到一起。
- Truffle:该工具以自动化测试以太坊的合约见长。
- Exonum Testkit:该工具的强项是测试整个服务操作。它能够方便任何人在有组织的系统中,测试应用API和事务的执行,而无需协商算法或关联各项网络操作。
9.网络安全与风险合规
根据BitSight发布的《通过安全性能管理,实现更好的安全性和业务输出》研究:有超过82%的利益相关者认为安全性对于企业决策是至关重要的。截至2020年,事实证明,网络安全测试已成为质量保证和软件测试中的一种增长趋势。而根据Cybersecurity Ventures的数据:预计到2021年,网络犯罪所带来的损失将高达6万亿美元。可见,我们需要在软件开发生命周期之初,实施安全检查。在此,我们预测:如下因素会在2021年进一步促进安全测试与实践:
- 定期渗透测试将有助于提高企业的声誉,并能够建立企业对客户、第三方、以及合作伙伴之间的信任。
- 安全测试可以让用户在真正受到攻击前,全面了解自身的弱点,并能尽早地发现潜在的威胁区域。
- 网络安全测试可确保即使发生了任何停机状况,也不会出现毫无前期准备的破坏性损失。
- 安全测试不仅可以保护交易(无论是资金还是数据),还可以保护最终用户的设备安全。
10. QAOps的意义
QAOps是将质量检测、运维人员、以及开发工程师,通过CI/CD管道组合到一起,开展协作的全新方法。为了将质量保证纳入开发和运营之中,我们可以让开发人员事先编写出测试用例。产品设计师和运维工程师,则与测试团队一起定位UX/UI(用户体验与用户界面)中的异常。据此,开发人员和质量检测团队能够在彼此协作的基础上,深入了解质量保证的相关流程,进而有助于提高测试和开发过程的效率。
简而言之,QAOps是一个不断上升的趋势,它使得IT运维、软件开发和质量保证之间的流程更加自动化,以便快速交付出高质量的软件。因此,随着越来越多的组织使用DevOps,QAOps会在2021年得到蓬勃发展。
11.手动和自动化测试相结合
借助自动化的脚本,软件测试的速度和效率能够得到极大的提高。不过它无法涵盖设计、用户体验、以及可用性等方面。而得益于手动测试,我们可以提高代码的覆盖面,以及特定代码的针对性。因此,质量检测团队需要通过手动与自动化测试相结合,尽早地发现问题,并用最少的时间去解决错误,这远比在软件发布之后亡羊补牢要节省成本得多。可见,只有平衡了两种测试方式,我们才能够既提高生产率,节省总体时间,又最小化错误率,提高软件质量和整体可用性。
12.API和服务测试的自动化
据Gartner预测:“到2021年,全球至少有三分之一的组织,会部署一个能够同时支持Web、会话、移动、以及增强现实等业务的综合性开发平台。”而随着微服务架构、以及API的广泛运用,质量保证团队必须确保客户端与服务端,服务端与服务端之间各种API的流畅通信,或单独运行。而面对此类丰富的应用场景,我们恰好需要自动化测试,来对各种API与服务进行全面的“体检”。
13.质量检测中心
目前,几家大型公司正在寻求通过建立质量检测中心的方式,让团队专注于标准化的可交付式实施模型,以确保重要的业务系统和流程质量。此处的质量测试中心是一个集中式的测试平台。它可以提供标准化的测试程序,根据质量和测试意图,来优化配置资源。
通过质量测试中心,测试团队可以致力于建立可重用的测试框架和标准,以供企业在将来的开发项目中继续遵循和沿用。从长远来看,该中心有助于构建高质量的软件,并增强了软件开发的整体流程。可见,该中心不但能够在不会牺牲产品性能、功能和可用性的前提下,减少测试的用时,而且能够提供有效的自动化测试框架,并在后续的项目中,保证产品质量的实践标准。
此外,质量模型测试中心还能够对质量保证提供敏捷性,并有助于建立由指标驱动的持续改进流程。
14.基础架构即代码(IaC)
日益普及的云服务和虚拟化,已经改变了我们构建服务器的方式。它不但简化了服务器的配置,而且实现了基础架构的成本效益、以及可扩展的灵活性。目前,我们耳熟能详的Terraform、Kubernetes和Docker都是此方面的热门工具,而且它们将在2021年继续占据主导地位。
顾名思义,基础架构即代码(IaC)是一种通过技术来构建和管理动态基础架构的方式。它把基础架构、工具、服务、以及对于基础架构的管理,作为一套软件系统,采取软件工程的实践方式,结构化地管理各种对于系统的变更。这意味着将诸如虚拟化测试、持续监视、以及版本控制之类的、以DevOps为核心最佳实践,将会以基础代码的形式,被应用到控制架构的设计和管理之中。目前,人们使用诸如Puppet或Ansible之类的高级系统,让基础架构成为具有代码结构和技术基础的代码环境,以供任何人使用。具体而言,IaC在软件开发与测试上的优秀实践包括如下四个方面:
- 将集成测试、功能测试和单元测试应用于基础架构。
- 通过源代码管理的方式来管理基础架构,进而实现对变更进行全面的审计与跟踪。
- 让开发人员和运营人员能够围绕着基础架构进行配置和编排。
- 由于代码本身记录了主机的状态,因此我们可以避开书面文档,转为持续更新有关基础架构的文档。
15. 对聊天机器人(Chatbot)的测试
随着新冠病毒持续在全球施虐,许多公司都快速上马并启用了聊天机器人服务,为数以万计的零售商店、金融机构等业务,提供着24x7全天候的实时支持。显然,为了保证聊天机器人的平稳运行,并提供更好的用户体验,我们需要对它们进行全面的测试。目前,业界有如下三种最受欢迎的Chatbot测试工具:
(1)Chatbottest
其开源指南提供了大约120个现成问题,可被用来评估聊天机器人应用给用户带来的交互感受。它通常可以运行在3个级别上:
- 固定的预期场景。
- 可能用到聊天机器人的测试场景。
- 不可预知的场景。
(2)Dimon
该测试工具的优势在于:它能够与Slack、Telegram、Facebook Messenger、以及WeChat(微信)等重要平台无缝集成。而且,它可以发现机器人在用户对话流程中出现的任何错误。
(3)Botanalytics
该工具允许用户以定制服务的方式,测试聊天机器人从对话的建立,到响应能力,再到答案给用户带来的体验等,每一个重要的方面。
顶级软件测试工具
我们在各大测试社区中检索了不同软件测试团队的留言,综合比较了各种端到端的跨平台测试方案,以及它们强大的测试自动化功能。下面便是一些常见的顶级软件测试工具:
- Katalon Studio:是一种用于移动、Web、API和桌面应用的自动化测试工具。
- Selenium:是一种用于Web应用测试的知名工具。
- SoapUI:是一款专为API测试而设计的,具有headless功能的测试工具。
- UFT One:是一款针对移动、Web、桌面和RPA(机器人流程自动化)应用测试的付费工具。
- TestComplete:是一款由人工智能支持的自动化测试工具,可用于移动、桌面和Web等测试场景。
- IBM Rational Functional Tester:是一个用于数据回归和功能性测试的数据驱动式测试平台。
- 其他重要的工具还有:Ranorex、Apache JMeter、Postman、Cucumber、Tricentis Tosca、Appium、Telerik Test Studio和Worksoft。
小结
综上所述,我们不难看出,专注于安全性和自动化是2021年测试领域发展的重要趋势。我们应当将测试的重点放在用户体验上,并以DevOps和敏捷的最佳实践作为基础。无论您供职于测试公司,还是专业的质量检测人员,希望上面介绍的15种软件测试的最新趋势,能够让您在竞争激烈且瞬息万变的行业中,持续保持领先的地位。
原文Top 15 Software Testing Trends to Watch Out in 2021,作者:Shormistha Chatterjee
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】