自动化测试用例设计及原则(自动化测试用例设计及原则有哪些)
ccwgpt 2024-10-24 09:13 26 浏览 0 评论
引子
最近在查看同事写的robot自动化用例时候,发现一些问题。没有搞清楚一个完整自动化用例的标准是什么。把自动化用例前置准备工作也算作一个自动化case。根据自己理解谈谈自动化用例设计和开展自动化测试的一些原则。
原则一:每个自动化用例可以独立运行
每个自动化用例应该是没有依赖关系的,可以独立运行的,比如测试一个电商网站,第一个测试用例是用户登录,第二个例子是添加商品到购物车,需要用户登录,并且依赖第一个测试用例,这样的用例设计是有问题,因为违反了我们说的独立运行原则。那如果我的测试用例重点不是测试登录,而是添加商品到购物车,需要先登录,这个登陆的前置条件应该放在哪里呢?这个时候需要讲解一下自动化框架基本都会自带的一个功能模块,setup和teardown。接下来我们借助自动化测试框架RF(Robot Framework)来进行讲解。
RF框架的三种 set up/teardown
- 第一种:Suite setup and teardown 测试套件层面。所谓测试套件(suite)就是一组测试用例集合,在RF里面就是一个Robot文件。也就是说这个层面的setup和teardown只发生在一组测试的开始前和结束后。并且RF最终teardown的log也是在最前面的。所以根据log没法看出关键字执行顺序。
Suite Setup Open Browser To Login Page
Suite Teardown Close All Browsers
先来看一个组用例:
针对这组测试用例,我们发现每组测试用例前置条件都是用户登录,于是我们可以把用户登录这个关键字抽出来,放到Testcase setup的地方,这样减少我们用例代码的冗余.
Test Setup Open Browser To Main Page
Test Teardown Close All Browsers #测试结束之后执行关键字
这时候我们发现setup和teardown是按照执行顺序出现的了。
- 第三种: Testcase setup/teardown。 和第二种类似,只是针对单个case作用,而不是一组case。当case中出现这个setup会覆盖写在setting处的setup
Overridden setup [Documentation] Own setup, teardown from setting table [Setup] Open Application App B Do Something
原则二:测试用例之间不应该有包涵关系
如果A用例包含B用例,那么B用例已经冗余了,不需要重复执行,冒烟测试用例除外。
原则三:测试数据应该自动创建和销毁
自动化测试需要的测试数据包括测试坏境也应该尽可能的自动创建和销毁。有条件话可以尝试采用docker容器化的方式运行自动化用例。
原则四:自动化应该优先覆盖需要重复测试的核心功能
一般情况下,新功能是来不及做自动化测试和覆盖的。需求变化快的模块也是不适合做自动化的。覆盖产品的核心功能,也就是优先从冒烟测试开始做自动化测试。
原则五:自动化开展顺序应该是自底而上
项目的自动化开展顺序应该是从单元测试开始,然后才是API测试,模块测试,最后才是UI自动化。很多团队本末倒置了,一上来就搞UI自动化,然后发现成本太高,进度太慢,然后下个结论,我们项目不适合做自动化。殊不知单元测试的自动化才是效率最高收益最高的,UI自动化应该是最后一步了。这里借用网上一个图来说明自动化测试的经典的金字塔模型。越往上,越接近用户,自动化测试效率越低,成本越高,反之,越往下,越接近开发,自动化测试效率越高,成本越低。
原则六:不要一开始就想所有东西自动化
自动化测试的本质是减少回归测试的重复劳动,提高测试效率,对于大部分中小公司来说,一上来就想吃成个胖子,全部自动化是不可能的,刚开始开展自动化可以分析每次测试流程的时间瓶颈,到底是环境安装配置,还是数据准备,还是执行用例最花时间,从最能提高效率或者受益最大的部分开始,简而言之就是手动+自动化的方式。同时还要考虑团队人员的技术水平,而不是花大量时间精力为了自动化而搞自动化,结果最后发现比手动测试成本还高,就很尴尬了。
*本文来源于网络,如有侵权,请及时联系删除
https://testerhome.com/topics/20396
相关推荐
- 盲盒小程序背后的技术揭秘:如何打造个性化购物体验
-
在2025年的今天,盲盒小程序作为一种新兴的购物方式,正以其独特的魅力和个性化体验吸引着越来越多的消费者。这种将线上购物与盲盒概念相结合的应用,不仅为消费者带来了未知的惊喜,还通过一系列技术手段实现了...
- 小程序·云开发已支持单日亿级调用量,接口可用率高达99.99%
-
2019-10-1914:1210月19日,由腾讯云与微信小程序团队联合举办的“小程序·云开发”技术峰会在北京召开。会上,微信小程序团队相关负责人表示“小程序·云开发”系统架构已经支持每天亿级别的...
- 程序员副业开启模式:8个GitHub上可以赚钱的小程序
-
前言开源项目作者:JackonYang今天推荐的这个项目是「list-of-wechat-mini-program-list」,开源微信小程序列表的列表、有赚钱能力的小程序开源代码。这个项目分为两部分...
- 深度科普:盲盒小程序开发的底层逻辑
-
在当下的数字化浪潮中,盲盒小程序以其独特的趣味性和互动性,吸引着众多消费者的目光。无论是热衷于收集玩偶的年轻人,还是享受拆盒惊喜的上班族,都对盲盒小程序情有独钟。那么,这种备受欢迎的盲盒小程序,其开发...
- 微信小程序的制作步骤
-
SaaS小程序制作平台,作为数字化转型时代下的创新产物,不仅将易用性置于设计的核心位置,让非技术背景的用户也能轻松上手,快速制作出功能丰富、界面精美的小程序,更在性能和稳定性方面投入了大量精力,以确保...
- 携程开源--小程序构建工具,三分钟搞定
-
前言今天推荐的这个项目是「wean」,一个小程序构建打包工具。在wean之前,大量小程序工具使用webpack进行打包,各种loader、plugin导致整个开发链路变长。wean旨在解...
- 校园小程序的搭建以及营收模式校园外卖程序校园跑腿校园圈子系统
-
校园小程序的架构设计主要包括云端架构和本地架构两部分。云端架构方面,采用Serverless架构可以降低技术门槛,通过阿里云、腾讯云等平台提供的云服务,可以实现弹性扩容和快速部署。例如,使用云数据库、...
- 盲盒小程序开发揭秘:技术架构与实现原理全解析
-
在2025年的今天,盲盒小程序作为一种结合了线上购物与趣味性的创新应用,正受到越来越多用户的喜爱。其背后的技术架构与实现原理,对于想要了解或涉足这一领域的人来说,无疑充满了神秘与吸引力。本文将为大家科...
- 月活百万的小程序架构设计:流量暴增秘籍
-
从小程序到"大"程序的蜕变之路当你的小程序用户量从几千跃升至百万级别时,原有的架构就像一件不合身的衣服,处处紧绷。这个阶段最常遇到的噩梦就是服务器崩溃、接口超时、数据丢失。想象一下,在...
- 认知智能如何与产业结合?专家学者共探理论框架与落地实践
-
当前,以大模型为代表的生成式人工智能等前沿技术加速迭代,如何将认知智能与产业结合,成为摆在各行各业面前的一个问题。论坛现场。主办方供图7月4日,2024世界人工智能大会暨人工智能全球治理高级别会议在...
- 现代中医理论框架
-
...
- 认知行为(CBT)中的ABC情绪理论
-
情绪ABC理论是由美国心理学家阿尔伯特·艾利斯(AlbertEllis1913-2007)创建的理论,A表示诱发性事件(Activatingevent),B表示个体针对此诱发性事件产生的一些信...
- 说说卡伦霍妮的理论框架,对你调整性格和人际关系,价值很大
-
01自在今天我主要想说下霍妮的理论框架。主要说三本书,第一本是《我们时代的神经症人格》,第二本是《我们内心的冲突》,第三本是《神经症与人的成长》。根据我的经验,三本书价值巨大,但并不是每个人都能读进去...
- 供应链管理-理论框架
-
一个最佳价值的供应链,应该是一个具有敏捷性、适应性和联盟功能(3A)的供应链,其基本要素包括战略资源、物流管理、关系管理以及信息系统,目标是实现速度、质量、成本、柔性的竞争优势。篇幅有...
- 微信WeUI设计规范文件下载及使用方法
-
来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。WeUI是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信Web开发量身设计,可以令用户的使用感知...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- bootstrap框架 (43)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- express框架 (43)
- scrapy框架 (52)
- beego框架 (42)
- java框架spring (43)
- grpc框架 (55)
- 前端框架bootstrap (42)
- orm框架有哪些 (43)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)