自动化测试

【软件测试】软件测试修炼之道_课程学习笔记

梦想的初衷 提交于 2020-03-09 20:33:23
目录 开篇 第一步,成为互联网时代合格的测试工程师 第二步,成为互联网时代优秀的测试工程师 第三步,成为互联网时代的测试架构师 开篇 第一步,成为互联网时代合格的测试工程师 如果你是入行不满 3 年的测试工程师,一定对此有迫切需求。此时,你必须具有快速学习的能力,能迅速掌握被测软件的业务功能与内部架构,并在此基础上运用各种测试方法,尽可能多地发现潜在缺陷,并能够在已知缺陷的基础上进一步发现相关的连带缺陷。从知识体系上看,你需要有比开发人员更全面的计算机基础知识,还需要了解互联网的 基础架构、安全攻击、软件性能、用户体验和常见缺陷 等知识。从测试技术上看,你需要能够使用 常见的测试框架或者工具,需要具有一定的自动化测试脚本的开发能力 ,这可以把你从大量重复的工作中解放出来,然后你才能有时间去做更有意思的工作。 第二步,成为互联网时代优秀的测试工程师 如果你想从“合格”变为“优秀”,那必须先认识到两者的差距在哪里。 首先,合格的测试工程师关注的是纯粹的测试,而优秀的测试工程师关注更多的是软件整体的质量,需要根据业务风险以及影响来制定测试策略,有效控制测试的时间和成本,并且能够对测试框架以及工具做出适合项目需求的选型 。以新房装修为例,合格的测试工程师就是各个工序的装修师傅,他们只管按照设计要求做好自己的工序,而优秀的测试工程师更像是个包工头,他们关心的是 整体交付的质量 。其次

WEB自动化测试中针对验证码的解决方案 (三)

风格不统一 提交于 2020-03-08 14:13:32
说明:本文首发于《程序员》杂志2006年第11期,在此连载,转载请先得到本人同意,谢谢。另,本文与程序员杂志上的内容有少许差异。 4 自动测试中 WEB 验证码处理的方法 验证码给自动测试带来了很大的问题,但也并不是完全不能解决。结合我们在上文讨论的验证码实现的方法,图 4 给出了验证码实现的大致原理图。 从图 4 中可以看到,从技术的角度来看,至少设计两种不同的方法来实现自动测试工具对验证码的处理: 1、 完全从客户端角度考虑,靠模式识别的方法识别出验证码图片对应的字符串; 2、 从服务端角度考虑,如果自动测试工具可以获取 Session 中存储的随机数,也就能正确处理验证码了。 这两种方法是解决自动化测试中验证码问题的主要方法,我们分别称其为 识别法 和 服务端插入法 。这两种方法在实现方法上侧重点不同,适用的场合也不同。 识别法 完全不用考虑服务端应用的实现,通过各种技术方法对显示的验证码图片进行“破译”,这样,即使完全不能接触到服务端代码,也能让自动化测试在有验证码的情况下进行下去;但这种方法当然也有其致命的缺点:只能对简单的验证码进行识别,对复杂的验证码,根本就无法识别。 而 服务端插入法 则从服务端入手,通过提供一个额外的客户端接口,向客户端只需要知道该接口的调用方法,就能通过该接口来获取该页面的验证码图片对应的实际数据,并使用该数据继续测试。 另一方面

第 5 章 自动化测试模型 - Selenium3 自动化测试

雨燕双飞 提交于 2020-03-07 19:55:45
在介绍自动化测试模型之前 ,我们先来了解库 、框架和工具之间的区别 。 5.1 基本概念 1.库 库的英文单词是 Library,库是由代码集合成的一个产品,可供程序员调用。面向对象的代码组织形成的库叫类库,面向过程的代码组织形成的库叫函数库。 从这个角度看,第 4 章介绍的 WebDriver 就属于库的范畴,因为它提供了一组操作 Web 页面的类与方法,所以可以称它为 Web 自动化测试库。 2.框架 框架的英文单词是 Framework,框架是为解决一个或一类问题而开发的产品,用户一般只需使用框架提供的类或函数,即可实现全部功能。 从这个角度看,unittest 框架(第 6 章)主要用于测试用例的组织和执行,以及测试结果的生成。因为它的主要任务就是帮助我们完成测试工作,所以通常称它为测试框架。 3.工具 工具的英文单词是 Tools,工具与框架所做的事情类似,只是工具提供了更高层次的封装,屏蔽了底层的代码,提供了单独的操作界面供用户使用。 例如,UFT(QTP)、Katalon 就属于自动化测试工具。 5.2 自动化测试模型 自动化测试模型可分为线性测试、模块化与类库、数据驱动测试和关键字驱动测试,下面分别介绍这几种自动化测试模型的特点。 1.线性测试 通过录制或编写对应用程序的操作步骤会产生相应的线性脚本,每个线性脚本相对独立,且不产生依赖与调用

压力测试工具kylinTOP_奇林软件

我们两清 提交于 2020-03-06 01:23:55
kylinTOP(kylin Test Observe Platform)是一款国产的集性能测试、自动化测试(UI、接口、APP)、业务&接口监控于一体的产品。kylinTOP是B/S架构的分布式系统,支持跨平台(WINDOWS/LINUX/SOLARIS/麒麟/MAC等)运行。官网: www.70testing.com 自动化测试领域: 首次引入AI概念,突破业界传统的自动化测试工具设计的思路,使用用例设计效率、运行稳定性、可维护性、易用性上有质的飞跃。该软件具有 快速生成用例、元素智能定位、步骤智能等待 等一系列智能化特点,很好的适应了软件敏捷开发时代的需要。通过kylinTOP,使用者只要按正常的业务操作即可生成用例,后期即使定位元素重复或变更也不会影响自动化测试的执行,开启了软件自动化测试的智能化时代。 性能测试领域: 打破了国外企业垄断地位,首次使中国具有一款真正意义上的国产化软件性能测试工具。性能测试工具的仿真度、问题分析能力、资源消耗上要优于美国的LoadRunner。目前在 军工领域、测评检测机构、国有企业、银行体系、大型企业 有着广泛的应用。支持的协议较多,尤其在视频领域支持的协议非常多,具有独特的优势。 仿真能力 仿真度就是性能测试工具模拟客户端向服务端下发请求与客户端的相似程度的能力,仿真度越高,测试获得的结果越可信。

关于《Selenium3自动化测试实战--基于python语言》

我是研究僧i 提交于 2020-03-05 17:27:28
2016年1月,机缘巧合下我出版了《Selenium2自动化测试实战--基于python语言》这本书,当时写书的原因是,大部分讲Selenium的书并不讲编程语言和单元测试框,如果想在项目中使用Selenium,几乎离不开编程语言和单元测试框架,难道你只用Selenium IDE去录制/回放脚本么? 没想到受到许多测试人员的欢迎,我会时常去看网上的书评。大多是感谢的留言,书的销量也印证了这一点,当然,也有批评和建议。在此,表示感谢。 随着,我对Selenium自动化技术的理解,越来越发现《Selenium2自动化测试实战--基于python语言》书中有许多不足之处。 2017年的时候,我就有萌生了要重写一版的想法,当时能想到的改动的地方不多。只是一定未开始动笔。知道2018年下半年,我才开始重新写这本书。 接下来,我将简单的向你介绍以下新书的章节,以及我的改动。 第一章: 不讲什么是软件测试,以及测试的分类这些过于基础的东西了。快速的帮助你对自动化测试,以及Selenium、appium有一个认识。 第二章: 搭建环境。 第三章: python基础,修改了部分列子,以及我认识上的错误,比如,我把 list/列表 称为 数组 ,这其实源于我学C/Java语言,就把他们的叫法照搬了过来。显然,是不太合适的。随着对python的语言的使用,也有了更多的认识。如果你还不会python

软件测试方法的分类细谈

天涯浪子 提交于 2020-03-05 06:54:43
软件测试方法种类繁多,记忆起来混乱, 因此,我通过查阅资料,参考一些书籍,把常用的软件测试方法列出来,方便认识软件测试的方法。 从测试设计方法分类 测试名称 测试内容 Black box 黑盒测试 把软件系统当作一个“黑箱”,无法了解或使用系统的内部结构及知识。从软件的行为,而不是内部结构出发来设计测试. White box 白盒测试 设计者可以看到软件系统的内部结构,并且使用软件的内部知识来指导测试数据及方法的选择。 Gray box 灰盒测试 介于黑盒和白盒之间 总结: 实际工作中,对系统的了解越多越好。目前大多数的测试人员都是做黑盒测试,很少有做白盒测试的。因为白盒测试对软件测试人员的要求非常高,需要有很多编程经验。 从测试是手动还是自动上分类 测试名称 测试内容 Manual Test 手动测试 测试人员用鼠标去手动测试 (测试GUI) Automation 自动化测试 用程序测试程序 (测试API) 对于项目来说, 手动测试和自动化测试同等重要,都是保障软件质量的方法。 目前大部分的项目组都是手动测试和自动化测试相结合。因为很多测试无法做成自动化,很多复杂的业务逻辑也很难自动化, 所以自动化测试无法取代手动测试。 对于软件测试人员个人发展来说, 做自动化测试是个挑战,也是测试人员发展的一个方向,需要测试人员学习大量的开发知识。从长远角度来看,自动化测试肯定是越来越吃香的。

软件自动化测试工具历史发展漫谈

大兔子大兔子 提交于 2020-03-03 07:54:17
软件测试最早可以追溯到1958年的美国第一个载人航天计划-水星计划,当时在该计划中首次诞生了软件测试团队。当然,在此之前也肯定是有软件测试存在的,但远没有这次有了自己的江湖地位。但这也仅仅是软件测试的萌芽,远没有到开宗立派的地步。因为你想想这时候软件也只是萌芽阶段,各种软件的理论,标准都还没有诞生,所以更别提软件测试了,因此很长一段时间内,软件测试时间内是没有什么发展的。 时间到了1975年,这一年,软件行业的一个超级豪门诞生了-微软。我不知道微软是不是第一家纯软件开发的公司,但微软确实使软件开发得到了快速的发展。也是从那时候起,美国的软件行业一骑绝尘。随着软件行业的蓬勃发展,软件的规模越来越大,复杂度也越来越高,随着而来的是软件的质量被逐渐的关注起来,软件测试的理论逐渐得到积累。到了1979年,梅尔斯出版了软件测试第一版本著作《软件测试的艺术》这本书,第一次明确的给出了软件测试的定义“The process of executing a program or system with the intent of finding errors”,至此软件测试算是正式的开宗立派, 有了自己的江湖地位。个人认为现代测试的开端应该就由此开始。推荐大家都去读一读这本书,不一定能学到多少新东西,但是就凭它的江湖地位就足以让大家去瞻仰一下了。 自动化测试的历史演进 软件测试的开宗立派

《自拍教程33》思维篇_内容介绍

六眼飞鱼酱① 提交于 2020-03-03 00:30:21
当前测试人员的主要矛盾: Python基础语法都看了学了几遍了。 用不上,不会写,网上的例子又大部分是面向开发人员的, 好多都是人工智能,大数据,区块链,或者数学算法题。 偶尔有Selenium面向Web测试人员, 但是Selenium作为Python入门实例, 也不合适,因为还是太难了。 武散人的教学思维 学Python自动化测试,先从命令行命令着手学习, 先学会用Python来调用各种命令行命令,来编写批处理脚本, 再逐步学会,面向过程函数,面向对象类。 要结合实际测试工作,开展自动化测试实践, 逐步培养Python编程思维,要让Python编程, 成为日常测试工作中的重要工具, 让各位测试同学写的出来。 Python在测试场景的应用 Python在测试方面的主要应用优势是: 能调用各种命令 文本处理能力强 各种类型的第三方模块比较多,支持较好 主要的自动化测试场景对象及内容如下: */ /*--> */ } 场景序号 自动化测试场景 测试对象及内容简介 场景一 移动终端测试相关 主要是基于Android或Windows的移动终端系统或App测试, 包括我们常见的: 手机系统测试,手机App测试, 车载系统测试,车载App测试, 电脑系统测试,电脑桌面应用App测试, 平板电脑Pad测试, 智能电视测试, 智能手表测试, 智能音响(无界面)测试, 智能学习机测试

带有机器人框架的.NET自动化测试

余生颓废 提交于 2020-03-02 17:18:40
‍   Clayton Neal在 软件测试 和质量保证方面有超过13年的经验,其中有八年的Windows, web,和 移动应用 程序的测试自动化经验。他在测试领域的所有等级都工作过。最近他在Bloomberg and Misys担任QA经理。同时他还是Sogeti的自动化测试顾问。Clayton对 自动化测试 超迷恋,还见识了如何亲自成功实施测试自动化。 ?   测试自动化的好处我们都很清楚,更快地反馈问题,减少手工测试,持续集成就是其中随口可举的。测试团队成员越多,公司使用自动化越多,就越好。为此,我们必须脱离实施测试自动化的技术方面,而去考虑编写和运行自动化测试的非技术员工层面。无论开发团队是否在做敏捷验收测试驱动开发(ATDD),敏捷行为驱动开发(BDD)或使用传统的瀑布方法,团队可用来进行自动化的成员越多,自动化测试覆盖范围就越广。    关键字驱动测试是一种由自动化工程师开发被测应用程序内可重复使用行为的方法。然后非技术用户就可以用任何输入参数将所得的可重复使用的关键字行为库进行排序,确定测试用例。比如,一个关键字可以是点击按钮(在一个按钮控件上点击)或输入文本(在一个文本框控件中输入文本),然后这些关键字就可以被用来填写一个登录表格并点击 OK按钮。该方法的好处是:自动化工程师集中干他们擅长的,即开发关键字的测试自动化的脚本或编程

UI自动化测试框架之Selenium关键字驱动

北城以北 提交于 2020-03-02 11:24:03
一、原理及特点 1. 关键字驱动测试是数据驱动测试的一种改进类型 2. 主要关键字包括三类:被操作对象(Item)、操作(Operation)和值(value),用面向对象形式可将其表现为Item.Operation(Value) 3. 将测试逻辑按照这些关键字进行分解,形成数据文件。 4. 用关键字的形式将测试逻辑封装在数据文件中,测试工具只要能够解释这些关键字即可对其应用自动化 二、准备 使用工具:eclipse 用到的第三方jar包:poi.jar(操作excel);selenium.jar 理解难点:java反射机制;逐步分层 三、 框架构思 1、编写脚本 首先我们来写一个登陆开源中国的脚本 public class Login_Script { public static WebDriver driver=null; public static void main(String []agrs) throws InterruptedException{ // 启动火狐浏览器 driver= new FirefoxDriver(); // 最大化 driver.manage().window().maximize(); // 打开开源中国网址 driver.get("http://www.oschina.net/"); // 点击登录 driver.findElement