自动化测试

从单元测试标准中学习

非 Y 不嫁゛ 提交于 2020-03-01 11:34:19
浅谈单元测试 是一件棘手的事情。我很确定测试人员在某个时候会抱怨开发人员没有正确地进行单元测试,导致交付的质量很差。另一方面,开发人员发现很难创建和维护单元测试用例以及维护系统的敏捷性。 毫无疑问,单元测试是SDLC的关键部分,也是迈向测试的第一步。 在这里,将讨论更多的单元测试标准,我们可以在测试和自动化中加以利用,以使其更加有效。 什么是单元测试 单元测试是一种测试形式,旨在确保应用程序的各个单元或组件按预期工作。在这种情况下,使用驱动程序对单元或组件进行独立测试。单元测试至关重要,因为它可以尽早发现缺陷,从而降低总体项目成本并确保代码稳定性。 作为测试工程师,确保单元测试是我们部署的一部分也是我们的责任。随着质量检查的角色在最近几年中不断发展,他们不仅执行功能 集成测试、单元测试、系统测试 ,而且还积极参与单元测试。在持续集成和交付中,质量保证的作用已变得多维且更加灵活。重要的是要知道在发行版中执行了哪些单元测试以及覆盖范围是多少。单元测试的重要性,我相信每个人都很清楚。 单元测试概念 了解单元测试的核心概念很重要。单元是可以独立执行的任何实体。可以是几行代码,也可以是整个功能。最重要的是,它应该是独立的可执行代码段。 在设计自动化框架时,我们还应该将测试视为一个独立的单元,以便可以独立测试和执行测试。 单元测试涉及单元测试框架,驱动程序,模拟/假对象。它基于白盒技术进行工作

AirtestIDE 游戏自动化(unity3d跨 Windows、Mac、IOS、Android)

我只是一个虾纸丫 提交于 2020-02-29 00:25:30
简介 参考:https://testerhome.com/topics/12391 AirtestIDE 是一个跨平台的UI自动化测试编辑器,适用于游戏和App。 自动化脚本录制、一键回放、报告查看,轻而易举实现自动化测试流程 支持基于图像识别的 Airtest 框架,适用于所有Android和Windows游戏 支持基于UI控件搜索的 Poco 框架,适用于Unity3d,Cocos2d与Android App 能够运行在Windows和MacOS上 网易内部已成功应用在数十个项目上,利用 手机集群 进行大规模自动化测试 访问 官网 通过视频查看更多特性。 通过本教程,你将学会如何上手自动化测试(或者写点脚本来自动玩游戏)。相信我,这个过程会非常愉快~ 安装 目前AirtestIDE提供了Windows和Mac两个版本的客户端,请从 官网 下载,解压即用。 连接设备 AirtestIDE目前支持测试Android和Windows上的应用,iOS支持正在开发中。 连接Android手机 通过ADB连接你的电脑和Android手机,即可开始调试Android应用。 ADB 是Google官方提供的Android调试工具。AirtestIDE依赖ADB与安卓设备进行通信。 打开AirtestIDE,按照以下步骤进行连接: 打开手机 设置-开发者选项-USB调试 开关,参考 安卓官方文档

Selenium Python使用技巧(三)

早过忘川 提交于 2020-02-28 02:10:48
书接上文和上上文: Selenium Python使用技巧(一) Selenium Python使用技巧(二) 处理不同情况的等待 在Selenium自动化测试中网页可能需要花费一些时间来加载,或者希望在触发测试代码之前可以看到页面上的特定Web元素。在这种情况下,需要执行“显式等待”,这是一段代码,通过它可以定义要发生的条件,然后再继续执行代码。 Selenium具有 WebDriverWait ,可以将其应用于任何具有条件和持续时间的Web元素。如果不存在执行等待的元素或发生超时,则可能引发异常。 在下面的示例中,我们等待 link_text=Sitemap 加载到页面上,并在 WebDriverWait 方法中指定了超时。如果在超时时间内未加载该元素,则抛出异常。 from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.common.by import By from pip._vendor.distlib import resources from selenium.webdriver

浅谈单元测试

好久不见. 提交于 2020-02-27 14:28:28
单元测试或是最好的项目文档。 很早之前在学习使用Java做测试的时候,得到过一个神秘大佬的帮助,在一起聊过单元测试,基本结论就是:单元测试大概率没啥鸟用。 众所周知,自动化测试相比手动测试一个比较明显的特点就是见效慢,需要积累一定的时间所产生的的价值才能超过手动测试,这还是在比较理想的情况下。某些时候可能永远也超不过。而单元测试更甚,据大佬和吹牛逼的群聊中判断:好的单元测试代码大概是被测代码的2-3倍,这种工作量对于开发人员来讲是不可接受的。单元测试见效比自动化测试更慢,这一点也是大家的共识,甚至到不了见效的时候就黄了。 之前对单元测试进行过一些尝试,写过一点文章: Maven和Gradle中配置单元测试框架Spock Groovy单元测试框架spock基础功能Demo Groovy单元测试框架spock数据驱动Demo 人生苦短?试试Groovy进行单元测试 使用WireMock进行更好的集成测试 如何测试这个方法--功能篇 如何测试这个方法--性能篇 单元测试用例 JUnit 5和Selenium基础(一) JUnit 5和Selenium基础(二) JUnit 5和Selenium基础(三) 近几日一直在对之前的性能测试框架进行优化,在这个过程中,我之前利用Groovy单元测试框架spock写过的两个性能测试框架的单元用例起到了非常大的帮助

测试思想之分层

放肆的年华 提交于 2020-02-26 16:32:31
在理解分层自动化之前,我们先看自动化测试金字塔。自动化测试金字塔在测试领域耳熟能详,其中UI代表页面级系统测试,service代表服务业务测试(接口测试),unit代表单元测试。金字塔越高,表示需要投入的精力和工作量越大。 单元测试(unit): 它可以通过mock框架,模拟各种异常场景,外部依赖最少,且可以做到测试粒度到最小的一种测试方法。也因为依赖少,可方便随时随地执行,也让问题排查很简单。这是一切测试的地基。 接口测试(service): 这里要求测试人员对系统的结构和系统间的调度非常清楚,同时要了解接口逻辑关系,否则接口测试代码很容易遗漏一些异常场景。这一层由于含有一些业务逻辑和多接口的一个集成,所以相对单元测试来说,多了一些外界依赖,导致问题定位不会有单元测试层那么准确。因此投入会比单元测试多一些。 页面测试(UI): 是常见的黑盒自动化测试场景。它最接近用户真实场景,也容易发现问题,但它的实现成本最高且太容易受外部依赖,影响脚本成功率,所以处在金字塔的顶端,但它不是金字塔的全部。自动化测试的劣势,其中80%都是因为UI自动化。 以上就是分层自动化的主体三层,由此可见,分层自动化测试倡导的就是,将系统分层,不同层次用合适的自动化方法进行测试的一种测试策略。某个项目是否都能用自动化覆盖,那就要看测试负责人的分层策略是否合理、全面 来源: https://www

django应用的测试

徘徊边缘 提交于 2020-02-26 14:19:02
本文章默认用户使用win10系统,并且已经安装pycharm、git、django2.2.5及配套第三方库(python3.6.0及以上版本,且为anaconda环境) 前言 其实在上一期django文章中就有测试的出现,我们 使用shell测试数据库的功能 ,但这属于手动测试 在这篇文章中,我们要介绍的是自动化测试,即 当你创建好了一系列测试,每次修改应用代码后,就可以自动检查出修改后的代码是否还像你曾经预期的那样正常工作,而不需要花费大量时间来进行手动测试 简直懒人福音 对于任何一个项目来说,编写 自动化测试都是十分重要的 测试驱动 一般我们采取 先写测试后写代码 的原则 自动化测试 发现漏洞 我们在上篇文章的结尾说到,我们的投票系统存在一个bug: Question.was_published_recently() 方法其实并不能正常判断该问题是否在刚才成功创建 ,在这里我们可以手动测试 在进入虚拟环境与交互式命令台后,依次输入以下命令 >>> import datetime >>> from django.utils import timezone >>> from polls.models import Question >>> future_question = Question(pub_date = timezone.now() + datetime

浅谈自动化测试

こ雲淡風輕ζ 提交于 2020-02-26 14:07:12
本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/ZsgstdmaiFUKkLItc6y-Lw 作者:何彦军 软件测试作为软件生命周期中不可缺少的组成部分,对提高软件质量起着重要作用。随着软件测试的发展,自动化测试技术也得到了很大提高。 本文首先介绍了自动化测试的概念、分类和现状,并分别对不同端上的自动化测试实现原理进行了详细地分析和阐述,通过对目前主流的一些自动化测试框架和工具的比较,指出了当前不同端上实施自动化测试的痛点和困难。 最后通过由数据驱动的自动化测试向关键词驱动的自动化测试的探索,进而由传统模式下的自动化测试转向基于AI的自动化测试的摸索,对自动化测试的未来进行了展望。 一、自动化测试的概念 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。 二、适用自动化测试的项目特征 三、软件测试的分类 按项目流程: 单元测试、集成测试、系统测试、回归测试、验收测试 按技术: 黑盒测试、白盒测试、灰盒测试 按功能: 逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试 按性能: 时间性能测试、空间性能测试 按自动化: 功能自动化、性能自动化 项目流程 + 自动化 → 分层测试:unit测试(单元测试)、service测试(接口测试)、UI测试 四、自动化测试的现状 1、单元测试(极限编程-测试驱动开发)

信必优银行自动化测试解决方案

爱⌒轻易说出口 提交于 2020-02-26 02:42:42
客户是提供全球金融服务的著名欧洲银行 系统是基于Web的 现金管理系统 ,80多个国家使用,有非常严格的质量和测试需求 新版本发布每月2次,需要频繁进行大量的冒烟测试和回归测试,而手工测试覆盖全部功能需要2个月/轮 现有测试用例数量达6900个;展现层使用Flex技术,测试工具支持差 解决方案 基于QTP搭建了 自动化测试 平台 采用数据驱动技术(Data-driven),将测试数据和测试程序分离,极大地提高了程序的可维护性 编写了可复用的模块,如文件读写、日志管理、异常处理、结果统一存储与分析等 将现有的测试用例分类,按照计划分批实现自动化,目前已完成80%的测试用例自动化 项目成果 每发布一次小版本,之前需要20.9人/月进行测试验证, 实施自动化测试后仅需5.7 人/月; 在测试周期和覆盖率也上满足了版本每月发布2次的任务 在此项目上实施的自动化测试框架和公用模块可复制到其他项目 来源: oschina 链接: https://my.oschina.net/u/4158156/blog/3158165

浅谈自动化测试

点点圈 提交于 2020-02-25 23:38:29
本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/ZsgstdmaiFUKkLItc6y-Lw 作者:何彦军 软件测试作为软件生命周期中不可缺少的组成部分,对提高软件质量起着重要作用。随着软件测试的发展,自动化测试技术也得到了很大提高。 本文首先介绍了自动化测试的概念、分类和现状,并分别对不同端上的自动化测试实现原理进行了详细地分析和阐述,通过对目前主流的一些自动化测试框架和工具的比较,指出了当前不同端上实施自动化测试的痛点和困难。 最后通过由数据驱动的自动化测试向关键词驱动的自动化测试的探索,进而由传统模式下的自动化测试转向基于AI的自动化测试的摸索,对自动化测试的未来进行了展望。 一、自动化测试的概念 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。 二、适用自动化测试的项目特征 三、软件测试的分类 按项目流程: 单元测试、集成测试、系统测试、回归测试、验收测试 按技术: 黑盒测试、白盒测试、灰盒测试 按功能: 逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试 按性能: 时间性能测试、空间性能测试 按自动化: 功能自动化、性能自动化 项目流程 + 自动化 → 分层测试:unit测试(单元测试)、service测试(接口测试)、UI测试 四、自动化测试的现状 1、单元测试(极限编程-测试驱动开发)