AI-TestOps —— 软件测试工程师的一把利剑

    • 写在前面
    • 软件测试的前世今生
    • 测试工具开始盛行
    • AI-TestOps 云平台
      • ● AI-TestOps 功能模块
      • ● AI-TestOps 自动化测试流程


写在前面

最近偶然间看到一句话:“软件测试是整个 IT 行业中最差的岗位”。这顿时激起了我对软件测试领域的兴趣,虽然之前未涉及过软件测试,但对软件测试还是很看好的,每当提到它我第一个想到的词就是“自动化”。当看到这句话后很是不解,软件测试究竟有多么“不堪”?怀着这样的疑问我对该领域进行了一些了解。

同时还发现了一款很不错的自动化测试工具 AI-TestOps,它在人工智能爆火的当下完美的与 Ai 进行了结合,初步体验后属实惊艳到了我。


软件测试的前世今生

软件测试(Software Testing)顾名思义就是对软件进行相关的测试,它是伴随着软件的产生而产生的。在早期的软件开发中,测试就是对软件进行相关调试,来纠正软件中的一些故障。调试通常是在代码开发完成、产品基本成型之后才会介入,也没有专业的人员来进行这项工作,基本上是由开发者在开发完成后自己来完成的。这个时期软件测试几乎被同等于代码调试。

这个格局被打破是在 1957 年,1957 年之后软件测试与调试被明确区分开来,它是一种专门发现软件缺陷的活动,由于“为了让我们看到产品在工作,就得将测试工作往后推一点”的思想,测试仍处于开发活动之后,目的就是用来确定自己的产品是否能正常工作。“先产品,后测试”。

直到二十世纪七十年代。1972 年美国北卡罗来纳大学举行了首届软件测试正式会议;1975 年 John Good Enough 和 Susan Gerhart 在 IEEE 上发表了《测试数据选择的原理》的文章,软件测试至此被确定为一种研究方向;1979 年 Glenford Myers 的《软件测试艺术》,正式对测试做出了定义:测试是为发现错误而执行的一个程序或者系统的过程

二十世纪八十年代早期,“质量”的号角开始吹响。软件测试定义发生改变,测试不单纯是一个发现错误的过程,而且包含软件质量评价的内容,还有着各类标准。1983 年 Bill Hetzel 在《软件测试完全指南》中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。该定义至今仍被引用。

测试工具开始盛行

二十世纪九十年代,测试工具 开始盛行,人民普遍意识到工具不仅仅是有用的,而且要对今天的软件系统进行充分的测试,工具必不可少。近 20 年来,随着计算机软件技术的飞速发展,软件测试领域的研究取得重大突破,在单元测试、自动化测试、负载压力测试以及测试管理等方面涌现了大量优秀的软件测试工具。

虽然软件测试技术的发展很快,但是其发展速度仍落后于软件开发技术的发展速度,这使得软件测试在今天面临着很大的挑战:

  • 软件在社会信息化和国民经济信息化中的作用越来越重要,产生的测试任务也越来越繁重;
  • 软件规模越来越大,功能愈加复杂,如何进行充分而有效的测试成为难题;
  • 面向对象的开发技术越来越普及,但是面向对象的测试技术却刚刚起步;
  • 对于分布式系统整体性能还不能进行很好的测试;
  • 对于实时系统缺乏有效的测试手段;
  • 随着安全问题的日益突出,如何对信息系统的安全性进行有效测试与评估,成为难题。

AI-TestOps 云平台

有挑战自然就伴随着突破,人类文明本身就是在突破挑战的过程当中实现进步的!针对软件测试发展的一系列挑战,一站式自动化测试工具 AI-TestOps 云平台应运而生。

正如龙测科技创始人师江帆博士所提出的理念:“我们相信机器代替人类来做软件测试是大势所趋!” 一样,AI-TestOps 云平台利用现代 AI 技术及先进测试算法,彻底改变了目前手工及自动化软件测试形态。对于 UI 自动化测试,创造性提出 AI+机器人+模型(ARM) 技术来构建稳定快速的测试工具,即:AI 学习生成业务流程图,测试用户通过组合流程图成为积木图,机器人通过视觉和机械化方式稳定执行下文有自动化测试流程演示。因此 AI-TestOps 能快速、高效、低成本地完成 .EXE 应用、Web 应用、iOS、Android、小程序、混合应用的 UI 自动化测试。这种越来越 智能 的测试方式轻松化解了测试任务繁重、功能复杂等诸多测试难题。

AI-TestOps 体验链接

在 AI-TestOps 中,包含着 APP 自动化测试Web 自动化测试Windows 自动化测试,基于页面元素的识别和定位来模拟用户行为,凭借精细化的 Al 图像学习能力,通过 OCR、OpenCV 等技术进行 UI 元素定位——自动执行任务——生成可视化测试报告。还有 龙测机器人系统 帮助用户实现利用机械臂模拟人工进行测试,以及龙测 NLP 实现“书写”即“操作”,测试更加智能与高效。

● AI-TestOps 功能模块

AI-TestOps 工作台界面如下,整体上呈简约风格;

在这里插入图片描述
点击右上角的“帮助”可进入龙测操作手册,AI-TestOps 的各项属性功能与操作方法一目了然,新手快速入门。

在这里插入图片描述
在工作区,第一个菜单为“项目”,可支持 Web、Windows、Linux、MacOS、Android、iOS 类型创建。

在这里插入图片描述
进入某一项目,可看到该项目的各项指标,以及对其进行用例、测试、数据等配置。

在这里插入图片描述
工作区的第二个菜单为“应用”,可查看已有应用和上传应用;管理已创建的的 Android、Windows、Linux、MacOS、IOS 应用,同一软件可上传多个版本。

在这里插入图片描述
工作区的第三个菜单为“设备”,有公有设备和私有设备,私有设备需自己上传。

在这里插入图片描述

● AI-TestOps 自动化测试流程

这里以 Web 端测试我的 CSDN 主页为例,整个流程分为四步:创建 web 项目→录制流程图→创建测试任务→查看测试报告。

首先创建项目,填写项目的名称、类型以及待测试的 URL;

在这里插入图片描述
接下来进入项目,创建新的测试用例。在这里我们便会使用到 AI-TestOps AI学习生成业务流程图 功能;

在这里插入图片描述
选择一个空闲设备开始录制;

在这里插入图片描述

如下动态 GIF 图展示了整个录制过程。先点击“录制”,然后在被测试的网站中进行相关测试操作;

在这里插入图片描述
完成录制后点击暂停,随后选择“保存”;

在这里插入图片描述

保存之后回到主页就可以看到 AI-TestOps 为我们自动生成的流程图,流程图可以生成多个,最后搭建为积木图;

在这里插入图片描述
接下来选择“任务”,新建任务,列表备选的就是我们刚刚生成的流程图,选择;

在这里插入图片描述
任务创建成功如下,可以看到任务还在执行中,等待即可;

在这里插入图片描述
待任务状态变为“已完成”,点击“详细”可以查看该任务的各项参数。如果不成功,AI-TestOps 会自动分析失败原因;

在这里插入图片描述
以下是最终报告。

在这里插入图片描述
至此,自动化测试完成。


为什么要单将 AI-TestOps 云平台拿出来介绍,其实在实际上手使用之后可以明显感受到它的优势所在。就拿 AI 学习生成业务流程图这一个功能来说,我们要做的仅是在被测网站上进行测试操作和录制即可,至于流程图 AI-TestOps 则会自动帮我们实现,保证准确度的同时极大的节省了人力和时间。而且在测试完成之后,各项指标清晰明了,包括失败原因都为我们分析的很明确,直接省去了艰难又让人头大的找 bug 环节。正实现了所谓的“机器代替人类来做软件测试”,在我看来 AI-TestOps 堪称软件测试工程师的一把“利剑”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/677886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fast.ai 机器学习笔记(二)

机器学习 1:第 5 课 原文:medium.com/hiromi_suenaga/machine-learning-1-lesson-5-df45f0c99618 译者:飞龙 协议:CC BY-NC-SA 4.0 来自机器学习课程的个人笔记。随着我继续复习课程以“真正”理解它,这些笔记将继续更…

ASUS华硕灵耀X双屏UX8402V工厂模式原厂Win11.22H2系统安装包,含WinRE恢复出厂时开箱状态自带预装OEM系统

适用型号:UX8402VV、UX8402VU 链接:https://pan.baidu.com/s/1D7tJshKTNFYO4YyzKX0ppQ?pwd3saf 提取码:3saf Zenbook Pro灵耀X笔记本电脑原装出厂Windows11系统 带有ASUS RECOVERY恢复功能、自带面部识别,声卡,网…

【RabbitMQ(二)】:Exchange 详解 | Message Convert 消息转换器

文章目录 03. 使用 Java 代码去操控 RabbitMQ3.1 快速入门3.1.1 创建父子项目3.1.2 编写代码 3.2 Work 模型3.3 RabbitMQ 中的三类交换机3.3.1 Fanout 扇出交换机3.3.2 Direct 交换机3.3.3 Topic 交换机 3.4 声明队列交换机3.4.1 方式一:书写 Config 类3.4.2 方式二…

webgis后端安卓系统部署攻略

目录 前言 一、将后端项目编译ARM64 二、安卓手机安装termux 1.更换为国内源 2.安装ssh远程访问 3.安装文件远程访问 三、安装postgis数据库 1.安装数据库 2.数据库配置 3.数据导入 四、后端项目部署 五、自启动设置 总结 前言 因为之前一直做的H5APP开发&#xf…

LLM之RAG实战(二十五)| 使用LlamaIndex和BM25重排序实践

本文,我们将研究高级RAG方法的中的重排序优化方法以及其与普通RAG相比的关键差异。 一、什么是RAG? 检索增强生成(RAG)是一种复杂的自然语言处理方法,它包括两个不同的步骤:信息检索和生成语言建模。这种方…

爬虫2—用爬虫爬取壁纸(想爬多少张爬多少张)

先看效果图: 我这个是爬了三页的壁纸60张。 上代码了。 import requests import re import os from bs4 import BeautifulSoupcount0 img_path "./壁纸图片/"#指定保存地址 if not os.path.exists(img_path):os.mkdir(img_path) headers{ "User-Ag…

【九章斩题录】Leetcode:判定是否互为字符重排(C/C++)

面试题 01.02. 判定是否互为字符重排 ✅ 模板:C class Solution { public:bool CheckPermutation(string s1, string s2) {} }; 「 法一 」排序 💡 思路:看到题目中说 "重新排列后能否变成另一个字符串",等等……重新…

如何升级 gpt4?快速升级至ChatGPT Plus指南,爆火的“ChatGPT”到底是什么?

提到 ChatGPT。想必大家都有所耳闻。自从 2022 年上线以来,就受到国内外狂热的追捧和青睐,上线2个月,月活突破1个亿!!! 而且还在持续上涨中。因为有很多人都在使用 ChatGPT 。无论是各大头条、抖音等 App、…

UUID算法:独一无二的标识符解决方案

引言 在分布式系统和大数据环境下,唯一标识符的生成和管理是一项关键任务。UUID(Universally Unique Identifier)算法应运而生,成为了解决重复数据和标识符冲突的有效工具。本文将探讨UUID算法的优势和劣势,分析其在分…

【Spring】

目录 前言 1.Spring框架中的单例bean是线程安全的吗? 2.什么是AOP? 3.你们项目中有没有使用到AOP? 4.Spring中的事务是如何实现的? 5.Spring中事务失效的场景有哪些? 6.Spring的bean的生命周期。 7.Spring中的循环引用 8.构造方法…

休斯顿NASA太空机器人进入最后测试阶段,或可模拟人类执行外星任务!

美国宇航局开发研制的太空智能机器人目前正在德州休斯顿的约翰逊航天中心接受最后的运行测试,距离太空智能化时代又要更进一步了! NASA表示,日前在德州休斯顿附近的约翰逊航天中心进行测试的机器人名为Valkyrie,是以北欧神话中的一…

Postgresql 的编译安装与包管理安装, 全发行版 Linux 通用

博客原文 文章目录 实验环境信息编译安装获取安装包环境依赖编译安装安装 contrib 下工具代码 创建用户创建数据目录设置开机自启动启动数据库常用运维操作 apt 安装更新源安装 postgresql开机自启修改配置修改密码 实验环境信息 Ubuntu 20.04Postgre 16.1 编译安装 获取安装…

.NET命令行(CLI)常用命令

本文用于记录了.NET软件开发全生命周期各阶段常用的一些CLI命令,用于开发速查。 .NET命令行(CLI)常用命令 项目创建(1)查看本机SDK(2)查看本机可以使用的.NET版本(3)生成…

159基于matlab的基于密度的噪声应用空间聚类(DBSCAN)算法对点进行聚类

基于matlab的基于密度的噪声应用空间聚类(DBSCAN)算法对点进行聚类,聚类结果效果好,DBSCAN不要求我们指定集群的数量,避免了异常值,并且在任意形状和大小的集群中工作得非常好。它没有质心,聚类簇是通过将相邻的点连接…

Android:内存泄漏检查内存优化

3.17Android优化 手机移动设备的内存是有限的,需要避免内存泄漏,优化内存使用。 1.java中四种引用类型 强引用、软引用、弱引用、虚引用。 强引用:使用类构造方法,创建对象,当内存超出了,也不会释放对象所占内存空间; String str = new String(‘1223’); 切断引用str=…

代码随想录算法训练营第44天 | 完全背包理论基础 518.零钱兑换II 377.组合总和 Ⅳ

完全背包理论基础 完全背包与01背包只相差在物品是无限取用的。因此和01背包相比第二层对背包容量的遍历应该是正序的&#xff0c;而且正因为这个正序&#xff0c;使得在纯完全背包问题中&#xff0c;背包容量和物品的遍历是可以倒过来的。 #include <bits/stdc.h> usi…

网络的基本概念和socket编程

网络的基本概念 1.协议1.1 协议的基本概念1.2 常见的协议 2.分层模型2.1网络七层OSI 7层模型&#xff1a;物数网传会表应(口诀)2.2TCP/IP模型2.3数据通信的过程2.4网络的设计模式2.5以太网帧的格式 3.SOCKET编程3.1网络字节序3.2 相关结构体和函数3.3 代码实现 1.协议 1.1 协议…

前端JavaScript篇之对象继承的方式有哪些?

目录 对象继承的方式有哪些&#xff1f;1. 原型链继承2. 借用构造函数3. 组合继承4. 原型式继承5. 寄生式组合继承 对象继承的方式有哪些&#xff1f; 1. 原型链继承 当使用原型链继承时&#xff0c;子类型的原型对象被设置为父类型的一个实例。这意味着子类型通过其原型可以…

VUE学习——数组变化侦测

官方文档 变更方法&#xff1a; 使用之后&#xff0c;ui可以直接发生改变。改变原数组 替换数组&#xff1a; 使用之后需要接受重新赋值&#xff0c;不然ui不发生改变。不改变原数组

第70讲axios后端请求工具类封装

axios工具类封装&#xff1a; // 引入axios import axios from axios;// 创建axios实例 const httpService axios.create({// url前缀-http:xxx.xxx// baseURL: process.env.BASE_API, // 需自定义baseURL:http://localhost:80/,// 请求超时时间timeout: 3000 // 需自定义 })…