自动化测试

嵌入式软件自动化测试的趋势

左心房为你撑大大i 提交于 2020-01-15 03:28:00
现在软件市场越来越推崇敏捷开发和持续交付,要在这样的环境下取得竞争优势,各个企业必须得开发出稳健的应用程序,为用户提供无可比拟的直观体验。而且,这些应用程序还要能够达到组织机构的业务目标。 自动化测试的重要意义 在这个竞争日益激烈的软件市场,能否抢占市场先机对于软件产品能否取得成功可能起着决定性的作用。为了缩短产品的交付时间,企业必须进行严格的自动化测 试。也就是说,软件开发阶段(从创建到部署)的所有步骤都要实现自动化。因为利用自动测试,不仅能够开发出更优质的软件产品,还能够让产品尽快投放市场。 自动化测试能够及时给出反馈,使得开发运营人员能够尽快想办法提高产品的质量。发现问题这一阶段所花费的时间越长,团队付出代价就越高。所以能够尽早发现问题具有十分重大意义,因为只有这样,才能够有足够的时间来修复问题。 要实现自动化测试的效率最大化,企业必须着眼于一些基本要素,尤其是敏捷宣言中的首要原则:“我们的最高宗旨就是通过尽快、持续交付高质量的软件产品,来满足客户的需求。”顾客是上帝,所以企业一定要用更好、更快的服务保证上帝高兴。 自动化测试的关键要素 如今,自动化测试已经成为软件开发生命周期的一个重要组成部分,测试经理和开发团队也越来越依赖于自动化测试。但是,与此同时,他们也面临着一个很现实的 问题:他们不仅要管理很多的测试,还要解读很多的测试结果。所以

敏捷实践经验分享,企业如何在敏捷开发中实施DoD

隐身守侯 提交于 2020-01-15 00:17:11
一、什么是DoD? 当你有两个或更多的人参与同一个事情的时候,我们的“团队”就产生了,这时我们最重要的事情,就是要设定和统一团队的期望值,在本文中,这就是“完成标准”。 一个迭代做完后,团队要进行验收,来决定本个迭代是否完成。但每个团队对于是否完成无法达成统一,有的认为编码完成,就表示任务完成了;有的认为还需要简单自测一下,确保功能可以正常使用;还有的认为需要把自动化用例写完并测试通过才算完成。 为了避免这个问题,在敏捷软件开发中,常用Definition of Done“完成的定义”来表示工作是否已完成,不同的活动有不同的完成定义。首先要知道,所有的DoD都不是一成不变的,在随着时间的推移、经验的积累、成员的变更、项目的变更,我们的DoD也会有很大的不同,所以,我们也需要定期地检查和改进。 二、 DoD的分类 有了上面的思想准备,我们再来看下面的DoD定义,就会觉得并没有那么难了。 一、迭代DoD 最典型的是迭代DoD,这也是最初DoD应用的地方。常见的一些规则有: 所有代码通过静态检测,严重问题都已修改,静态分析的规则参见... 所有新增代码得到人工评审 所有完成的用户故事都有对应的测试用例 测试用例都已执行 所有完成的用户故事得到Product Owner的验证 二、发布DoD 对于发布,一般就有更加严格的要求,发布DoD的典型条款有: 完成发布规划所要求的重点需求

Angular学习笔记—创建一个angular项目

筅森魡賤 提交于 2020-01-14 13:37:08
开始项目前,你需要先安装node和npm,然后执行npm install -g @angular/cli安装Angular CLI。 如何安装node.js和npm npm使用介绍 1.安装angular-cli Angular提供了一个命令行工具angular-cli,它能让用户通过命令行创建和管理项目。 安装命令: npm install -g angular-cli@1.0.0-beta.28.3 安装后可输入指令ng version查看版本。 2.创建项目 ng new newApp //建立一个新的项目 创建项目时会自动安装node包,如果安装太慢,可以先跳过安装,然后使用cnpm命令安装: ng new newApp --skip-install cd newApp cnpm install cnpm命令是npm在淘宝镜像的命令。 3.启动项目 进入项目目录内,输入命令: ng sever 默认端口号是4200,如需修改端口使用命令: ng serve -p 端口号 4.项目打包 打包命令: ng build 由于 用angular-cli创建的项目,有很多依赖之类的文件,但是实际上好多用不着这就需要再次压缩,要么会因为打包文件过大而影响加载速度,这里使用命令: ng build --prod --aot //在终端使用此命令会使你的项目压缩到原来的30%左右 5

Selenium自动化测试模型介绍。

青春壹個敷衍的年華 提交于 2020-01-13 05:23:41
自动化测试模型分为四大类: 线性测试、 模块化驱动测试、 数据驱动测试和关键字驱动测试。 本地Web测试站点搭建,下载:【 一键安装包(运行环境+ECMS) 】(含安装说明)。 工具:帝国CMS 通道: 帝国软件 线性模式 通过录制或编写对web的操作步骤产生相对应的线性脚本,并且每个测试脚本相对独立,不依赖或调用其他模块,单纯的模拟用户操作场景。 ''' 自动化测试模型--线性测试 案例:在帝国软件主页模拟自动登录和退出操作。 ''' from selenium import webdriver from time import sleep driver = webdriver.Chrome() url = "http://localhost/" driver.get(url) # 设置隐性等待5s driver.implicitly_wait(5) userName = "XXXXX" passWord = "XXXXX" # 输入登录信息 driver.find_element_by_xpath("//form[@name='login']/input[3]").clear() driver.find_element_by_xpath("//form[@name='login']/input[3]").send_keys(userName) driver.find

高效测试框架推荐之Ginkgo

*爱你&永不变心* 提交于 2020-01-12 18:16:02
自2015年开始,七牛工效团队一直使用Go语言+ Ginkgo 的组合来编写自动化测试用例,积累了大约5000+的数量。在使用和维护过程中,我们觉得Ginkgo的很多设计理念和功能非常赞,因此特分享给大家。 本篇不是该框架的入门指导。如果您也编写或维护过大量自动化测试用例,希望能获得一些共鸣. BDD(Behavior Driven Development) 要说Ginkgo最大的特点,笔者认为,那就是对BDD风格的支持。比如: Describe("delete app api", func() { It("should delete app permanently", func() {...}) It("should delete app failed if services existed", func() {...}) It's about expressiveness。Ginkgo定义的DSL语法(Describe/Context/It)可以非常方便的帮助大家组织和编排测试用例。在BDD模式中,测试用例的标题书写,要非常注意表达,要能清晰的指明用例测试的业务场景。只有这样才能极大的增强用例的可读性,降低使用和维护的心智负担。 可读性这一点,在自动化测试用例设计原则上,非常重要。因为测试用例不同于一般意义上的程序,它在绝大部分场景下,看起来都像是一段段独立的方法

初学者的API测试技巧

只谈情不闲聊 提交于 2020-01-10 10:15:05
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> API(应用程序编程接口)测试是一种直接在API级别执行验证的软件测试。它是集成测试的一部分,它确认API是否满足测试人员对功能、可靠性、性能和安全性的期望。与UI测试不同,API测试是在没有GUI层执行操作的。 API测试技巧 Web API有两大类Web服务:SOAP和REST。SOAP(简单对象访问协议)是W3C标准定义的一种标准协议,用于发送和接收Web服务请求和响应。REST(表示状态传输)是使用HTTP的基于Web标准的体系结构。与基于SOAP的Web服务不同,没有针对RESTful Web API的正式标准。 以下是API测试的10条基本技巧: 了解API要求 在测试API之前,需要回答以下问题以彻底了解API的要求: API的功能是什么?业务流程是什么?使用场景是什么? 通常,应用程序的API用于对资源进行操作。它们常用于读取,创建,更新。了解API的用途将为输入和输出准备好测试数据奠定坚实的基础。此步骤还可以帮助您定义验证方法。例如,对于某些API,您将针对数据库验证响应。对于其他一些,最好根据其他API来验证响应。 例如,“创建用户” API的输出将是“获取用户” API的输入以进行验证。“获取用户” API的输出可以用作“更新用户” API的输入,依此类推。 指定API输出状态

初学者的API测试技巧

你说的曾经没有我的故事 提交于 2020-01-10 10:00:38
API(应用程序编程接口)测试是一种直接在API级别执行验证的软件测试。它是集成测试的一部分,它确认API是否满足测试人员对功能、可靠性、性能和安全性的期望。与UI测试不同,API测试是在没有GUI层执行操作的。 API测试技巧 Web API有两大类Web服务:SOAP和REST。SOAP(简单对象访问协议)是W3C标准定义的一种标准协议,用于发送和接收Web服务请求和响应。REST(表示状态传输)是使用HTTP的基于Web标准的体系结构。与基于SOAP的Web服务不同,没有针对RESTful Web API的正式标准。 以下是API测试的10条基本技巧: 了解API要求 在测试API之前,需要回答以下问题以彻底了解API的要求: API的功能是什么?业务流程是什么?使用场景是什么? 通常,应用程序的API用于对资源进行操作。它们常用于读取,创建,更新。了解API的用途将为输入和输出准备好测试数据奠定坚实的基础。此步骤还可以帮助您定义验证方法。例如,对于某些API,您将针对数据库验证响应。对于其他一些,最好根据其他API来验证响应。 例如,“创建用户” API的输出将是“获取用户” API的输入以进行验证。“获取用户” API的输出可以用作“更新用户” API的输入,依此类推。 指定API输出状态 您需要在API测试中验证的最常见的API输出是响应状态代码。

从0开发3D引擎(四):搭建测试环境

有些话、适合烂在心里 提交于 2020-01-09 09:10:32
目录 上一篇博文 了解自动化测试 单元测试 集成测试 端对端测试 通过打印日志来调试 了解运行测试 断点调试 通过Spector.js测试WebGL 通过log调试Shader 移动端测试 了解性能测试 测试时间开销 测试内存开销 搭建本地测试环境 大家好,本文介绍了3D引擎的测试方法,搭建了本地的测试环境。 上一篇博文 从0开发3D引擎(三):搭建开发环境 了解自动化测试 对于引擎开发这种复杂、长期的项目,为了减少bug,提升长期的开发效率,自动化测试必不可少。在我们的 Wonder.js 引擎中,包括了本节介绍的3种自动化测试,测试覆盖率达到了95%。 本系列为了节省篇幅,不进行自动化测试。因此本节只进行简单的介绍,不给出实际的案例,读者可以到 Wonder.js->test/ 目录下查看自动化测试实例。 单元测试 我们需要写测试用例对单个函数进行单元测试。 搭建环境 使用 jest 作为测试框架, sinon 进行stub。 如果读者想了解stub的概念,可以参考 我对Stub和Mock的理解 因为不能直接使用js库,需要写对应的 FFI (类似于typescript的d.ts文件)才能在Reason中被调用,所以我们可以使用 bs-jest 和Wonder的 Wonder-bs-sinon 作为FFI 集成测试 相对于单元测试,集成测试的测试目标变为某个特性

单元测试用例

两盒软妹~` 提交于 2020-01-06 23:42:24
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 单元测试是测试的等级,其中个别单元/组件(称为单元)的最小部分被测试以确定它们是否适合使用。 单元测试用例的编写和执行是由开发人员(一般情况,当然也有二般情况)完成的,以确保各个单元都能按预期工作。各个组件的最小部分,测试对象如函数,过程,类,接口等。 如果以函数为例,则在将输入参数传递给函数时,请检查函数是否应返回期望值。该测试的主要目的是检查单元是否按照设计工作,并更合理地处理错误和异常,并对各种正向、反向的情况进行兼容。 单元测试被认为是白盒测试的一种。这是测试级别最低的一层,是在进行集成测试之前开始的。 单元测试用例指南: 单元测试计划/案例应单独提供,不应将其与其他步骤合并。尝试所有可能的测试方案,其中包括不常见和替代的流程。一旦项目进入施工阶段,开发人员就会倾向于仅测试成功情况或已经在编码完成的情况。 软件开发和单元测试需要划分为不同的阶段,并相应地安排交付时间。 需要将单元测试结果作为一个单独的交付项进行处理。这将有助于在初期阶段过滤掉业务流程中的部分错误,而不是在集成测试或系统测试中。 通过统计计划,执行,通过和失败的测试用例计数来掌握项目进度。 尝试在开发的过程中进行一些即时的测试。 单元测试用例清单: 输入数据验证: 本节包含了一系列检查,这些检查通常可以对输入到应用程序系统中的数据采用。

如何学习Java基础

陌路散爱 提交于 2020-01-06 21:53:43
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Java是用于软件开发的最流行的编程语言,无论做自动化测试或者测试开发,Java依然是最重要的选项之一。 为什么要学习Java? Java很容易学习 Java是通用的,面向对象的,高性能,解释型,安全性和多线程语言。基本上,Java简化了建立网络连接所需的过程。它的安全模型可以防御很多攻击。许多繁琐的过程会在框架中自动运行,从而节省的时间。Java是静态类型的,因此在编译器中代码查找错误更加容易。Java是绝对初学者的绝佳第一语言。 Java很流行 Java是世界上最常用的编程语言之一。实际上,它在拥有开发人员,这意味着有一个庞大而成熟的社区,为Java程序员和学习者提供支持。如果遇到困难,可以确定有人在网上解决了你的问题。 Java处理现实问题 Java以“write once, run anywhere”功能而闻名。这意味着用Java编译的代码可以在任何平台上运行,而无需重新编译。这就是Java在各种分布式环境中使用的原因。就软件测试来讲,几乎所有的流行框架UiAutomator、Selenium、appium、airtest、robotframework等等都提供了Java语言的支持。 Java将促进您的职业发展 由于Java语言的流行,Java项目的应用,因此Java程序员有很多工作机会