软件测试进阶知识 —— 自动化测试总结

news2024/11/17 10:06:03

自动化测试

自动化测试的定义:使用一种自动化测试工具来验证各种软件测试的需求,它包括测试活动的管理与实施、测试脚本的开发与执行。

自动化测试只是测试工作的一部分,是对手工测试的一种补充; 自动化测试绝不能代替手工测试;多数情况下,手工测试和自动化测试应该相结合,以最有效的方法来完成测试任务.

自动化测试的意义

通常,软件测试的工作量很大(据统计,测试会占用到40%的开发时间;一些可靠性要求非常高的软件,测试时间甚至占到开发时间的60%)。而测试中的许多操作是重复性的、非智力性的和非创造性的,并要求做准确细致的工作,计算机就最适合于代替人工去完成这样的任务。

软件自动化测试是相对手工测试而存在的,主要是通过所开发的软件测试工具、脚本等来实现,具有良好的可操作性、可重复性和高效率等特点。 要理解为什么要进行自动化测试,可以从两个方面考虑:

  1. 手工测试的局限性
  2. 软件自动化测试所带来的好处

手工测试的局限性

  • 通过手工测试无法做到覆盖所有代码路径。
  • 简单的功能性测试用例在每一轮测试中都不能少,而且具有一定的机械性、重复性,工作量往往较大。
  • 许多与时序、死锁、资源冲突、多线程等有关的代码隐形逻辑错误,通过手工测试很难捕捉到。
  • 进行系统负载、性能测试时,需要模拟大量数据或大量并发用户等各种应用场合时,很难通过于工测试来进行。
  • 进行系统可靠性测试时,长时间持续测试,需要模拟系统运行10年、几十年,以验证系统能否稳定运行,这也是手工测试无法模拟的。
  • 如果有大量(几千)的测试用例,需要在短时间内(1天)完成,手工测试几乎不可能做到。

自动化测试带来的好处

  • 缩短软件开发测试周期,可以让产品更快投放市场。
  • 测试效率高,充分利用硬件资源。
  • 节省人力资源,降低测试成本。
  • 增强测试的稳定性和可靠性。
  • 提高软件测试的准确度和精确度,增加软件信任度。
  • 软件测试工具使测试工作相对比较容易,且能产生更高质量的测试结果。
  • 手工不能做的事情,自动化测试能做,如负载、性能测试。

自动化测试的前提条件

实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试。通常需要同时满足以下条件:

  1. 需求变动不频繁 测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。 项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。
  2. 项目周期足够长 自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成,这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便成为笑谈。
  3. 自动化测试脚本可重复使用 如果费尽心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,致使其间所耗费的成本大于所创造的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正可产生效益的测试手段了。
  4. 在手工测试无法完成,需要投入大量时间与人力时也需要考虑引入自动化测试。比如性能测试、配置测试、大数据量输入测试等。

自动化测试的方法

软件测试自动化实现的基础是可以通过设计的特殊程序模拟测试人员对计算机的操作过程、操作行为,或者类似于编译系统那样对计算机程序进行检查。

软件测试自动化实现的原理和方法主要有:

  1. 直接对代码进行静态和动态分析
  2. 测试过程的捕获和回放
  3. 测试脚本技术
  4. 虚拟用户技术和测试管理技术。

自动化测试的不足

  • 不正确的观念或不现实的期望
  • 缺乏具有良好素质和有经验的测试人才
  • 测试工具本身的问题影响测试的质量
  • 没有进行有效、充分的培训
  • 不考虑公司的实际情况、盲目引入测试工具
  • 没有形成一个良好的测试工具使用环境
  • 其他技术问题和组织问题

自动化测试的应用方向

自动化测试和手工测试它们各有各自的特点,其测试对象和测试范围都不一样 在系统功能逻辑测试、验收测试、适用性测试、涉及物理交互性测试时,多采用黑盒测试的手工测试方法。

单元测试、集成测试、系统负载测试、性能测试、稳定性测试、可靠性测试等比较适合采用自动化测试。 那种不稳定软件的测试、开发周期很短的软件、一次性的软件等不适合自动化测试。

典型开源的自动化测试工具

功能测试工具

工具名称简介网址
Abbot Java GUI Test FrameworkJava GUI测试工具abbot.sourceforge.net/
SharpRobo针对dotNet的WinForm应用进行录制/回放的测试工具gforge.public.thoughtworks.org/projects/sh…
soapui通过HTTP协议对Web Service进行测试www.soapui.org/
httpUnit通过代码控制对Web应用的访问和功能测试httpUnit.sourceforge.net
SamieWeb功能测试工具,基于Perlsamie.sourceforge.net/
WatirWeb功能测试工具,调用IE的Automation接口实现,基于Rubywtr.rubyforge.org/
Linux Test ProjectLinux的Kernel测试工具ltp.sourceforge.net/

性能测试工具

工具名称简介网址
OpenSTA使用者较多的一个WEB性能测试工具,支持HTTP/HTTPS协议opensta.org/
JMeter基于Java的性能测试工具,能支持HTTP/HTTPS、FTP、Socket等协议jakarta.apache.org/jmeter/
The Grinder测试J2EE应用的性能测试工具grinder.sourceforge.net/
TestMaker测试WEB应用的性能测试工具,能支持HTTP, HTTPS, SOAP, XML-RPC, SMTP, POP3, IMAP 协议www.pushtotest.com/ptt/
DBMonster用于产生数据库基础数据的工具dbmonster.kernelpanic.pl/
Database Opensource Test Suite测试数据库性能的套件ltp.sourceforge.net/

缺陷库

工具名称简介网址
Bugzillar最负盛名的缺陷库之一,功能强大,和配置工具CVS集成度好www.mozilla.org/projects/bu…
Mantis简单易用的缺陷库,完整包含一个缺陷管理工具的基本功能mantisbt.sourceforge.net/
Trac很好的缺陷和事件管理工具,能够与Subversion很好集成,保留每个缺陷的解决痕迹projects.edgewall.com/trac/
BugFree号称是微软缺陷管理系统的精简版本,中国人自己的开源工具bugfree.1zsoft.com/

单元测试工具

工具名称简介网址
JUnitJava的回归测试框架,通过各种扩展已经成为一个庞大的测试框架www.junit.org/index.htm
Cactus测试ServerSide的单元测试工具,可针对Servlets、EJB等进行测试jakarta.apache.org/cactus/inde…
CppUnitC++的单元测试工具cppunit.sourceforge.net/
NUnitdotNet下的单元测试工具www.nunit.org/
DbUnit用于在不同测试间维护数据库环境dbunit.sourceforge.net/

如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

END配套学习资源分享

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

加入我的软件测试交流qq群:110685036免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

软件测试面试文档

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

在这里插入图片描述

全套资料获取方式:

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

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

相关文章

怎样高效率备考PMP

一方面由于这些考试的知识,在准备考试前我们大部分很少接触,大部分人考试的目的也未必是感兴趣,更多是因为考试结果能给我们带来的收益。因此长时间的学习不熟悉甚至不感兴趣的很容易疲倦,这不像我们工作或生活中的一些技能&#…

怎样用U盘重装Win10系统?用U盘重装Win10系统教程

怎样用U盘重装Win10系统?有些新手用户在问怎样用U盘才能完成Win10系统的重装,这时候用户需要准备一个U盘、一个能够正常联网的电脑,然后按照以下分享的用U盘重装Win10系统教程操作,就能轻轻松松完成Win10系统的重装。 准备工作&am…

482576-74-9,Fmoc-Thr(Ac4Manα1-2Ac3Manα1-2Ac3Manα)-OH,肽链中可以糖基化的主要是Ser和Thr

【产品描述】 Fmoc-Thr(Ac4Manα1-2Ac3Manα1-2Ac3Manα)-OH(CAS:482576-74-9)中肽链中可以糖基化的主要是Ser和Thr,此外还有酪氨酸、羟赖氨酸和羟脯氨酸糖基化修饰的糖肽,链接的位点是这些残基侧链上的羟基氧原子。连接的糖为半乳…

Element常用组件之 表单组件 form

1. 建立form.vue <template><el-form ref"form" :model"form" label-width"80px"><el-form-item label"活动名称"><el-input v-model"form.name"></el-input></el-form-item><el-f…

Pandas的窗口函数rolling和expanding用法说明

Pandas的窗口函数rolling和expanding 1、rolling 移动窗口 rolling() 移动窗口函数&#xff0c;它可以与 mean、count、sum、median、std 等聚合函数一起使用。为了使用方便&#xff0c;Pandas 为移动函数定义了专门的方法聚合方法&#xff0c;比如 rolling_mean()、rolling_…

ArduPilot之H743自动PID调节

ArduPilot之H743自动PID调节 1. 源由2. 涉及参数2.1 AUTOTUNE_*2.2 RCx_OPTION 3. 自动校准3.1 预准备3.2 参数配置3.3 操作步骤 4. 实操&总结5. 参考资料6. 补充视频 1. 源由 ArduCopter可以自动通过算法来对PID进行调优&#xff0c;不过这里有个前提是模型噪声要比较少。…

Mysql数据库的初体验

数据库管理系统是一个由因相互关联的数据的集合和一组用访问这些数据的程序组成&#xff0c;这个数据集合通常称作数据库&#xff0c;其中包含了关于某个企业的信息。DBMS的主要目标就是提供一种可以方便高效的存取数据库信息的途径。 一、数据库的基本概念 1.数据库的组成 ①…

一文让你了解appium自动化的工作原理

目录 前言&#xff1a; 一、Appium加载的过程图解 二、初步认识appium工作过程 三、bootstrap介绍 四、所使用的技术 五、Capabilities 六、自我理解的工作原理 前言&#xff1a; Appium是一个流行的开源自动化测试框架&#xff0c;支持移动应用程序的自动化测试。 一…

Varnish开源HTTP反向代理缓存服务器

第三阶段基础 时 间&#xff1a;2023年6月13日 参加人&#xff1a;全班人员 内 容&#xff1a; Varnish 目录 Varnish 端口号&#xff1a;TCP/6081 TCP/6082 配置文件&#xff1a;/etc/varnish/default.vcl 安装部署&#xff1a; 测试功能&#xff1a; Varnish V…

6月14日晚 19:00公开课直播 | 入门必看:40min 掌握低代码基础功能

大家好&#xff0c;新一期「ONEIN 公开课」要和大家见面啦&#xff01; Onein 公开课介绍 Onein 公开课&#xff0c;是万应低代码开设的直播课堂&#xff0c;专注低代码领域&#xff0c;希望帮助每一位用户更好的使用万应低代码。 随着低代码的兴起&#xff0c;低代码这一名词…

从小白到大神之路之学习运维第39天---第三阶段---MongoDB非关系型数据库(概述、安装、设置管理员、简单操作、配置文件说明,备份和还原)

第三阶段基础 时 间&#xff1a;2023年6月13日 参加人&#xff1a;全班人员 内 容&#xff1a; 目录 MongoDB概述 端口号&#xff1a;TCP/27017 配置文件&#xff1a;/etc/mongod.conf MongoDb安装部署 MongoDB设置密码 MongoDB操作命令与说明 配置文件说明 备份操作 1. 热备…

chatgpt赋能python:Python怎么居中对齐

Python怎么居中对齐 在Python中&#xff0c;输出对齐是一项基本功能。当我们想要打印表格或美化输出时&#xff0c;居中对齐是一个常见的要求。本文将介绍如何使用Python进行居中对齐&#xff0c;以及一些相关的技术和应用。 如何居中对齐&#xff1f; 要在Python中实现居中…

TypeScript知识汇总

一、ts简介 1、什么是ts 2、ts增加了什么 二、TypeScript开发环境搭建 注&#xff1a;如果npm i运行报错&#xff0c;需要以管理员身份运行一次&#xff0c;以上主要就是tsc xxx.ts 三、ts的基本类型——ts相当于是给js可以指定类型 //number、string、boolean等常用类型&am…

[游戏开发][Unreal]项目启动

新建项目时会有 [项目名].uproject文件&#xff0c;鼠标右键该文件点击Switch Unreal Engine version 如果你的 [项目名].uproject文件是个纯白的图标&#xff0c;证明没有关联到Unreal&#xff0c;该怎么办呢 使用搜索工具搜UnrealVersionSelector.exe 或者直接去你的UE5安装目…

在华为外包待了3年,我秃了,但没变强...

我25岁&#xff0c;中级测试&#xff0c;外包&#xff0c;薪资13.5k&#xff0c;人在上海。内卷什么的就不说了&#xff0c;而且人在外包那些高级精英年薪大几十的咱也接触不到&#xff0c;就说说外包吧。 假设以我为界限&#xff0c;25岁一线城市13.5k&#xff0c;那22-24大部…

J.A.Woollam光谱型椭偏仪电源维修M-2000XI

M-2000系列光谱椭圆仪是为满足薄膜表征的需求而设计的。RCE技术结合了旋转补偿器椭圆仪和CCD检测&#xff0c;在几分之一秒内收集整个光谱&#xff08;数百个波长&#xff09;&#xff0c;并有多种配置。擅长于从原位监测和过程控制到大面积均匀性绘图和通用薄膜表征的椭偏仪。…

mac m1(arm)安装brew(Homebrew)

安装 使用国内脚本安装 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"安装完成后使用brew安装tcping试试 brew install tcping发现报错 Error: Cannot install in Homebrew on ARM processor in Intel default prefi…

应急指挥调度系统之指挥中心是由什么构成的

应急指挥调度系统是应急管理的重要组成部分&#xff0c;而指挥中心则是应急指挥系统的控制中枢&#xff0c;可以说是应急指挥调度系统体系中的大脑&#xff0c;应急管理中的所有应急指令都会从指挥中心发出&#xff0c;作为应急指挥系统的控制中枢&#xff0c;应急指挥调度系统…

5款国产优质软件,满足工作效率提升需求,你值得拥有

不少人对国产软件的印象&#xff0c;还停留在各种弹窗、各种捆绑&#xff0c;想要提升工作效率&#xff0c;只能使用国外的软件。今天给大家分享5款国产优质软件&#xff0c;不仅没有各种弹窗、捆绑&#xff0c;还能满足工作效率提升需求。 亿图脑图MindMaster MindMaster是一款…

聊聊如何利用服务定位器模式按需返回我们需要的服务实例

前言 什么是服务定位器模式 服务定位器是一个了解如何提供各种应用所需的服务&#xff08;或组件&#xff09;的对象。在服务定位器中&#xff0c;每个服务&#xff08;或组件&#xff09;都只有一个单独的实例&#xff0c;并通过ID 唯一地标识。 用这个 ID 就能从服务定位器中…