软件测试前景会被ai取代吗_软件测试人员可能很快会被AI程序取代

软件测试前景会被ai取代吗

人工智能 , 意见 , 软件工程 (Artificial Intelligence, Opinion, Software Engineering)

Artificial Intelligence (AI), has been transforming multiple sectors of industries and impacting several aspects of our daily life. Mostly AI has acted prominently in the fields of automating manual processes. And therefore, we will be investigating how AI has affected the realm of software testing, automated testing in particular.

人工智能(AI)一直在改变行业的各个领域,并影响到我们日常生活的各个方面。 大多数情况下,人工智能在手动流程自动化领域中发挥了突出作用。 因此,我们将研究AI如何影响软件测试领域,尤其是自动化测试领域。

什么是软件测试? (What is software testing?)

Software testing is the process of assessing the performance of a program developed to check whether it is developed as per the client’s requirements and to find out whether there are faults and improve them before it is deemed ready for use.

软件测试是评估所开发程序的性能的过程,以检查该程序是否根据客户要求进行开发,并找出是否存在故障并在认为可以使用之前对其进行改进。

现有挑战 (The existing challenge)

Each time developers add new code, new tests must be carried out and it is the responsibility of the QAs to spend significant time on ensuring that new code does not break the existing codebase. Regression testing cycles are extremely time-consuming when undertaken manually and can burden QAs to a large extent.

每次开发人员添加新代码时,都必须执行新测试,并且质量保证机构有责任花费大量时间来确保新代码不会破坏现有代码库。 手动执行回归测试周期非常耗时,并且可能给QA造成很大的负担。

Traditional QA methods involve checking off a list of tasks that ensure the software is working the way it is meant to. In the beginning, when only a few features have to be tested, this is a feasible task. But as features increase, QAs face difficulty in meeting deadlines while also performing comprehensive tests. The more complex an application, the more difficult it is to make sure it receives full test coverage.

传统的质量检查方法涉及检查任务列表,以确保软件按预期方式工作。 刚开始时,仅需测试一些功能,这是一个可行的任务。 但是随着功能的增加,QA在完成最后期限的同时还要执行全面的测试也面临着困难。 应用程序越复杂,确保其获得完整的测试覆盖范围就越困难。

However, with the surfacing of AI, it has become possible to streamline the testing process. Given that, due to competition, new software and product launches must be accelerated since extended deadlines are not really an option. Thus, there is no option but to test smarter rather than harder.

但是,随着AI的出现,简化测试过程成为可能。 鉴于这种情况,由于竞争的缘故,必须延长新软件和产品的发布时间,因为延长期限并不是真正的选择。 因此,别无选择,只能测试得更聪明而不是更难。

人工智能如何克服这些挑战 (How AI can overcome these challenges)

The application of AI in software testing tools is focused on making the Software Development Life Cycle(SDLC) easier. Through the application of reasoning, problem-solving, and machine learning, AI can be used to help automate and reduce the amount of mundane and tedious tasks in the development and testing stages.

AI在软件测试工具中的应用着重于使软件开发生命周期(SDLC)更容易。 通过推理,问题解决和机器学习的应用,可以在开发和测试阶段使用AI来帮助自动化和减少平凡而繁琐的任务。

For example, consider that you are running a test automation framework to test a project of yours. Most of the time you don’t know which tests to run, so you run all of them or some predetermined set. So what if an AI-enabled bot can review the current state of test status, recent code changes, code coverage, and other metrics, decide which tests to run, and then run them? Such software can effectively replace the developer/tester in the decision-making process.

例如,假设您正在运行一个测试自动化框架来测试您自己的项目。 大多数情况下,您不知道要运行哪些测试,因此您可以运行所有测试或预定的测试集。 那么,如果启用了AI的机器人可以查看测试状态的当前状态,最近的代码更改,代码覆盖率和其他指标,确定要运行的测试,然后再运行它们,该怎么办? 这样的软件可以在决策过程中有效地替代开发人员/测试人员。

AI and machine learning apply reasoning and problem solving to automate and improve testing. AI in software testing helps reduce time-consuming manual testing, so teams can focus on more complex tasks, like creating innovative new features. Some of the ways that AI can optimize the software testing process are as follows:

人工智能和机器学习应用推理和问题解决方案来自动化和改进测试。 软件测试中的AI有助于减少耗时的手动测试,因此团队可以专注于更复杂的任务,例如创建创新的新功能。 AI可以优化软件测试过程的一些方法如下:

  • Enhanced Accuracy Traditional testing still requires human resources and let’s just admit that even the most experienced QA engineers are prone to making mistakes. The testers lose the focus on software QA and overlook some important defects because of extensive data. And that`s where the AI and machine learning technologies come into the scene. They teach systems to learn source analysis and apply knowledge in the future. In such a way, the AI tester comes up with more accurate results with each and every repetition. Thus, the use of AI technologies for data analysis eliminates human error probability.

    增强精度 传统测试仍然需要人力资源,我们只能承认,即使是最有经验的质量检查工程师也容易犯错误。 测试人员失去了对软件质量保证的关注,并且由于数据量大而忽略了一些重要的缺陷。 这就是AI和机器学习技术应运而生的地方。 他们教系统学习源分析并在将来应用知识。 通过这种方式,AI测试器在每次重复中都能得出更准确的结果。 因此,使用AI技术进行数据分析可消除人为错误的可能性。

  • Accelerating Timelines — Instead of having to go through thousands of lines of code, as manual testers have to do, AI can quickly sort through log files, scan code in seconds and detect errors in much lesser time. By incorporating AI into repetitive tests, QA engineers can focus on testing new features or pay particular attention to important parts of the software.

    加快时间线 — AI无需像手工测试人员那样去处理成千上万的代码,而AI可以快速分类日志文件,在几秒钟内扫描代码,并在更短的时间内检测到错误。 通过将AI纳入重复测试中,质量检查工程师可以专注于测试新功能或特别注意软件的重要部分。

  • Better Automation — AI program can evolve with changes in the code. They can adapt and learn to identify new functions. When AI bots identify a modification to the code, they can be programmed to decide if it is a new feature or some defect emerging from changes to the code.

    更好的自动化 -AI程序可以随着代码的更改而发展。 他们可以适应并学习识别新功能。 当AI机器人识别出对代码的修改后,可以对它们进行编程,以决定这是一个新功能还是代码更改中出现的某些缺陷。

  • Properly understood client requirements — In the process of software development, being able to understand what the client exactly wants is of paramount importance. By using AI, it is possible to examine similar websites and apps to determine what contributes to success among the target audience. AI can help to study a large number of competing products to identify their strengths. By achieving a proper understanding of what the client wants, they can create test cases to ensure that the product does not break when it comes to achieving those particular goals.

    正确理解客户需求 -在软件开发过程中,最重要的是能够了解客户的实际需求。 通过使用AI,可以检查类似的网站和应用程序,以确定哪些因素有助于目标受众的成功。 人工智能可以帮助研究大量竞争产品以确定其优势。 通过正确理解客户的需求,他们可以创建测试用例,以确保产品在实现这些特定目标时不会损坏。

基于AI的软件测试的当前状态 (The current state of AI-based software testing)

The current state of the practice uses autonomous and intelligent agents, referred to as “test bots” to automate activities such as application discovery, modelling, test generation, and failure detection. A combination of machine learning techniques is used to implement test bots. These include but are not limited to decision tree learning, neural networks, and reinforcement learning.

该实践的当前状态使用称为“测试机器人”的自主和智能代理来自动化诸如应用程序发现,建模,测试生成和故障检测之类的活动。 结合了机器学习技术来实现测试机器人。 这些包括但不限于决策树学习,神经网络和强化学习。

Machine learning allows the test bots to be robust and act under conditions of uncertainty, unlike traditional test automation tools and frameworks. Examples of AI-driven testing approaches that have formed over the last decade include:

与传统的测试自动化工具和框架不同,机器学习使测试bot变得强大并且可以在不确定的条件下运行。 在过去十年中形成的AI驱动测试方法的示例包括:

  • Differential testing — Comparing application versions, classifying the differences, and learning from the feedback of the classification.

    差异测试 —比较应用程序版本,对差异进行分类并从分类的反馈中学习。

  • Visual testing — Leveraging image-based learning and screen comparisons to test the look and feel of an application.

    视觉测试 -利用基于图像的学习和屏幕比较来测试应用程序的外观。

  • Declarative testing — Specifying the intent of a test in a natural or domain-specific language, and having the system figure out how to carry out the test.

    声明式测试 —以自然语言或特定于领域的语言指定测试的意图,并让系统确定如何进行测试。

  • Self-healing automation — Auto-correcting element selection in tests when the UI changes.

    自我修复自动化 —当UI更改时,在测试中自动更正元素选择。

Since 2014, there has been a spike in the number of vendors offering AI-driven testing services. The majority of these tool vendors are start-up companies targeting system-level testing of mobile applications, and the subject is generating some much-needed buzz in the industry. The easiest way to observe the power of AI is the usage of various tools and frameworks. Here are some of the most popular AI-driven testing tools:

自2014年以来,提供AI驱动的测试服务的供应商数量激增。 这些工具供应商中的大多数是针对移动应用程序系统级测试的初创公司,这个话题正在业界引起一些急需的关注。 观察AI功能最简单的方法是使用各种工具和框架。 以下是一些最受欢迎的AI驱动的测试工具:

Perfecto Perfecto

AI会偷走您的软件测试工作吗? (Will AI steal your software testing job?)

The currently most popular opinion regarding this question is that AI won’t replace you, but will assist you in your QA testing job. The main justification behind this opinion is that the use of AI in software development is still in its infancy, and the level of autonomy is much lower than seen in more evolved areas such as self-driving systems which are still being dominated by the humans themselves. But it is definite that the next step of AI aiding the humans is letting AI handle the whole process themselves. It’s just a matter of time.

关于此问题的当前最受欢迎的观点是,人工智能不会取代您,但会帮助您进行质量检查测试。 这种观点背后的主要理由是,人工智能在软件开发中的使用仍处于起步阶段,并且自主水平远低于更先进的领域,例如自动驾驶系统,该领域仍由人类自己主导。 。 但是可以肯定的是,AI协助人类的下一步就是让AI自己处理整个过程。 这只是时间问题。

But as we all know it, the growth of technology, particularly AI and machine learning is exponential, and since, it is not easy to predict future AI capabilities. Therefore the due date of AI taking over your testing job may be sooner than expected! Be ready!

但是众所周知,技术的增长,尤其是AI和机器学习是指数级的,因此,预测未来的AI功能并不容易。 因此,AI接管测试工作的截止日期可能比预期的要早! 准备好了!

Thank you for your valuable time reading this article. Stay safe!

感谢您宝贵的时间阅读本文。 注意安全!

资源资源 (Resources)

翻译自: https://medium.com/towards-artificial-intelligence/software-testers-may-soon-be-replaced-by-ai-programs-c7455b078145

软件测试前景会被ai取代吗

你可能感兴趣的:(软件测试,小程序,python,c++,ViewUI)