【软件测试】如何设计自动化测试脚本

news2024/11/23 9:45:46

 企业中如何设计自动化测试脚本呢?今天我们就来为大家分享一些干货。

一、线性设计

线性脚本设计方式是以脚本的方式体现测试用例,是一种非结构化的编码方式,多数采用录制+回放的方式,测试工程师通过录制+回访的访问对被测系统进行自动化测试,录制的脚本会产生某些冗余的代码内容或函数及脚本。

线性设计的特点:

  • 测试用例已脚本方式编写
  • 脚本开发成本较低
  • 对测试人员编码的无经验要求
  • 不需要提前对测试框架进行设计与开发
  • 测试过程中的数据是写死在脚本中的会出现冗余
  • 脚本的维护比较困难,成本非常高
  • 测试人员各自为主,缺少复用

二、结构化设计

结构化设计是以函数/方法的形式进行编写,主要是通过循环来控制测试流程及测试脚本,如使用for循环、while循环、if...else...等循环或分支语句实现对函数的不同条件的判断及场景的调用。

结构化设计的特点:

  • 测试用例在脚本中通过函数的方式体现
  • 测试脚本编码能力较线性脚本有更高的要求
  • 需要测试人员具备良好的代码设计能力与编码能力
  • 测试数据依然在脚本中写死
  • 相对较为稳定,所需要的维护成本较线性脚本相对较低

三、共享化设计

共享化设计是将脚本中公共的函数/内容在整个测试过程中进行共享,方便其它脚本的调用,减少了代码的冗余。让被测系统实现组件化的互相调用。

共享化设计的特点:

  • 测试用例在脚本中编写,同时需要便于其它脚本的调用
  • 开发成本较低,减少了大量的冗余脚本内容
  • 对测试人员的代码设计能力有较高要求
  • 由于需要组件化进行设计,对测试人员的编码能力要求较高
  • 脚本的维护和成本较低

四、数据驱动设计

数据驱动设计是将测试数据与测试脚本进行分离,以外部数据文件的方式进行测试数据管理,减少耦合,在测试过程中需要对测试数据进行修改时,仅需修改外部数据文件中的内容即可,测试脚本中的代码内容不做改动,从而减少频繁修改代码产生的问题。

数据驱动设计的特点:

  • 测试用例的脚本与测试数据分离,需要测试数据时进行I/O读取
  • 参数化数据读取与写入相对来说,对测试人员的编码能力进一步提高
  • 测试数据独立进行保存与维护
  • 测试脚本的维护成本较低
  • 一般推荐在需要测试正反向测试时使用
  • 测试数据能够复用,进一步减少了代码的冗余情况

五、关键字驱动设计

关键字驱动是将所有需要执行的业务操作中的公共的操作独立进行封装,所有业务调用公共的操作方式,而对于程序的控制也以函数的方式进行驱动,即公共操作,程序控制,测试数据都通过外部数据文件进行管理和读写,关键字驱动的基础的数据驱动。

关键字驱动设计的特点:

  • 关键字驱动对于测试人员的编码能力要求非常高,需要大量的编码经验积累
  • 关键字驱动中测试用例是以外部数据文件的方式进行组织的
  • 对于整体测试框架的设计能力要求较高
  • 能够极大的降低其它测试人员的编码能力要求
  • 整体框架的维护成本非常低
  • 支持多个项目复用,同一套框架可以不断复用在其它的项目中

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

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

相关文章

为何零信任架构身份管理平台更可靠?

随着信息技术的不断进步,云计算、物联网以及移动设备的普及,信息泄露等安全问题愈发频繁。近期,一起某高校学生的信息泄露事件引发了大家的广泛讨论。该校学生利用其身份便利,非法获取了大量学生的姓名、学号、照片等隐私信息。 …

租赁小程序开发|租赁小程序定制|租赁系统源码定制功能

租赁小程序适合的产品开发范围广泛,可以涵盖各个行业和领域。下面将介绍租赁小程序适合的产品开发,并探讨其优势和应用场景。   一、租赁小程序适合的产品开发   物品租赁:租赁小程序可以用于各种物品的租赁,比如自行车、电动…

Redis基础 进阶项目实战总结笔记

文章目录 一、启动的三种方式1.默认启动2.指定配置启动3.开机自启动 二、数据类型1.string:字符串2. hash:哈希3. list:列表4. set:集合5. sorted set:有序集合 三、黑马课程的进阶项目实战总结博文笔记Redis实现短信登…

【个人笔记】linux的cd命令与目录结构理解

cd命令 cd(英文全拼:change directory)命令用于改变当前工作目录的命令,切换到指定的路径。 若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。 另外,~ 也表示为 home 目录 的…

uniapp 小程序 图片上传 实时拍照(仅拍照)限制上传5张 可预览 可删除

效果图: common.js /*** 预览图片*/ const previewImage (current,list)>{// 预览图片uni.previewImage({current: current,urls: list}); } /*** 删除图片*/ const removeImage (current,list)>{var photoFilesList list;photoFilesList.splice(curren…

【IM群发苹果日历】获取推送通知的设备标识符(Device Token)

苹果日历群发部署设置推送服务器推送服务器,用于向苹果日历应用的设备发送推送通知。推送服务器需要能够与Apple Push Notification Service (APNs) 进行通信。怎样来做? 部署设置推送服务器并与APNs进行通信需要以下步骤: 获取APNs证书&am…

高薪Offer收割机之redis集群

单节点的redis并发能力是有限的,如果需要进一步提高redis的并发能力,就需要搭建集群。 Redis中的集群分为三种: 主从复制,哨兵模式,分片集群 先来看一下主从复制: 在主从集群中一个主节点可以有多个从节…

Qt应用开发——QLabel的使用

目录 一、构造函数 二、属性和方法 三、实例一 显示内容和设置样式 四、实例二 使用html处理超链接 五、实例三 显示图像 六、实例四 显示GIF 七、实例五 伙伴机制 QLabel继承于QFrame,作为Qt Wdiget最基础也是最常用的控件,在实际开发中&#xf…

【C++】STL优先级队列(priority_queue)功能介绍以及模拟实现

优先级队列 前言正式开始priority_queue 基本介绍优先级队列的适配器第三个模板参数compare模拟实现priority_queue仿函数 前言 点进来的小伙伴不知道学过数据结构里的堆没有,如果学过的话,那就好说了,优先级队列就是堆,如果没学…

ViewModel实例什么时候被回收

作者:TechMix 一、ViewModel存在的意义? ViewModel做为JetPack中重要的组件,翻译成中文就是“视图模型”,根据分离关注点原则,ViewModel的出现,主要是为了分担Activity中的职责,专门用于存放和…

谷歌云 | Document AI 引入了强大的新自定义文档拆分器来自动化文档处理

【本文由Cloud Ace整理发布。Cloud Ace是谷歌云全球战略合作伙伴,拥有 300 多名工程师,也是谷歌最高级别合作伙伴,多次获得 Google Cloud 合作伙伴奖。作为谷歌托管服务商,我们提供谷歌云、谷歌地图、谷歌办公套件、谷歌云认证培训…

Orange:一个基于 Python 的数据挖掘可视化平台

本篇介绍一个适合初学者入门的机器学习工具。 Orange 简介 Orange 是一个开源的数据挖掘和机器学习软件。Orange 基于 Python 和 C/C 开发,提供了一系列的数据探索、可视化、预处理以及建模组件。 Orange 拥有漂亮直观的交互式用户界面,非常适合新手进…

测试用例(3)

功能测试用例方法: 等价类 边界值 因果图 正交实验分解法 判定表驱动分析方法 非功能性的测试用例方法: 错误推测法 功能图分析方法 场景: 场景设计方法 1) 在任何情况下都必须使⽤边界值分析⽅法,经验表明⽤这种⽅法设…

CGT Asia嘉年华|3D细胞培养与类器官研发峰会10月广州召开

类器官指利用成体干细胞或多能干细胞进行体外三维(3D)培养而形成的具有一定空间结构的组织类似物,是近10年来干细胞领域发展最快的研究热点之一。2022年,FDA 通过现代化法案 2.0,批准全球首个完全基于“类器官芯片”研…

pandas 笔记:pivot_table 数据透视表\pivot

1 基本使用方法 pandas.pivot_table(data, valuesNone, indexNone, columnsNone, aggfuncmean, fill_valueNone, marginsFalse, dropnaTrue, margins_nameAll, observedFalse, sortTrue)2 主要参数 dataDataFramevalues要进行聚合的列index在数据透视表索引(index…

# Linux下替换删除文件中的颜色等控制字符的方法

Linux下替换删除文件中的颜色等控制字符的方法 文章目录 Linux下替换删除文件中的颜色等控制字符的方法1 Linux下的控制字符(显示的文字并不是他本身):2 颜色字符范例:3 替换4 最后 我们在shell编程显示输出时,会定义文…

【Java】一个简单的接口例子(帮助理解接口+多态)

要求: 请实现笔记本电脑使用USB鼠标、USB键盘的例子 1. USB 接口:包含打开设备、关闭设备功能 2. 笔记本类:包含开机功能、关机功能、使用 USB 设备功能 3. 鼠标类:实现 USB 接口,并具备点击功能 4. 键盘类&am…

人才输送|我的“捷码低代码工程师”转型之路!

最新职位 招聘岗位:低代码工程师 需求公司:上海北斗西虹桥基地 应聘条件:1、本科以上,最好硕士;2、有三年以上开发经验; 工作内容:带领团队用捷码低代码平台进行项目开发。 工作地点&#xff1a…

长城汽车Hi4技术品牌成果初现,大象转身必将势不可挡

今年1-6月,长城汽车销售52万辆,新能源车型销售9.3万辆,同比增长47%;智能新能源新产品密集上市,新能源销量与占比逐月攀升,6月销售超2.6万辆,占比突破25%,皆创历史新高; 全…

文档翻译成中文怎么弄?今天分享文档翻译免费要怎么弄

有一天,小华来到了一个外国小镇。然而,他发现镇上的路牌、菜单和旅游手册都是用外语写的,让他感到非常困扰。他不知道该去哪里游玩,也无法理解当地的文化和历史。他非常喜欢这个小镇的风景,但是他无法读懂他们这里的一…