从功能测试到自动化测试,我总结了一些工作经验分享给大家

  •  📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢交流讨论:欢迎加入我们一起学习!
  • 📢资源分享:耗时200+小时精选的「软件测试」资料包
  • 📢 最困难的时候,也就是我们离成功不远的时候!

我想应该有很多测试人员应该有这样的疑虑,自动化测试要怎么去做,现在我把自己的一些学习经验分享给大家,希望对你们有帮助,有说的不好的地方,还请多多指教!
  

对于测试人员来说,不管进行功能测试还是自动化测试还是性能测试都是需要编写测试用例,所以我们必须先要了解清楚手工测试用例与自动化测试用例的一些特点,才能更好的开展自动化测试工作。
  

1、手工测试和自动化测试用例
  手工测试用例是针对功能测试人员的,而自动化测试用例是针对自动化测试用例框架或工具的。
  1)手工测试用例特点
  较好的异常处理能力,能通过人为的逻辑判断校验当前步骤是否正确实现;
  人工执行用例具有一定步骤跳跃性;
  人工测试步步跟踪,能够细致定位问题;
  主要用来发现功能缺陷;
  2)自动化测试用例特点
  执行对象是脚本,任何一个盘算都需要编码定义;
  用例步骤之间关联性强;
  主要用来保证产品主体功能正确和完整,让测试人员从繁琐重复的工作中解脱出来;
  目前自动化测试阶段定位在冒烟测试和回归测试。
  (注意:通过对比发现,自动化测试不能完全替代手工测试,自动化测试的目的仅仅在于让测试人员从繁琐重复的测试流程中解脱出来,把更多的时间和精力放在更有价值的测试中,例如探索性测试。)
  3)自动化测试用例注意事项
  ①不是所有手工测试用例都要转为自动化测试用例;
  ②考虑到脚本开发成本,不要选择流程太复杂的用例,如果有必要,可以考虑把流程拆分成多个用例来实现脚本;
  ③选择的用例最好可以构建场景。例如,一个功能模块,分成多个用例,多个用例使用同一个场景,这样的好处在于方便构建关键字测试模型;
  ④选择用例可以带有目的性。例如,这部分用例作冒烟测试等,当然,会存在重叠关系,如果当前用例不满足需求,那么唯有修改用例来适应脚本和需求;
  ⑤选取的用例可以是主体流程,这部分用于冒烟测试(如果不了解专业术语,下来要花费功夫哦);
  ⑥选取的测试用例可以是你认为重复执行,很猥琐的部分。例如字段验证、提示信息验证之类,这部分适用于回归测试;
  ⑦自动化测试也可以用来做配置检查、数据库检查。这些可能超过了手工用例,但也算用例拓展的一部分,项目负责人可以有选择的增加;
  ⑧平时在手工测试时,如果需要构造一些复杂的数据或重复一些简单的机械式动作,则告诉脚本,让它来帮你,或许你的效率会因此提高。
  

2、自动化测试类型
  1)测试静态内容
  静态内容测试是最简单的测试,用于验证静态的、不变的ui元素的存在性,例如:
  ①每个页面都有预期的页面标题,这可以用来验证链接指向一个预期页面;
  ②应用程序的主页包含一个应该在页面顶部的图片;
  ③网站的每个页面是否包含一个页脚区域来显示公司的联系方式、隐私政策以及商标信息等;
  ④每一页的标题文本都使用<h1>标签吗?每个页面是否都有正确的头部文本;
  你可能需要(也可能不需要)对页面内容进行自动化测试。如果你的网页是不易受到影响的,则手工对内容进行测试就足够了。假设你的应用文件的位置移动了,则内容测试就非常有价值。
  2)测试链接
   web站点的一个常见错误为失效的链接或链接指向无效页。链接测试涉及各个链接和验证预期的页面是否存在。如果静态链接不经常更改,则手动测试就足够了。但是,如果你的网页设计师经常修改链接或者文件不时被重定向,则链接测试应该实现自动化。
  3)功能测试
  在你的应用程序中,需要测试应用的特定功能,需要一些类型的用户输入,并返回某种类型的结果,通常一个功能测试涉及多个页面,一个基于表单的输入页面,其中包含若干输入字段,提交和取消操作,以及一个或多个响应页面。用户输入可以通过文本输入域、复选框、下拉列表,或任何其他浏览器所支持输入。
  功能测试通常是需要自动化测试的 最复杂的测试类型,但通常也是最重要的。典型的测试是登陆,注册网站账户用户账户操作、账户设置变化、复杂的数据检索操作等等。功能测试通常对应着你的应用程序的描述应用特性或设计的使用场景。
  4)测试动态元素
  通常网页元素都有唯一的标识符,用于唯一的定位该网页的元素。通常情况下,唯一标识符用html标记的id属性或name属性来实现。
  5)Ajax的测试
  Ajax是一种支持以及动态改变用户界面元素的技术。页面元素可以动态更改,但不需要浏览器重新载入页面,如动画,RSS源、其他实时数据更新等。
  Ajax有无数更新网页上元素的放大,最简单的方式是在Ajax驱动的应用程序中,数据可以从应用服务器检索,然后显示在页面上,而不需要重新加载整个页面,只有一小部分的页面,或者只有元素本身重新被加载。
  

3、自动化测试用例编写原则
  最后,跟大家分享一下自动化测试用例编写原则:
  ①一个用例为一个完整的场景,从用户登录系统到 最终退出并关闭浏览器
  ②一个用例只验证一个功能点,不要试图在用户登录系统后把所有功能都验证一遍;
  ③尽可能少的编写逆向逻辑用例。一方面因为逆向逻辑的用力很多(例如,手机号输错有几十种情况),另一个方面自动化脚本本身比较脆弱,复杂的逆向逻辑用例实现起来比较麻烦且容易出错。
  ④用例与用例之间尽量避免产生依赖。
  ⑤一条用例完成测试之后需要对测试场景进行还原,以免影响其他用例的执行。


行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【驱动】SPI驱动分析(三)-SPI关键数据类型

SPI数据类型 SPI控制器驱动结构体 struct spi_master抽象了控制器硬件&#xff0c;在SoC中的指的就是内部SPI控制器&#xff0c;当向SPI核心层注册一个SPI控制器时就需要提供这样的一个结构体变量。它的定义在 include/linux/spi/spi.h 文件&#xff0c;如下&#xff1a; /*…

python高级练习题库实验1(A)部分

文章目录 题目1代码实验结果题目2代码实验结果题目3代码实验结果题目4代码实验结果题目总结题目1 输入一个整数,用于控制输出*的个数,输入日期,按照特定格式输出 研究下面的例子,并编写一个与这些例子完全相同的程序。 代码 import datetime# ask user for length of b…

(C++20) consteval立即函数

文章目录 由来consteval立即函数上下文的常量性质lambda表达式 编译期间确定无法获取函数指针查看汇编 END 由来 在C11中推出了constexpr使得对象或者函数能够具有常量性质并能在编译器确定。但是对于constexpr修饰的函数来说&#xff0c;无法保证严格的在编译器确定。 下面这…

咨询+低代码,强强联合为制造业客户赋能

内容来自演讲&#xff1a;沈毅 | 遨睿智库 | 董事长 & 王劭禹 | 橙木智能 | 联合创始人 摘要 文章主要讲述了智库董事长沈毅创办广告公司的经历&#xff0c;以及他在管理公司过程中遇到的问题和挑战&#xff0c;最后通过与明道云以及橙木智能联合创始人王邵禹老师的合作&…

【驱动】SPI驱动分析(四)-关键API解析

关键API 设备树 设备树解析 我们以Firefly 的SPI demo 分析下dts中对spi的描述&#xff1a; /* Firefly SPI demo */ &spi1 {spi_demo: spi-demo00{status "okay";compatible "firefly,rk3399-spi";reg <0x00>;spi-max-frequency <48…

当内核有内存泄漏的时候

内存泄露是一个很容易出现的问题&#xff0c;尤其是对于测试不太充分的代码。怎么判断出现内存泄露了呢&#xff1f;很简单&#xff0c;就跑一些简单的测试&#xff0c;等待足够长时间即可。内存总有耗尽的时候&#xff0c;这时候内核会触发OOM&#xff0c;根据oom_score选择一…

【驱动】SPI驱动分析(六)-RK SPI驱动分析

前言 Linux的spi接口驱动实现目录在kernel\drivers\spi下。这个目录和一些层次比较明显的驱动目录布局不同&#xff0c;全放在这个文件夹下&#xff0c;因此还是只好通过看Kconfig 和 Makefile来找找思路 先看Makefile&#xff0c;里面关键几行&#xff1a; obj-$(CONFIG_SPI…

【C++ Primer Plus学习记录】循环和文本输入

目录 1.使用原始的cin进行输入 2.使用cin.get(char)进行补救 3.使用哪一个cin.get() 4.文件尾条件 循环完后的一项最常见、最重要的任务&#xff1a;逐字符地读取来自文件或键盘的文本。 cin对象支持3种不同模式的单字符输入&#xff0c;其用户接口各不相同。下面介绍如何…

形态学操作—底帽运算

底帽运算&#xff08;Bottom-hat transformation&#xff09;&#xff0c;也称为黑帽运算&#xff0c;是形态学图像处理中的一种操作。它与顶帽运算相反&#xff0c;通过闭运算的结果与原始图像的差异来突出图像中的暗区域特征。 原理 底帽运算通过对图像执行闭运算&#xff0…

代码随想录二刷 |字符串 |反转字符串

代码随想录二刷 &#xff5c;字符串 &#xff5c;反转字符串 题目描述解题思路 & 代码实现 题目描述 344.反转字符串 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须…

鸿蒙HarmonyOS应用开发-ColumnRow组件

1 概述 一个丰富的页面需要很多组件组成&#xff0c;那么&#xff0c;我们如何才能让这些组件有条不紊地在页面上布局呢&#xff1f;这就需要借助容器组件来实现。 容器组件是一种比较特殊的组件&#xff0c;它可以包含其他的组件&#xff0c;而且按照一定的规律布局&#xf…

UE5富文本框学习(用途:A(名字)用刀(图片)击杀B(名字))

UE5-UMG教程-通用控件&#xff1a;多格式文本块&#xff08;RichTextBlock&#xff09;_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Pu4y1k7Z2/?p54&spm_id_frompageDriver 结果示例&#xff1a; 1.添加富文本框 2.添加文字样式库 点添加&#xff0c;更改每行行…

Embedding压缩之hash embedding

在之前的两篇文章 CTR特征重要性建模&#xff1a;FiBiNet&FiBiNet模型、CTR特征建模&#xff1a;ContextNet & MaskNet中&#xff0c;阐述了特征建模的重要性&#xff0c;并且介绍了一些微博在特征建模方面的研究实践&#xff0c;再次以下面这张图引出今天的主题&#…

相比Javascript, Typescript有哪些优点?

TypeScript 是 JavaScript 的超集&#xff0c;它在 JavaScript 的基础上添加了静态类型和其他一些功能。以下是 TypeScript 相对于 JavaScript 的一些优点&#xff1a; 1、静态类型检查&#xff1a; TypeScript 引入了静态类型&#xff0c;可以在编译时发现并纠正类型错误。这…

linux chown 命令详解

linux chown 命令详解 一、更改文件或目录的所有者和/或所属组二、更改用户权限三、chown与chmod的区别 一、更改文件或目录的所有者和/或所属组 它的基本语法如下&#xff1a; chown [选项]... [所有者][:[所属组]] 文件...其中&#xff0c;选项可以是-R&#xff08;递归更改…

Unity 一些常用注解

在Unity中有一些比较常用的注解&#xff1a; 1、[SerializeField]&#xff1a;将私有字段或属性显示在 Unity 编辑器中&#xff0c;使其可以在 Inspector 窗口中进行编辑。 2、[Range(min, max)]&#xff1a;限制数值字段或属性的范围&#xff0c;在 Inspector 窗口中以滑动条…

glFenceSync

glClientWaitSync是OpenGL中用于等待同步对象状态变化的函数&#xff0c;它可以用于在CPU端等待GPU端的某个操作完成。下面是glClientWaitSync相关的函数以及一个简单的例子&#xff1a; glFenceSync&#xff1a;创建一个同步对象。 GLsync glFenceSync(GLenum condition, GLbi…

简单好用!日常写给 ChatGPT 的几个提示词技巧

ChatGPT 很强&#xff0c;但是有时候又显得很蠢&#xff0c;下面是使用 GPT4 的一个实例&#xff1a; 技巧一&#xff1a;三重冒号 """ 引用内容使用三重冒号 """&#xff0c;让 ChatGPT 清晰引用的内容&#xff1a; 技巧二&#xff1a;角色设定…

【C++】string模拟

string讲解&#xff1a;【C】String类-CSDN博客 基本框架 #pragma once #include <iostream> using namespace std; ​ namespace wzf {class string{public:// 默认构造函数string(): _str(new char[1]), _size(0), _capacity(0){_str[0] \0; // 在没有内容时仍要有终…

手把手教你使用NVIDIA Isaac Sim进行机器人仿真,通过stl模型转为isaac sim支持的格式

很好的一篇文章 手把手教你使用NVIDIA Isaac Sim进行机器人仿真① 讲解了通过stl模型转为isaac sim支持的格式 并且使车辆动起来了 手把手教你使用NVIDIA Isaac Sim进行机器人仿真① https://zhuanlan.zhihu.com/p/590860384 仿照这个过程&#xff0c;后续做一个无人机飞行的场…