5 Things That Will Impact the Future of Software Testing(将要影响软件测试未来的5件事)

目录

原链接

翻译内容

Summary(摘要):

正文

1. Artificial Intelligence(人工智能)

2. DevOps

3. QA as a Service(QA即服务)

4. The Internet of Things(物联网)

5. Robots(机器人)

关于作者

扫描二维码关注公众号,回复: 5387598 查看本文章

原链接

https://www.stickyminds.com/article/5-things-will-impact-future-software-testing?page=1

翻译内容

By Raj Subramanian - April 30, 2018

Summary(摘要):

From the way we look at software, evaluate risks, think about complexity, design our test approach and strategy, and help to release a stable product to the customer, technology has had an influence on how we test software. And that influence will only continue as technology advances. On a high level, here are five key things we’re already seeing that are going to shape the future of software testing.

从我们看待软件,评估风险,考虑复杂性,设计测试方法和策略,以及有助于向客户发布稳定产品的方式来看,技术对我们测试软件的方式产生了影响。 而这种影响只会随着技术的进步而持续下去。 从高层次来看,我们已经看到的五个关键事情将影响软件测试的未来。

In the past few decades, software testing has evolved in terms of both the tools used to perform different activities and the mindset of the people using those tools. There used to be only a handful of tools used in software testing, but now we have a plethora of tools to choose from, from proprietary to open source. Likewise, people have started thinking of testers as information brokers instead of gatekeepers, and there have been a lot of positive developments in the agile world that have contributed to significant changes in the processes that teams follow in their software development lifecycle. Advancements in technology are to thank for these evolutions.

在过去的几十年中,软件测试在用于执行不同活动的工具,和使用这些工具的人的心态方面都有所发展。 过去只有少数工具用于软件测试,但现在我们有大量的工具可供选择,从商业工具到开源开源。 同样,人们已经开始将测试人员视为信息代言人而不是看门人,并且,敏捷世界中出现了许多积极的发展,这些发展促成了团队在软件开发生命周期中遵循的流程的重大变化。 技术进步要感谢这些演变。

From the way we look at software, evaluate risks, think about complexity, design our test approach and strategy, and help to release a stable product to the customer, technology has definitely had an influence on how we test software, and that influence will only continue as technology advances. On a high level, here are five key things we’re already seeing that are going to shape the future of software testing.

从我们看软件,评估风险,考虑复杂性,设计我们的测试方法和策略的的方式,以及帮助向客户发布稳定的产品,技术肯定会对我们测试软件的方式产生影响,而这种影响只会随着技术的进步继续。 从高层次来看,我们已经看到的五个关键事情将影响软件测试的未来。

正文

1. Artificial Intelligence(人工智能)

About five years ago, everyone was talking about “mobile first” and giving the user a mobile experience using mobile web, native, and hybrid applications. Now, the new buzzword is AI. It is in self-driving cars, home assistants (people sure do love their Alexa), computer vision, health care, finance, and now in software testing.

大约五年前,每个人都在谈论“移动先行”,并使用移动网络,本机和混合应用程序,为用户提供移动体验。 现在,新的流行语是人工智能。 它是自动驾驶汽车,家庭助理(人们肯定喜欢他们的Alexa),计算机视觉,医疗保健,财务,现在是软件测试。

Currently, there are very few reliable tools in the market that use machine learning to help in the authoring and execution of functional testing, end-to-end testing, and regression testing. They are primarily concentrated in UI-based test automation—the more tests the user creates, the smarter the algorithm becomes, which makes the tests more stable.

目前,市场上很少有可靠的工具使用机器学习来帮助编写和执行功能测试,端到端测试和回归测试。 它们主要集中在基于UI的测试自动化中 - 用户创建的测试越多,算法就越智能,这使得测试更加稳定。

Here are some of the benefits we could expect to start seeing in testing thanks to AI:

以下是我们可以期待在AI测试中可以看到的一些好处:

  • Easier authoring of tests 更容易编写测试
  • Lower maintenance work on test scripts Lower maintenance work on test scripts
  • Fewer flaky tests 更少的不稳定的测试
  • Having nontechnical people start doing automation 非技术人员开始做自动化
  • Easier CI/CD integration 更轻松的CI / CD集成
  • More reusable tests 更多可重复使用的测试

For example, I built an automation framework with Cucumber, Java, and Appium. Although I had a robust framework and a lot of flexibility in writing custom code to perform various actions, I often suffered with the common problem of maintenance. When a developer changed attributes of an element that were already covered by my automated tests, the tests started failing. As a result, I spent a lot of time just maintaining these tests instead of writing new automation code to cover new functionalities that were implemented.

例如,我使用Cucumber,Java和Appium构建了一个自动化框架。 虽然我有一个强大的框架,并且在编写自定义代码以执行各种操作时具有很大的灵活性,但我经常遇到常见的维护问题。 当开发人员更改了我的自动化测试已涵盖的元素的属性时,测试开始失败。 因此,我花了很多时间来维护这些测试,而不是编写新的自动化代码来涵盖已实现的新功能。

This problem can now be solved by using dynamic locators the AI extracts from the Document Object Model (DOM). In real time, the AI analyzes all the object trees and properties from the DOM and can create a list of different attributes for a particular element. So, when an attribute of an element changes, the AI tries to go to the next attribute in the list to locate the element and keeps going through the list until the element is located. The tests are more stable, the authoring and execution of tests are much faster, and the tester has to spend less time on maintenance.

现在可以通过使用AI从文档对象模型(DOM)中提取的动态定位器来解决此问题。 实时地,AI分析DOM中的所有对象树和属性,并可以为特定元素创建不同属性的列表。 因此,当元素的属性发生更改时,AI会尝试转到列表中的下一个属性以定位元素并继续浏览列表,直到找到元素。 测试更稳定,测试的新建和执行速度更快,测试人员可以花费更少的时间进行维护。

2. DevOps

背景补充:

DevOps一词的来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。

DevOps has helped software development teams and operation teams to better collaborate, thereby ensuring there is constant automation and monitoring throughout the software development lifecycle (SDLC), which includes infrastructure management as well.

DevOps帮助软件开发团队和运营团队更好地协作,从而确保整个软件开发生命周期(SDLC)中有持续自动化和监控,也包括基础架构管理。

You may ask, how is this going to influence software testing? The answer: Everything we do as part of testing is going to change. The changes I foresee include:

您可能会问,这将如何影响软件测试? 答案:我们作为测试的一部分工作都将改变。 我预见的变化包括:

  • A need to start automation right at the beginning of the SDLC and ensure nearly all test cases are automated需要在SDLC开始时立即启动自动化,并确保几乎所有测试用例都是自动化的
  • All the QA tasks would need to be aligned to ensure a smooth CI/CD cycle 所有质量保证任务都需要协调一致,以确保顺利的CI / CD周期
  • A high level of collaboration would be needed to ensure there is continuous monitoring in the production environment 需要高度协作以确保在生产环境中持续监控
  • All the QA environments would need to be standardized 所有QA环境都需要标准化
  • The testing mindset changes from “completed testing on this module” to “What are the business risks that have been mitigated in the release candidate?” 测试思维方式从“对此模块完成的测试”变为“在待发布版本中已经减轻了哪些业务风险?”

The key to all the above changes is automation. DevOps and automation go hand in hand—without one, the other won’t work. This is where smart people and tools can help in bringing shorter and more dependable release cycles.

所有上述变化的关键是自动化。 DevOps和自动化齐头并进 - 没有一个,另一个不起作用。 这是智能人员和工具可以帮助实现更短,更可靠的发布周期的地方。

I worked at a company where there was minimum collaboration between the development, testing, and operations teams. We were seeing a lot of gaps in the SDLC cycle in terms of more bugs getting into production, unstable CI/CD infrastructure, and less visibility into production monitoring and statistics. Noticing these gaps, the team decided to implement a DevOps practice, and everyone started collaborating and contributing in each phase of the SDLC. This started from requirements gathering and extended all the way to production release and monitoring.

我在一家开发,测试和运营团队之间进行最少合作的公司工作。 我们看到SDLC周期中存在很多问题,包括更多的缺陷到了生产环境,不稳定的CI / CD基础设施,以及对生产监控和统计数据的可见性降低。 考虑到这些问题,团队决定实施DevOps实践,每个人都开始在SDLC的每个阶段进行协作和贡献。 这从需求收集开始,一直扩展到生产发布和监控。

This increased culture of collaboration started having positive effects in team morale, more automation coming into place, and the whole team starting working together as one unit.

这种不断增强的合作文化开始对团队士气产生了积极影响,实现更多自动化,整个团队开始作为一个单元一起工作

3. QA as a Service(QA即服务)

Just like how we have SaaS (software as a service), IaaS (infrastructure as a service) and PaaS (platform as a service), we now have QAaaS. Over the past few years, this has become a popular way for companies to meet their software testing needs.

就像我们如何使用SaaS(软件即服务),IaaS(基础架构即服务)和PaaS(平台即服务)一样,我们现在拥有QAaaS。 在过去几年中,这已成为公司满足其软件测试需求的流行方式。

Companies that have QAaaS solutions make different aspects of your software testing process easier by providing:

拥有QAaaS解决方案的公司可以通过以下方式,从不同方面简化您的软件测试过程:

  • Test case management and maintenance solutions 测试用例管理和维护方案
  • Test automation tools with less need for coding 需要较少编码的测试自动化工具
  • Robust test reporting features with logs, video recording, and screenshots 强大的测试报告功能,包括日志,视频录制和屏幕截图
  • Easy integration with CI systems 与CI系统轻松集成

Resources such as mobile phones, virtual machines, secure networks, and human testers In the past seven years of doing automation, one big problem I have always run into is having to maintain my own server machines to run my automated tests. The server machines have different problems, like running out of storage space, a flaky internet connection, slow processing speed for the number of tests that are being run continuously throughout the week, and the need to be frequently updated with the latest OS, build tools, security patches, IDEs, and so on. These kinds of problems could be solved with QaaS providers, as they can do all these activities for you, so team members can concentrate on more critical tasks.

移动电话,虚拟机,安全网络和手工测试人员等资源,在过去七年的自动化过程中,我遇到的一个大问题是必须维护自己的服务器来运行自动化测试。 服务机器有不同的问题,例如耗尽存储空间,互联网连接不稳定,处理速度慢,如需要整个星期来连续运行所有测试,以及需要经常更新最新的操作系统,构建工具 ,安全补丁,IDE等。 QaaS提供商可以解决这些问题,因为他们可以为您完成所有这些活动,因此团队成员可以专注于更重要的任务。

In the future, QaaS providers are going to think about more ways to improve their offerings to stay ahead of their competitors, which will benefit software testers, too. 

在未来,QaaS提供商将考虑更多的方法来改进他们的产品,以保持自己能领先于竞争对手,这也将使软件测试人员受益。

4. The Internet of Things(物联网)

With the advent of wearables, smart homes, connected cars, and other cloud-based technologies, the internet of things (IoT) has become a big topic of discussion. The amazing thing about these devices is that there are so many communications and integrations taking place every second.

随着可穿戴设备,智能家居,联网汽车和其他云技术的出现,物联网(IoT)已成为讨论的重要话题。 令人惊奇的是,这些设备每秒都有很多通信和集成。

Let’s analyze, on a high level, the different communications taking place with a wearable fitness tracker. First, the mobile app and fitness tracker need to communicate with each other. The data captured by your mobile app should seamlessly integrate with the desktop, mobile web, and tablet versions of the app, and all these communications across devices should happen in real time. All the data travels to and from the cloud, the devices, and the apps. People also can form groups and compete with each other via the app, so these calculations and communications need to happen in real time, too. Based on different events triggered, the proper notifications need to be sent to the right user at the right time. All these communications happen over the internet.

让我们从高层次上分析与可穿戴健身追踪器发生的不同通信。 首先,移动应用和健身追踪器需要相互通信。 您的移动应用程序捕获的数据应与应用程序的桌面,移动Web和平板电脑版本无缝集成,并且所有这些跨设备的通信都应实时发生。 所有数据都传入云端,设备和应用程序。 人们也可以组建小组并通过应用程序相互竞争,因此这些计算和通信也需要实时进行。 根据触发的不同事件,需要在正确的时间,将正确的通知,发送给正确的用户。 所有这些通信都发生在互联网上。

Imagine you are a tester testing this fitness tracker. Where do you start? How would you design your test strategy and approach?

想象一下,您是测试此健身追踪器的测试人员。 你会从哪里开始? 您将如何设计测试策略和方法?

The IoT introduces its own level of complexity into software testing. It is going to affect the way we think about testing, particularly because more concentration needs to be given tointegration testing than the old approach of testing each component separately.

物联网在软件测试中引入了自己的复杂程度。 这将影响我们考虑测试的方式,特别是因为需要更多地集中进行整合测试,而不是使用旧方法分别测试每个组件。

For example, when I was working for a travel booking company, we came up with a new app for the Apple Watch built using WatchOS (when it was first introduced by Apple). The application had limited but useful functionalities, like the ability to view notifications and rewards information, reservations, and locations of hotels, flights, and car rentals. While testing this application, I noticed that when the Apple Watch app was connected to the same app on my phone, there were weird issues: When I minimized the app on the phone, the Apple Watch went blank, showing only a black screen; but when I opened the app on the phone again, the black screen disappeared, and the Apple Watch app behaved normally.

例如,当我在旅游预订公司工作时,我们推出了一个使用WatchOS构建的Apple Watch的新应用程序(Apple首次推出时)。 该应用程序具有有限但有用的功能,例如查看通知和奖励信息,预订,以及酒店,航班和汽车租赁的定位能力。 在测试此应用程序时,我注意到当Apple Watch应用程序连接到手机上的同一个应用程序时,出现了一些奇怪的问题:当我在手机上最小化应用程序时,Apple Watch变白,只显示黑屏; 但当我在手机上再次打开应用程序时,黑屏消失,Apple Watch应用程序正常运行。

This is a perfect example of why it is important to do integration testing. With more and more devices coming into the market, this is going to be critical for organizations and users.

这是说明集成测试非常重要的一个完美示例。 随着越来越多的设备进入市场,这对组织和用户来说至关重要。

5. Robots(机器人)

There are now robots that do testing. Some people may think this is scary in terms of job security, but I still believe that the human mind can never be replaced. There would still need to be humans to monitor the robots to ensure they are doing what is expected of them and to actually program them to do things. How far is this scalable? Only time will tell.

现在有机器人在做测试。 有些人可能认为这在工作保障方面是可怕的,但我仍然相信人类的思想永远不会被取代。 因为仍然需要人类来监控机器人,以确保他们正在做期望的事情,并实际让他们编程做事情。 这可扩展到多远? 只有时间给答案了。

In summary, advancements in technology have already started influencing the way we are doing software testing. It has also caused companies to rethink their organizational structure: The QA team is moving toward being embedded within the development team, and the whole team will own quality. It also will become important for the research and development group to be in frequent interaction with the development group in order to make products smarter and more useful for their customers.

总之,技术的进步已经开始影响我们进行软件测试的方式了。 它还使公司重新考虑他们的组织结构:QA团队正在逐步融入开发团队,整个团队将拥有自己的品质。 对于研发团队来说,与开发团队频繁互动也很重要,这样才能使产品对用户更智能,更有用。

There will also be a need to have procedures in place to handle large amounts of data, as well as appropriate computing power to comb through this data to get useful information and feedback. Finally, to make all this a reality, companies need to adopt lean processes and be much more transparent to prevent being an obstacle for innovation. Lean transformation will be vital for effective growth.

还需要有适当的程序来处理大量数据,以及适当的计算能力来梳理这些数据以获得有用的信息和反馈。 最后,为了实现这一切,公司需要采用精益流程,并且要更加透明,以防止成为创新的障碍。 精益转型对于有效增长至关重要。

It’s important to change our mindsets about how we view systems and to test them accordingly. We can choose to either ignore it or embrace it. What will you do?

重要的是改变我们关于如何看待系统,并相应地测试它们的思维模式。 我们可以选择忽略它或接受它。 你会怎么做?

关于作者

Raj Subramanian a former developer, moved to testing to focus on his passion. Raj currently works as a Developer Evangelist forTestim.io, that provides stable self-healing AI based test automation to enterprises such as Netapp, Swisscom,Wix and Autodesk. He also provides mobile training and consulting for different clients. He actively contributes to the testing community by speaking at conferences, writing articles, blogging, making videos on his youtube channel and being directly involved in various testing-related activities. He currently resides in Chicago and can be reached at [email protected]. His website is www.rajsubra.com and twitter handle – @epsilon11. His videos on testing, leadership and productivity can be found here – https://www.youtube.com/channel/UCoeNB2yyzE5WQDKeJCF0iOQ

Raj Subramanian是一名前开发人员,由于热情,他开始转向测试。 Raj目前担任Testim.io的开发人员宣传员,为Netapp,Swisscom,Wix和Autodesk等企业提供稳定的自我修复AI测试自动化。 他还为不同的客户提供移动培训和咨询服务。 他通过在会议上发表演讲,撰写文章,写博客,在他的YouTube频道上制作视频以及直接参与各种与测试相关的活动,积极地为测试社区做出贡献。 他目前居住在芝加哥,可以通过[email protected]与他联系。 他的网站是www.rajsubra.com和Twitter处理 -  @ epsilon11。 他有关测试,领导力和工作效率视频可以在这里找到 -  https://www.youtube.com/channel/UCoeNB2yyzE5WQDKeJCF0iOQ

猜你喜欢

转载自blog.csdn.net/wodeyijia911/article/details/87984827