自动化测试基础

1.1软件测试分类

软件测试领域名词颇多,许多测试新手容易混淆概念。因为从不同的角度对软件测试有不同的分类方法,所以,这里汇总常见软件测试的相关名词,让读者对软件测试领域有个概括性了解。

1.根据项目流程阶段划分软件测试

图1.1是一个典型的“V”模型软件开发流程,各项软件测试工作是在项月开发流程中循序渐进进行的。下面将介绍各个阶段测试的含义。

1)单元测试:单元测试(或模块测试)是对程序中的单个子程序或具有独立功能的代码段进行测试的过程。

2)类成洲试:集成测试是在单元测试的基础上,先通过单元模块组装成系统或子系统,再进行测试。重点是检查模块之间的接口是否正确。

3)系统测试:系统测试是针对整个产品系统进行的测试,验证系统是否满足需求规格的定义,以及软件系统的正确性和性能等是否满是其需求规格的要求。

4)验收测试:验收测试是能署软件之前的最后个测试阶段。验收测试的目的是确保软件准备就绪,向软件购买者展示该软件系统能够满足用户的需求。

图1.1项目流程与对应的测试

2.白盒测试、黑盒测试、灰盒测试

白盒测试与黑盒测试,主要是根据软件测试工作中对软件代码的可见程度进行的划分这也是软件测试领域中最基本的概念之一,如图1.2所示。

图1.2黑盒测试与白盒测试

1)黑盒测试:

黑盒测试,指的是把被测的软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果。

它只检查程序呈现给用户的功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

2)白盒测试:

白盒测试,指的是把盒子打开,去研究里面的源代码和程序执行结果。

它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正

常进行,检验程序中的每条通路是否都能按预定要求正确工作。

3)灰盒测试:

灰盒测试介于黑盒测试与白盒测试之间。

可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的, 但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取 这样的一种灰盒测试的方法。

3. 功能测试与性能测试

从对软件的不同测试点可以划分为功能测试与性能测试。

1)功能测试

功能测试检查实际的功能是否符合用户的需求。测试的大部分工作也是围绕软件的功能进行,设计软 件的目的也就是满足客户对其功能的需求。如果偏离的这个目的任何测试工作都是没有意义的。

功能测试又可以细分为很多种:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。

2)性能测试

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

软件的性能包括很多方面,主要有时间性能和空间性能两种。

时间性能:主要是指软件的一个具体的响应时间。比如一个登录所需要的时间,一个交易所需要的时

间等。当然,抛开具体的测试环境,来分析一次事务的响应时间是没有任何意义的。需要搭建一个具体且独立的测试环境。

空间性能:主要指软件运行时所消耗的系统资源,比如硬件资源,CPU、内存,网络带宽消耗等。

4. 手工测试与自动化测试

从对软件测试工作的自动化程度可以划分为手工测试与自动化测试。

1)手工测试:

手工测试就是由人去一个一个的去执行测试用例,通过键盘鼠标等输入一些参数,查看返回结果是否符合预期结果。

手工测试并不非专业术语,手工测试通常是指我们在系统测试阶段所进行的功能测试,为了更明显的与自动化测试进行区分,所以这里使用了手工测试。

2)自动化测试

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过 评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在 此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。

自动化测试又可分为:功能自动化测试与性能自动化测试。

功能自动化测试:是把以人为驱动的测试行为转化为机器执行的一种过程。通过测试工具(或框架)录制/编写测试脚本,对软件的功能进行测试,并验证测试结果是否正确,从而代替部分的手工测试工作,达到节约人力成本和时间成本的目的。

性能自动化测试:通过性能工具来模拟成千上万的虚拟用户向系统发送请求,从而验证系统的处理能力。

5. 冒烟测试、回归测试、随机测试、探索性测试和安全测试

这几种测试出现在软件功能测试周期中,既不算具体明确的测试阶段也不是具体的测试方法。

1)冒烟测试

是指在对一个新版本进行大规模的系统测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。

引入到软件测试中,就是指测试小组在正式测试一个新版本之前,先投入较少的人力和时间验证一个软件的主要功能,如果主要功能都没有运行通过,则打回开发组重新开发。这样做的好处是可以节省时间和人力投入到不可测的项目中。

2)回归测试

回归测试是指修改了旧代码后,重新进行测试以确认修改后没有引入新的错误或导致其他代码产生错误。

回归测试一般是在进行第二轮软件测试时开始的,验证第一轮软件测试中发现的问题是否得到修复。当然,回归也是一个循环的过程,如果回归的问题通不过,则需要开发人员修改后再次进行回归,直到所有问题回归通过为止。

3)随机测试

是指测试中的所有输入数据都是随机生成的其目的是模拟用户的真实操作,并发现些边缘性的错误。

随机测试可以发现一些隐蔽的错误,但是也有很多缺点,例如测试不系统、无法统计代码覆盖率和需求覆盖率、发现的问题难以重现等。一般是放在测试的最后执行。随机测试更专业的升级版叫做探索性测试。

4)探索性测试

探索性测试可以说是一种测试思维技术,它没有很多实际的测试方法、技术和工具,但却是所有测试人员都应该掌握的一种测试思维方式。探索性测试强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。

5)安全测试

安全测试是在 IT 软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以 验证产品符合安全需求定义和产品质量标准的过程。

安全测试也在越来越受到企业的关注和重视,因为由于安全性问题造成的后果是不可估量的。尤其对

于互联网产品最容易遭受各种安全攻击。

基于python的自动化测试工具_基于Python语言的自动化测试相关推荐

  1. python 内存分析工具_[转] python运行时内存分析工具meliae

    meliae是一个python进程内存占用监控.分析工具,它的安装需要依赖pyrex包. 一.安装: 安装python内存分析工具 sudo pip install cython sudo pip i ...

  2. python代码检查工具_基于Python3的漏洞检测工具 ( Python3 插件式框架 )

    [TOC] Python3 漏洞检测工具 -- lance lance, a simple version of the vulnerability detection framework based ...

  3. 基于python的性能测试工具_基于 Python 的性能测试工具 locust 与 LR 的简单对比[转发]...

    背景 最近自己开发了一个小的接口,功能测完了,突然想测下性能,原来做性能测试,我一直用的是HP的LoadRunner,前一段时间正好看过locust,想想就用这个来测测性能吧. 由于对LR比较熟,正好 ...

  4. python日志分析工具_基于Python3的Web日志分析小工具

    PyWebLog 网站日志分析小工具 环境 Python3.5 Mysql 预览 安装 pip install pymysql pip install flask 导入日志 python Log.py ...

  5. 如何用python写小工具_用python写一个录音小工具

    Python的paramiko,wxPython库的应用 Sound eXchange 命令行 需求 最近在给一个做语音识别的项目做QA工作.众所周知,此类人工智能方面的项目都需要一些数据收集的工作. ...

  6. python代码扫描工具_用Python编写一个高效的端口扫描器的方法

    PyPortScanner python多线程端口扫描器. 输出示例: Github 背景 有时候,在进行网络相关的研究的时候,我们需要执行一些有目的的参数测量.而端口扫描就是其中比较普遍也比较重要的 ...

  7. python golang 小工具_使用Go语言简单模拟Python的生成器

    def demo_input_and_output(): input = yield 'what is the input?' yield 'input is: %s' % input gen = d ...

  8. python pdf处理工具_用Python处理pdf文档

    介绍 译者翻译了很多Python强大的包,其中,一以贯之的思想是:面向对象.我用下面的翻译来举一个例子,比如:从PyPDF2包中导入PdfFileReader包.PdfFileReader是此包的一个 ...

  9. python数学公式编辑工具_使用Python一键生成LaTeX数学公式

    简介 latexify使用教程latexify-py模块安装 基本语法 实例加减乘除.分数 分段函数 根号.幂 三角函数 绝对值 对数 Markdown的数学公式相关教程 参考资料.GitHub地址 ...

最新文章

  1. node.js——麻将算法(一)基本判胡
  2. cookie和session常见问题
  3. 菲尔茨奖得主丘成桐在清华设立数学英才班,比肩清华姚班
  4. 2021抖音电商商家经营方法论白皮书
  5. 如何有效开展小组教学_新型教学方法,小组合作教学,有效的提升了学生的合作技能...
  6. 目的入口(dst_entry)
  7. python中oxf_python的strip()函数不工作
  8. 把c的char数组转换为python image的代码
  9. java 金额数字转换大写算法
  10. 我来说说我给宝宝买保险的事
  11. C语言——获取键盘方向键效果
  12. 君子签推出AI智能电子合同一体化处理产品,赋能合同业务智能化
  13. 千道Java面试真题整理系列:MySQL灵魂五十问,在遇面试也不怕!
  14. StyleGAN3重磅发布!皮肤、毛发不再粘屏幕,还能360度旋转!英伟达最新开源
  15. Android数据加密传输
  16. 【大咖说:绿色低碳的生活该是什么样子?】
  17. 来自日本的品质传承 工机控股发布新品牌HiKOKI战略
  18. 谜语,睇你识几多个?
  19. Win10系统下 超级管理员账户下 修改 C盘下的中文名文件夹 以及 关于Win10 的一些坑
  20. 复制文本功能兼容 微信ios 火狐浏览器

热门文章

  1. vue获取table一列数据_vue中比较重要的小知识点
  2. ArcEngine和GDAL读写栅格数据机制对比(一)
  3. Currency Exchange (POJ 1860)
  4. uniapp 获取图片的高度_uniapp自定义切图
  5. (二)数据结构与算法-稀疏数组
  6. 一个事物两个方面的对比举例_《写作教练在你家》:推开写作之门第3课——对比的魔法...
  7. django实现上传文件并保存
  8. Patsy库查看使用公式语法建模后的输入特征X 与 预测Y
  9. Linux查询端口的任务
  10. 用计算机写作ppt文库,计算机专业英语Unit 19 计算机专业英语写作.pptx