自动化测试基础

软件测试:
1、软件测试分类
v模型软件开发流程


image.png

根据项目流程划分的测试:
单元测试:模块测试,对程序中单个程序或独立功能的代码段进行测试 (白盒测试)
集成测试:通过单元模块进行组合测试,接口,功能是否完备
系统测试:验证整个系统是否满足需求、系统的正确性,是否满足规格需求
回归测试:如果某个问题在有限的时间解决不了,只能到下一次版本更新
验收测试:确保软件准备就绪,向购买者展示软件满足用户的需求

白盒测试、灰盒测试、黑盒测试

黑盒测试:关心软件输出数据及结果,检查程序呈现给用户是否正常使用,根据数据,能否输出正确结果,主要针对软件界面和软件功能进行测试。

白盒测试:把盒子打开,去研究源代码和程序执行结果,按程序内部结构,通过测试来检测产品内容功能是否按照我们需求说明书正常进行

灰盒测试:介于黑盒测试与白盒测试之间。关注输出对输入的正确性,同时关注内部表现(没有白盒那样完整)

功能测试与性能测试

功能测试:检查实际功能是否符合用户需求。测试主要围绕软件功能进行。

功能测试可细分为:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试(比较重要,不同的浏览器,不移动端、不同系统)

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

性能测试可细分为:时间性能与空间性能
时间性能:软件的响应时间
空间性能:软件运行时间,消耗的资源(如:CPU的消耗、带宽的消耗等)

手工测试与自动化测试

手工测试:由测试人员一个一个去执行测试用例,通过键盘鼠标等输入一些参数,并查看返回结果是否符合预期结果。是系统阶段进行的一个功能测试

自动化测试:把以人为驱动的测试行为转化为机器执行的一种过程。这里的机器是一种工具,通过测试工具或者框架,录制编写测试脚本,对软件功能进行测试,并验证测试结果是否正确,从而代替部分的手工测试,达到节约人力、时间成本目的
自动化测试可细分为:功能自动化和性能自动化测试 。
自动化功能自动化测试:进行参数化,一次请求,多次运行。目前主要是功能自动化测试
自动化性能自动化测试测试性能工具模拟成千上万的用户向系统发送请求,从而验证系统处理能力

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

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

回归测试:修改旧代码后,重新进行测试以确认修改后没有引入新的错误或导致其他代码产生错误。系统测试之前进行回归测试,没有问题后,进行验收测试。

随机测试:测试中的所有输入数据都是随机生成的,主要是模拟用户的真实操作,并发现一些边缘性的错误。一般放在最后进行测试。

探索性测试:可以说是一种测试思维技术,它没有很多实际的测试方法、技术和工具,但却是所有测试人员都应该掌握的一种测试思维方式。强调测试人员的主观能动性,即碰到问题,及时改变策略,根据实际情况,摸索测试方法。

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

分层自动化测试


image.png

上图更多关注产品的UI层自动化测试,而分层自动化测试倡导产品不同阶段(层次)都需要自动化测试


image.png

unit :单元自动化测试,是对软件中最小的可测试单元进行检查与验证,如:C语言的最小的单元是一个元素,Java中最小的单元是一个类,图形化软件中的最小单元是一个窗口、按钮、菜单等。规范单元测试需要借助于单元测试框架(工具)
单元测试(Code Review :中译 代码评审、代码审查):查找系统缺陷、保证软件真题质量,提高开发者自身水平。

Service:接口自动化测试 分为:模块接口测试、web接口测试
模块接口测试:测试模块间的调用与返回。如:类方法、函数调用并对返回结果进行验证
Web接口测试:分为服务器接口测试、外部接口测试
服务器接口测试:浏览器与服务器之间的接口,通过HTTP协议进行调用
外部接口测试:调用接口,由第三方调用,如:调用微信、QQ、微博登陆接口

UI层:是用户使用该产品的入口,所有功能都通过这一层提供并展示给用户,所以测试工作大多集中在这一层进行。为了减轻这一层的测试人力和时间成本,早期的自动化测试工具主要针对该层设计。
除了UI层所展示的功能外,前端代码同样需要进行测试。在前端开发中最主要的是javascript脚本语言,而QUnit就是针对Javascript的一个强大的单元测试框架。

分层自动化测试投入比例

UI层自动化测试:投入比例小,原因:很难保证产品的质量,浪费人力、物力,因为越接近用户越容易变化

什么样的项目适合自动化测试

-任务测试明确,不会频繁变动。
-每日构建后的测试验证。
-比较频繁的回归测试。
-软件系统界面稳定,变动少。
-需要在多平台上运行的相同测试案例、组合遍历型的测试,大量的重复任务。
-软件维护周期长。
-项目进度压力不太大。
-被测软件系统开发较为规范,能够保证系统的可测试性。
-具备大量的自动化测试平台。
-测试人员具备较强的编程能力。

正常情况下满足三个:
1、软件需求变动不频繁: 自动化脚本变化的大小、频率决定自动化维护成本,变化大,测试人员要进行扩展、修改、调试
2、项目周期较长:需求确定,框架有好的设计,脚本开发调试时间较长
3、自动化测试脚本可重复使用:测试项目之间是否存在很强的差异性,如:c/s、b/s之间的架构所展示的功能差不多,对脚本可重复使用,选用的技术、工具是否适应这种差异,测试人员是否有能力设计出满足条件的差异

自动化测试及工具简述
自动化测试的概念有广义和狭义之分:广义上讲:所有借助工具来辅助进行软件测试的方式都可以称为自动化测试;狭义上讲:主要是指基于UI层的功能自动化测试。
1)UFT:(QTP:企业级自动化测试工具,提供强大、易用的录制回放功能,同时兼容对象和图像两种识别模式,支持B/S和C/S两种架构的软件测试 )
2)Robot Framework:基于Python语言编写的自动化测试框架,具备良好的可扩展性,支持关键字驱动,同时可测试多种类型的客户端或接口,可进行移动端测试
3)Watir:基于WEB测试,使用Roby语言开发
4)Selenium:用于web应用程序测试工具,支持多平台,多浏览器,多语言去实现自动化测试

什么是Selenium
selenium主要用于Web应用程序的自动化测试。
selenium特点:
-开源,免费
-多浏览器支持:Firefox,chrome,IE,Opera,Edge
-多平台支持:Liunx,Windows,MAC
-多语言支持:Java,python,Ruby,C#,JavaScript、C++
-对Web页面具有良好的支持作用;
-简单(API简单)、灵活(用开发语言驱动)
-支持分布式测试用例执行

selenium工具介绍
selenium 1.0


image.png

selenium IDE:是嵌入到火狐浏览器中的一个插件,可实现简单浏览器的操作录制与回放功能 。可快速创建bug脚本,帮助开发人员重现bug,IDE录制的脚本可转换成多种不同语言,从而帮助我们快速的开发脚本。

selenium Grid:一种自动化的测试辅助工具,gird通过利用现有的计算机基础设施,加快Web-App的功能测试。利用gird可方便地实现在多台机器上和不同环境中运行测试用例,如:进行兼容性测试,在谷歌浏览器上打开百度网页

selenium RC:支持多种不同语言编写的自动化测试脚本。分为client Libraries和Server
client Libraries 库:主要用来编写测试脚本,用来控制selenium Server库
Server:控制浏览器的行为。如:查询等

selenium Server分为Launcher、Http Proxy、Core
selenium Core:被嵌入到浏览器页面中的,Core是一堆堆javascript函数的集合,通过这堆javascript可实现程序对浏览器的控制
selenium Launcher:主要是启动浏览器。把selenium Core加载到浏览器页面当中,并把浏览器的代理设置成selenium Server的Http Proxy,也就是一种协议

Selenium 2.0
把WebDriver加入到这个家族中,简单用公式表示为:
Selenium 2.0=Selenium 1.0 + WebDriver
WebDriver可以看成 Selenium RC替代品
保留Selenium RC是Selenium为了保持向下的兼容性保留了
Selenium RC是在浏览器运行javascript应用,使用浏览器内置的javascript翻译器来翻译、执行selenese(即:selenium命令的集合)
WebDriver针对各个浏览器而开发,取代了嵌入到被测Web应用中的JavaScript。与浏览器的紧密集成支持创建更高级的测试,避免了JavaScript安全模型导致的限制。除了来自浏览器厂商的支持,WebDriver还利用操作系统级的调用模拟用户输入。(可直接控制浏览器)


作者:彩虹一号
来源:CSDN
原文:https://blog.csdn.net/jihong10102006/article/details/80690557
版权声明:本文为博主原创文章,转载请附上博文链接!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • (1)自动化测试简介 传统自动化测试: 基于产品UI层的自动化测试,它是将黑盒功能测试转化为由程序或工具执行得一种...
    初见_0308阅读 466评论 0 2
  • 洞见SELENIUM自动化测试 写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出...
    厲铆兄阅读 6,709评论 3 47
  • 一、selenium工具介绍 1、定义:浏览器自动化测试框架,主要用于web应用程序的自动化测试,同时支持所有基于...
    qianyewhy阅读 267评论 0 1
  • 基于 SELENIUM 的自动化测试架构 非常感谢各位查阅本篇文章,笔者在此感谢各位。 目前市面上有分门别类的自动...
    厲铆兄阅读 6,042评论 6 43
  • 自动化测试的优势 能够极大地提升测试的效率,测试人员可以迅速地在指定平台部署测试脚本且对相应功能进行测试。 “弱化...
    许小小晴阅读 704评论 0 0