实施自动化测试的五个条件

news2024/11/17 5:23:54

摘要:

谈到什么是组成一次自动化测试的“恰当实施”经常会关注你需要用的工具,但是那仅仅是等式的一部分。巴斯 迪杰斯特拉详细说明了你需要考虑的其他四件事,他们如何致力于你的自动化测试的成功,以及关联到不能适当关注它们中任一件的风险。

为了团队指望快速传送质量,执行自动化测试是软件开发周期中一个重要组成部分。测试自动化,无论如何,当恰当实施时只能成功。论及什么组成测试自动化的“恰当实施”经常关注于任务必须使用的什么工具,或者最好(假如甚至有这样一个事物)或者最高效的为给予的任务使用特定工具的方法。

依我看来,虽然,使用的工具只是整体自动化测试方程式的一个部分。任何成功的自动化测试的实施是有五个独特的部分组成的。

在这篇文章,我们看一看这些部分的每一个,他们如何致力于你的测试自动化实施的成功,以及关联到不能适当关注它们中任一件的风险。

1.测试自动化工具

虽然不是在成功的测试自动化实施中充当角色的唯一因素,工具显然在你的自动化努力整体结果中起了影响。在测试下选择一款工具不够与你的应用相配,或者一个你的自动化团队不适合的技能组合,将导致少于最优的结果。

甚至比选择工具更重要的是,无论如何,问你自己到底什么是正确的在你想要覆盖你的自动化测试里,并且再决定更高效的获取那个结果的方法。一个需要被问到的问题的极限例子是在什么级别上一个特定的功能模块或者业务逻辑需要被确认。

你想要确认你的用户能打开你的网店,搜索一个特定的产品,并且接着放置并注意排序吗?你可能将想要使用端到端的用户接口驱动测试去检查这个。假如你正要确认一块逻辑的正确性以决定是否一个用户被允许去购买一个特定的物品(比如,由于在国家或者乡村的标准),然后你可能将能在低水平测试下写挂钩于你的应用程序的测试,比如一个应用程序接口或者甚至简单的代码分类。这组成了一个不同的为测试的范围和方法并且,结果,需要一个不同的工具。

简而言之,为了确定你能第一时间花时间在如何达到要求结果之前知道你的自动化测试需要验证什么。记住在使你的工具做它并不被设计的事情里有一个重大风险。

2.测试数据

任何严肃的测试自动化解决方案的另一个重要的因素是管理测试数据的方法。测试范围越广,越重要,但是也是越要求的,测试数据管理来了。

当在单元测试里你能远离模拟所有你的测试依赖的数据,当你开始在集成上工作时或者端到端测试,你将需要在测试下呈现你应用程序里特定的数据。并且,为了使事情更加复杂,你将经常在处于试验阶段同时在某一个特定的国家里要其他系统里的数据以与你的连通的应用程序交互。

有一些在这些测试类型中处理测试数据的方法:

  • 在测试开始阶段创造要求的测试数据
  • 在开始测试前为了存在的测试数据去查询系统
  • 开始测试执行前在测试阶段初始化你的应用程序数据库

这些方法每一个有它的潜在危险:

  1. 在测试的开始阶段创建测试数据增加测试执行时间,在测试本身甚至开始启动前增加失败的风险,并且导致很多无用的测试数据假如没有合适的数据清理程序。
  2. 当你在开始测试前为存在的测试数据去查询系统时,你启动了偶然使用非法测试数据的风险,或者没有有着合适的优先级出现在系统里的测试数据。
  3. 在测试执行前初始化数据库让你以数据库快照去管理并保持更细——那便是,假如你甚至首先被允许执行一个数据库恢复程序。
  4. 注意没有合适的为集成和端到端测试的测试数据处理方法。无论如何,选择错误的程序,或者根本未能定位测试数据问题,将可能导致自动化测试解决方案变得不可重复利用,不可维护,或者不可测量。
  5. 整块材料正快速地重蹈恐龙的覆辙。现代信息技术系统由许多相互连通的组件,服务,和为传递业务价值而工作一起的应用程序组成。对测试目的,无论如何,这通常不是好消息:不得不管理和依赖于可用性的独立性,尤其是那些在你的控制循环外的那些,为了你的集成和端到端测试能引起很多间接费用,挫折,和测试时间的延迟。依然,当你想要创造和使用自动测试作为你的测试方法的一部分时可靠性和易管理的测试环境是关键。
  6. 一个减轻失败或者不存在的测试环境的风险的办法是使用仿真技术比如桩,模拟,和服务虚拟化以复制在你的测试环境下关键性的而难获取的独立性的行为。做模拟真实的独立性行为的仿真足够完成你想要执行的测试用例能大大提升你的自动化测试速度——并且,因此,你的开发效果。
  7. 此外,当虚拟环境被恰当地创建(比如,通过杠杆作用集装箱化)时,重建一个相同测试环境的新实例,有着相同的测试数据和其他特性完成,使它可能从一个自动化移向确实的持续性测试,假如你正要适应持续性的传递时这作为一个越灵活的方法且更好地对市场需求增长的反应继而成为先决条件。
  8. 自动化测试执行作为结果生成的报告应该成为任何可靠的测试自动化方法的重要的一部分。创造好的测试结果报告经常被忽略,虽然它是潜在的时代——(和生命——)在任意测试自动化项目里节省了任务。好的报告远超乎展示测试运行的数量,通过的,和失败的,虽然只有它也比什么都没有好。
  9. 为了使一份测试执行报告变得确实有价值,需要被执行的测试(注意为了任何好的报告清晰的命名你的测试并且不含糊的格式是基础的)是什么可视化并且不仅是结果是什么(通过或失败),而且万一测试失败一些导致错误的东西在哪里,尽可能精确地详细说明。
  10. 这不同于由仅仅复制任何和每一个进你的测试报告带来的提供信息过载——那不必要地延迟到引起测试失败的根源。一份好的报告展示了错误的一些东西,在测试错误发生处(在什么步骤上),错误信息是什么(依赖于你的汇报观众,这就像堆栈跟踪一样简单,但是其他案例里你可能需要提供也可被非技术人员读的错误的信息),以及在测试下应用程序的状态是在失败的时候(比如说,为用户接口驱动测试使用一个截图)。
  11. 注意一份好的报告策略可能包含创建每一次执行超过一份报告。假如你的测试是一个可持续集成构建管道的一部分,你可能想要创建能被你的构建引擎解释的低水平报告去决定是否继续这个构建。但是你也可能想要以HTML格式创建一个可读性的报告,按测试目的的原文描述完成,万一失败测试同时以人类-可读信息和截图。它都取决于观众。

3.测试环境


        整块材料正快速地重蹈恐龙的覆辙。现代信息技术系统由许多相互连通的组件,服务,和为传递业务价值而工作一起的应用程序组成。对测试目的,无论如何,这通常不是好消息:不得不管理和依赖于可用性的独立性,尤其是那些在你的控制循环外的那些,为了你的集成和端到端测试能引起很多间接费用,挫折,和测试时间的延迟。依然,当你想要创造和使用自动测试作为你的测试方法的一部分时可靠性和易管理的测试环境是关键。

        一个减轻失败或者不存在的测试环境的风险的办法是使用仿真技术比如桩,模拟,和服务虚拟化以复制在你的测试环境下关键性的而难获取的独立性的行为。做模拟真实的独立性行为的仿真足够完成你想要执行的测试用例能大大提升你的自动化测试速度——并且,因此,你的开发效果。

        此外,当虚拟环境被恰当地创建(比如,通过杠杆作用集装箱化)时,重建一个相同测试环境的新实例,有着相同的测试数据和其他特性完成,使它可能从一个自动化移向确实的持续性测试,假如你正要适应持续性的传递时这作为一个越灵活的方法且更好地对市场需求增长的反应继而成为先决条件。

4.报告


        自动化测试执行作为结果生成的报告应该成为任何可靠的测试自动化方法的重要的一部分。创造好的测试结果报告经常被忽略,虽然它是潜在的时代——(和生命——)在任意测试自动化项目里节省了任务。好的报告远超乎展示测试运行的数量,通过的,和失败的,虽然只有它也比什么都没有好。

        为了使一份测试执行报告变得确实有价值,需要被执行的测试(注意为了任何好的报告清晰的命名你的测试并且不含糊的格式是基础的)是什么可视化并且不仅是结果是什么(通过或失败),而且万一测试失败一些导致错误的东西在哪里,尽可能精确地详细说明。

        这不同于由仅仅复制任何和每一个进你的测试报告带来的提供信息过载——那不必要地延迟到引起测试失败的根源。一份好的报告展示了错误的一些东西,在测试错误发生处(在什么步骤上),错误信息是什么(依赖于你的汇报观众,这就像堆栈跟踪一样简单,但是其他案例里你可能需要提供也可被非技术人员读的错误的信息),以及在测试下应用程序的状态是在失败的时候(比如说,为用户接口驱动测试使用一个截图)。

        注意一份好的报告策略可能包含创建每一次执行超过一份报告。假如你的测试是一个可持续集成构建管道的一部分,你可能想要创建能被你的构建引擎解释的低水平报告去决定是否继续这个构建。但是你也可能想要以HTML格式创建一个可读性的报告,按测试目的的原文描述完成,万一失败测试同时以人类-可读信息和截图。它都取决于观众。

5.技能

最后,不可议论地最重要的,为创建一个强有力且有效的测试自动化解决方案的迷是负责实施它的人。没有富有技能的自动化顾问,架构师,工程师,和开发关注所有其他在这篇文章里提及的测试自动化的方面,你将可能立即在任何地方结束。

你的测试自动化团队理想地必须都是在测试领域有技能的,因此他们能回答为什么测试自动化将首先是一个合适的解决方案,同时什么测试要被自动化;并且有技能于软件开发,意味着他们知道如何去创建一次测试自动化强有力且可维护的实施。这不意味着你的测试自动化每一个成员需要在每个领域都有技能,但是作为一个整体,你的团队为了交付需要有一个这两方面的健康平衡。

把它所有的放在一起

一个好的测试自动化解决方案需要关注更多不仅仅是驱动测试的工具。为了真正成功的自动化,你需要想办法在你的测试数据策略上,在你如何管理你的测试环境上,并且在你通知你的观众关于你自动化的测试执行结果的方式上。最重要的是,无论如何,它是关于创建一个知道如何做所有以上的人的团队。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

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

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

相关文章

如何存储你需要的信息:变量——WEB开发系列42

变量是一种用于存储数据的基本工具。它允许我们在代码中给某个数据赋予一个名字,便于在后续的代码中引用、更新、甚至重新赋值。 一、什么是变量? 变量本质上是一个“容器”,它存储特定的信息或数据。你可以把变量想象成一个标签&#xff0c…

巧用switch-case消除条件判断

shigen坚持更新文章的博客写手,记录成长,分享认知,留住感动。个人IP:shigen 在之前的文章中,我们有提交消除if-else代码的方法: 结合HashMap与Java 8的Function和Optional消除ifelse判断巧用枚举消除逻辑判…

工控主板在工业控制中扮演什么角色

工控主板在工业控制中扮演着至关重要的角色,它是工业控制系统的核心组件,负责连接、控制和管理各种工业设备,实现自动化生产和智能化管理。具体来说,工控主板在工业控制中的作用可以归纳为以下几个方面: 一、核心控制…

MNIST手写数字数据集

数据集 官网链接失效,我找到数据集后,上传到码云,并在这里分享。 打开链接,进入如下目录,即可找到如下八个文件: 下面是一些可有可无的介绍。 Mnist数据集介绍 Mnist数据集包含70000张手写数字图片&#x…

IO(Reader/Writer)

1.Reader a.简介 i.是Java的IO库提供的另一种输入流。和InputStream的区别是:InputStream是字节流,以byte为单位,Reader是字符流,以char为单位。 ii.java.io.Reader是所有字符输入流的超类。 b.FileReader i.FileReader默认的编…

【Kubernetes】常见面试题汇总(四十三)

目录 98. kube-apiserver 和 kube-scheduler 的作用是什么? 99.您对云控制器管理器了解多少? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)…

甘肃辣椒油:舌尖上的热辣诱惑

💥宝子们,今天必须要给你们安利甘肃食家巷的辣椒油🌶️!✨甘肃辣椒油,那可是有着独特魅力的美食瑰宝😍。它以其鲜艳的色泽、浓郁的香气和醇厚的辣味,瞬间点燃你的味蕾🔥。&#x1f3…

关于聚类算法的一份介绍

在这篇文章中我将介绍无监督算法中“聚类”部分的知识,其中关于K均值聚类、层次聚类、密度聚类部分我将各附上一份实际运用的代码,而其余的像学习向量量化、高斯混合聚类部分则只是简单介绍下概念。 一、 关于聚类 首先我先简单介绍下聚类算法有关的东…

2024年7月大众点评温州美食店铺基础信息

在做一些城市分析、学术研究分析、商业选址、商业布局分析等数据分析挖掘时,大众点评的数据参考价值非常大,截至2024年7月,大众点评美食店铺剔除了暂停营业、停止营业后的最新数据情况分析如下。 温州餐饮美食店铺约6.5万家,有均…

CTF-SSH私钥泄露

CTF-SSH私钥泄露 一.信息探测--查看开放的服务--分析探测结果-- 探测大端口的信息 深入挖掘ssh信息![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6baf0b5de72d537c7093d3e2394d93cd.png#pic_center)解密ssh秘钥信息 工具:kali Linux 一.信息探测…

IO相关知识(Filter/序列化)

1.Filter模式 a.简介 i.直接使用继承,为各种InputStream附加更多功能,根本无法控制代码的复杂度,很快就会失控。 ii.为了解决依赖继承会导致子类数量失控的问题,JDK首先将InputStream分为两大类: …

SpringBoot+Activiti7工作流入门实例

目录 文章目录 目录准备Activiti建模工具1、BPMN-js在线设计器1.1 安装1.2 使用说明1.3运行截图 2、IDEA安装Activiti Designer插件2.1安装插件2.2 设置编码格式防止中文乱码2.3 截图 简单工作流入门实例1. 新建Spring Boot工程2. 引入Activiti相关依赖添加版本属性指定仓库添加…

10.1软件工程知识详解上

软件工程概述 软件开发生命周期 软件定义时期:包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标,具体可分成问题定义、可行性研究、需求分析等。软件开发时期:就是软件的设计与实现,可分成…

一文上手SpringSecuirty【六】

自定义认证流程完成之后,前端收到了后端生成的token,那么在之后的所有请求当前,都必须携带token.作为服务器来说,得验证这个token,是否合法. 一、验证token是否合法 1.1 OncePerRequestFilter过滤器 OncePerRequestFilter是 Spring 框架中的一个过滤器,用于确保在…

强化-极限

不利于元素及时提现 要学会构建导数(按照定义)

老挝旅游如何解决沟通问题?《老挝语翻译通》app支持语音识别翻译功能,能有效解决语言不同的痛点

老挝,一个东南亚的神秘国度,以其独特的文化和语言吸引着全球旅行者和语言爱好者。为了帮助大家更好地了解和学习老挝语,我们推出了《老挝语翻译通》App,一款集翻译、学习、旅游于一体的多功能工具。 功能亮点 实时翻译&#xff1…

滚珠丝杆如何安装滚珠?

滚珠丝杆安装滚珠是一门非常专业的知识,其安装过程需要细致且精确,这样才能确保其后续运行的顺畅与稳定。以下是安装滚珠的详细步骤: 一、准备工作 确保工作区域清洁无尘,准备合适的螺丝刀、扳手等工具,以及适量的润滑…

win10文件共享设置 - 开启局域网文件共享 - “您没有权限访问,请与网络管理员联系请求访问权限”解决方案

实现步骤: 1、在“网络和共享中心”关闭“密码保护的共享” 2、在“启用和关闭windows功能”中开启SMB文件共享支持。 3、在磁盘安全选项中添加“everyone”用户(重点!) 详细操作: https://blog.csdn.net/Skyirm/a…

怎么不用付费直接编辑pdf?5款pdf在线编辑器免费推荐给你!

在我们日常工作中,可能会经常需要直接编辑修改pdf内容,例如,在将文档发送给其它人之前,您可能需要进行一些修改;或者当扫描的文本出现错误时,您也需要进行修正。此时,如果有一款在线编辑器&…

【笔记】7.1 小功率整流滤波电路

一、 单相整流电路 任务:把正弦电压转变为单向脉动的电压。 类型:有单相半波、全波、桥式和倍压整流等。 分析方法:为分析简单起见,把二极管当作理想元件处理,即二极管的正向导通电阻为零,反向电阻为无穷…