译——基于微服务和AI重新定义软件测试

2020-08-28  海鹅 


Software testing and software testing vendors will need to fundamentally rethink and reshape their approach, given the new paradigms of programming and software development

软件测试和软件测试卖家需要从根本上对他们的测试方案重新思考和重新塑形,赋予软件新的程序和方法。


As an increasing number of industries and their workflows get disrupted by software, the complexity and importance of testing the software increases severalfold. As software seeps into workflows that were previously manual, the need for the software to elegantly handle the diversity of edge cases becomes paramount.

公司和他们的工作流被软件打断的情况在增加,软件测试的复杂程度和重要性也成倍增长。随着软件运用到之前是手动的工作流程,软件完美处理各种各样问题变得极其重要。


Such elegance does not come without a price. Dev teams need to gain quick expertise on complex toolsets, stomach various waves of devops adoption, maintain a TDD, test-everything approach, define a test automation strategy, and achieve code coverage while shipping high-quality code.

这种完美情况不付出代价是不可能实现的。开发团队需要迅速掌握复杂工具套件的专业知识,欣然采纳各种形式的开发运维,维持测试驱动开发(TDD),测试所有的方法,定义一个自动化测试策略,并且在传输高质量代码的时候完成代码覆盖。


A few key software testing concepts are increasingly important to testing teams today.

现今对于测试团队来说,一些重要的软件测试概念越来越重要了。


Increased use of microservices

微服务运用的增加


As new applications and old systems are designed and refactored, the number of microservices used will increase—according to a 2017 report by Research and Markets, the microservices market is expected to reach $32 billion by 2023.

根据2017年由 Research and Markets发布的一个报告来看,当新的应用和旧的系统设计和重构的时候,微服务的使用数量将会增加,截止2023年对微服务市场的市值期望达到320亿。


Microservices are lightweight services that offer a small functionality as a service to an app. Modern apps tend to be orchestrators of multiple microservices. These microservices manage complex workflows that route, distribute, consume, and coordinate multiple services in a specific order to ensure that the larger scenario is enabled.

微服务作为给APP的服务,能提供小功能的轻量服务。现在的APP倾向于成为各种微服务的协调者。这些微服务能管理复杂的工作流的路径,分配,消耗和详细的订单的各种服务的协调以保证更大的方案能够实现。


As the number of microservices per app goes up, the challenge and complexity of orchestrating that app workflow grows. Testing in such an environment becomes more challenging. The test environment now needs to offer test versions of each of the microservices individually deployed before the application workflow can be tested.

随着每个APP的微服务数量的增长,APP工作流协调的挑战和复杂性也在增加。在这种环境下测试变得更具挑战性。现在的测试环境要求在应用工作流能被测试前提供每一个独立部署的微服务测试版本。


In addition, microservices have very specific requests and responses. Building workflows that combine multiple microservices requires the data transferred among the services to be appropriately transformed. This adds an additional level of complexity and changes how test metrics are defined and appropriate automation is added to the system.

除此之外,微服务有十分明确详细的要求和应答机制。构建工作流,结合各种各样的微服务,要求数据在服务之间的传输需要正确地转换。这将增加其他层面的复杂性,并且改变测试衡量指标的定义方式以及在系统增加适合的自动化功能。


Growing use of AI and machine learning

人工智能和机器学习的增加


As AI becomes more prevalent and ubiquitous, it is bound to start showing up in most applications. AI can offer predictive capabilities in applications that drive or inform the application workflow. As applications mature, the number of AI models per application will grow. Testing an AI-driven application is very different and requires the ability to measure and monitor the quality of the AI model and the application’s usage of the model to drive decisions.

随着人工智能更加的流行和普遍,在绝大部分的应用里无疑会开始出现人工智能。人工智能在应用的驱动或者通知应用工作流上可以提供预测功能。当应用成熟,每个应用上的人工智能模型数量将会增长。测试人工智能驱动的应用是非常不一样的,要求具备衡量和操纵人工智能模型的质量的能力和驱动决策的模型功能的能力。


Advancements in machine learning have even raised doubts as to whether machines will take over testing altogether. For example, a platform names Apdiff uses advanced or clever fuzzing to not only interact with apps, while its algorithms are able to determine whether an outcome of a specific action is likely to expose defects.

机器学习的进步甚至引起了人们对机器是否会完全取代全部测试的怀疑。例如,一个名叫Adiff的平台使用先进的或机敏的模糊测试不仅实现了跟应用的交互,并且他的算法能够决定一个具体的的动作产生的结果是否可能暴露缺点。


Whether robots will or won’t take over testing jobs, software testing will need to advance and ensure that the models themselves are tested: The data used for training needs to be of high quality, the training setup well designed, and the trained models easily transported to the production environment. This is in addition to the need to test and ensure that the application workflow consumes the AI prediction appropriately and accurately.

机器人会或者不会取代测试的工作,软件测试需要发展并且保证模型本身能够进行测试:用于训练的数据需要具备高质量,训练安装程序被很好的设计,并且训练的模型可以简易的运输到生产环境中去。除此之外,还需要保证应用工作流适当地和准确地使用人工智能预测功能。


Push to real-time processing

推动实时程序


There is a push to make an increasing number of applications real-time. Driven by consumer products that offer instant gratification, enterprise software is also feeling the push towards real time processing ability. This can range from servicing client requests in real time to dealing with operational, supply chain issues in real time. To include this real-time processing capability in software, applications will need to be redesigned. In addition, real-time processing will put an additional burden on the application making it more susceptible to traffic patterns and behavior changes. This opens up another dimension for software testing where the ability of the software to continue performing at expected quality levels at peak times becomes very important.

推进实时应用数量的增长。以客户为导向的产品需要即时使人满意,软件企业也感到了朝着实时程序处理能力发展的压力。范围从实时服务客户需求到处理运营中供应链问题。为了在软件中实现实时处理的能力,应用需要重新设计。此外,实时处理会给应用增加额外的负担,使得更容易受流量模式和行为变化的影响。这为软件测试开辟了一个新的维度,软件以期望的质量水平在高峰时段持续发挥作用的能力变得十分重要。


Higher data volume

更高的数据量


Hand in hand with more software driven workflows comes the increased generation of data. As more data is generated, it needs to be collected, moved, stored, processed, and analyzed. Quality testing is challenged and redefined by growing volumes of data, the availability of big data processing technologies, and expectations for services to consume all of the available data to drive quality of service. Organizations need to find new ways to make sense of these huge data volumes. The ability to process data with high quality is key to offering differentiated services and has the potential to, over time, become the primary driver of value in the user experience.

与更多软件驱动的工作流一起并驾齐驱的是数据的增长。随着更多的数据产生,它需要被收集,移动,储存,处理和分析。质量测受到了挑战,并且被数据量的增长重新定义,大数据的处理技术的能力,所有可获取数据驱动消耗服务质量的期望。机构需要找到新的方式赋予这些巨大数量的数据意义。高质量处理数据的能力是提供差异化服务的关键,并且随着时间流逝,能在用户体验中能成为潜在的基础价值驱动。


Push towards personalization and customization

推进个性化和定制化


As software-driven workflows and products grow, they present the opportunity to personalize and customize the user’s experience. Personalization and customization has become and will continue to be a differentiator and products/services that are able to achieve this will have a lasting presence in their user’s value chain. However, personalization and customization requires the ability to test and ensure that the experience is personalized at the individual user level. This adds to the level of complexity of testing that is required to ensure that other, crucial functionality is not compromised in the process of applying personalization and customization techniques.

随着软件驱动工作流和产品的增长,他们在客户体验中提供了个性化和定制化的机会。个性化和定制化已经成为并且持续成为一种差异化,产品或者服务能够实现这一点,将会持续存在于为他们的用户价值链中。然而,个性化和差异化要求测试能力和保证在独立的用户层面的体验是个性化的。这增加了测试的复杂程度,要求保证其他的,重要的功能在运用个性化和定制化技术的过程中不会达不到标准。


Regulatory pressure for higher transparency

监管压力提高透明度


Higher regulatory pressure will also drive testing complexity. Not only is testing required to offer a high level of service to customers, regulatory requirements will continue to challenge testing teams. The upcoming GDPR enforcements are only one example of the need for testing teams to reach an extremely high level of transparency and auditability. The requirement for transparency will grow the need for testing coverage and confirmation of software workflows that perform according to specification. In addition, testing will need to ensure that all testing logs are available for inspection, sharing and analysis. Internal stakeholders and external regulators will request and require access to data that confirms that the software is designed to and verified to perform as expected.

更高的监管压力也会增加测试复杂性。不但测试要求为客户提供一个高水准的服务,监管要求继续挑战着测试团队。即将颁布的GDPR只是其中一个要求测试团队达到一个极其高水平的透明度和可审核性的例子。对透明的要求将增加根据具体要求发挥作用的测试覆盖范围和软件工作流的确认。另外,测试需要保证所有的测试日志是可以监控,分享和分析的。内部的股东和外部的监管人员将请求和要求能获取数据,以确认软件的设计和验证的发挥符合预期。


Software testing and software testing vendors will need to fundamentally rethink and reshape their approach in these new paradigms of programming and software development. You can expect them to bring new solutions, products, and services to the market to help enterprises deal with the complexity of software and the intricate workflows that make up modern, digital products and services.

软件测试和软件测试卖家需要从根本上对他们的测试方案重新思考和重新塑形,赋予它新的程序和方法。你可以期期望们带着新的解决方案,产品,和服务到市场中帮助企业解决软件的复杂性和构成现代数字产品和服务错综复杂的工作流。

by Gilad David Maayan

龙测科技,自动化测试AI驱动,我们在行动。

http://www.dragontesting.cn

190°/1904 人阅读/0 条评论 发表评论

登录 后发表评论