[关闭]
@MRsunhuimin 2023-07-26T05:13:22.000000Z 字数 3705 阅读 81

自动化测试

测试


https://blog.csdn.net/weixin_42914706/article/details/117494011

1. 自动化测试的概述

1.1 什么是自动化测试

    认为驱动测试转化为机器执行的过程。实际是借助工具或者编写自动化测试脚本,来模拟手工测试过程。比如;项目中持续的迭代或者持续的回归测试。

    满足自动化条件:

    1)项目需求变动不频繁

    2)项目周期足够长

    2)自动化脚本可重复使用

1.2 自动化测试的基本流程

https://img-blog.csdnimg.cn/20210609220209801.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjkxNDcwNg==,size_16,color_FFFFFF,t_70

Created with Raphaël 2.1.2Start分析测试需求制定测试计划设计测试用例编写测试脚本执行测试脚本End
  • 1,分析测试需求
    需求就是测试目标,也可以看作自动化的功能点。分析测试覆盖率与自动化颗粒度。
  • 2,制定测试计划
    自动化测试之前需要制定测试计划,明确测试对象,测试目的,测试项目内容、测试方法和测试资源分配;
  • 3,设计测试用例
    考虑软件真实使用环境,例如对性能、安全
  • 4,搭建测试环境
    自动化测试人员在用户设计工作开展的同时即可着手搭建测试环境,自动化测试脚本需要录制页面控件、添加对象。测试环境的搭建,包括测试系统的部署、测试硬件的调用、测试工具的安装和设置、网络环境的布置。
  • 5,编写并执行测试脚本
    工共的测试框架建立后,可进入脚本编写阶段,根据自动化测试计划和测试用力的编写,需多次测试保证脚本的稳定性。
  • 6,分析测试结果和记录测试问题
    建议测试人员每天对测试结果进行分析,以便更早的发现缺陷。
  • 7,跟踪测试bug

1.3 自动化测试实施的策略

    追求敏捷开发导致许多团队采用金字塔策略,金字塔策略要求在3个不同级别进行自动化测试,

自顶向下:

  • 1)UI测试
    以用户体验为主,软件所有的功能通过这一层给用户,因此UI测试工作挺重要,UI测试以客户需求为主导,因此UI测试并不是100%使用UI自动化测试,人工测试占用很大比例;
  • 2)接口测试
    接口测试要求对数据的出纳书、数据库的性能等进行测试,从而保证数据传输以及处理的完整性,接口功能的完整运作对这个歌项目功能扩展、升级、维护有着重要作用。接口通常采用黑盒与白盒相结合进行测试;
  • 3)单元测试
    主要采用白盒测试,主要对代码内部逻辑测试;

1.4 自动化测试优势、劣势

  • 1)优点
    a: 对回归测试更方便:进行回归测试,要测试系统的所有功能模块,周期较长的回归测试工作量大,测试比较频繁,适合自动化测试。
    b:模拟真实情况:可以执行手工测试无法执行的测试,比如同时并发上千用户测试系统的负载量,测试人员无法达到测试目的,而使用自动化测试工具可以模拟多用户的并发过程。
    c:有效的利用人力物力资源:频繁地机器化的动作可以用自动化测试执行,减少错误的发生,更好的利用人力资源。
    d:测试的重复利用与减少人为的错误
  • 2)缺点:
    a:自动化测试是工具执行,没有思维,无法进行主观判断,对界面色彩、布局和系统的奔溃现象无法发现,这些错误通过人眼很容易发现。
    b:自动化测试工具本身是一个产品,在不同的系统平台或硬件平台可能会受影响,在运行时可能影响被测程序的测试结果
    c:对于需求更改频繁的软件,测试脚本的维护和设计比较空难
    d:自动化测试要编写测试脚本,设计场景,这些对测试人员的要求比较高,测试的设计直接影响测试的结果。

2. 自动化测试常见的技术

  • 1) 录制与回放测试
    录制是指使用自动化测试工具对桌面应用程序或者是Web页面的某一项功能进行测试并记录操作过程。录制过程中程序数据和脚本混合,每一个测试过程都会生成单独的测试脚本。界面还是复杂的界面,进行多次测试就需要多次录制。
    录制过程会生成对应的脚本。回放可以查看录制过程中存在的错误和不足,如图片刷新缓慢、URL地址无法打开等
  • 2) 脚本测试
    测试脚本是测试计算机程序执行的指令集合。脚本可以使用录制过程中生成的脚本,这些脚本一般由JavaScript、Python、Pe等语言生成。测试脚本主要有以下几种
  • a:线性脚本
    线性脚本是指通过手动执行测试用例得到的脚本,包括基本的鼠标点击事件、页面选择数据输入等操作。线性脚本可以完整地进行回放。
  • b:结构化脚本
    结构化脚本在测试过程中具有逻辑顺序以及函数调用功能,如顺序执行、分支语句执行循环等。结构化脚本可以灵活地测试各种复杂功能。
  • d: 共享脚本
    在测试中,一个脚本可以调用其他脚本进行测试,这些被调用的脚本就是共享脚本。共享脚本可以使脚本被多个测试用例共享。
  • 3)数据驱动测试
    数据驱动指的是从数据文件中读取输入数据并将数据以参数的形式输入脚本测试,不同的测试用例使用不同类型的数据文件。数据驱动模式实现了数据和脚本分离,相对于录制与回放测试技术,数据驱动测试极大地提高了脚本利用率和可维护性,但是对于界面变化较大的情景不适合数据驱动测试。数据驱动
  • a:关键字驱动测试
    关键字驱动是对数据驱动的改进,它将数据域与脚本分离、界面元素与内部对象分离测试过程与实现细节分离。关键字驱动的测试逻辑为按照关键字进行分解得到数据文件,常
    用的关键字主要包括被操作对象、操作和值。
  • b:行为驱动测试
    行为驱动测试指的是根据不同的测试场景设计不同的测试用例,需要开发人员、测试人员、产品业务分析人员等协作完成。行为驱动测试是基于当前项目的业务需求、数据处理、中间层进行的协作测试,它注重的是测试软件的内部运作变化,从而解决单元测试中实现的细节问题。

3. 自动化测试常见的工具

    Selenium :

    针对web测试开源自动化测试工具,
    特点与用法我这里就不再整理,因为工作重点不涉及这块,自己也是简单的页面元素定位,
    其测试框架和基本思想和android自动化测试相似,后面我在app测试内,介绍app 测试框架与接口测试框架。

4. 持续集成测试

    持续集成指的是,频繁地(一天多次)将代码集成到主干

    持续集成(Continuous Integration)是Devops理念的一种实践过程,同时也是敏捷开发的具体表现形式。除了持续集成,还有持续交付(Continuous Delivery),持续部署(Continuous Deployment)等。这里我们着重介绍持续集成过程中的测试自动化(Test Automation),如果测试没有实现自动化的话,那么整个持续集成是不完善的,同时也不是高效的。因此自动化测试是持续集成过程中的重要一环。

4.1 持续集成概念

    好处主要有两个。

    (1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。

    (2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成

目的:就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。

4.2 持续集成测试框架设计

互联网软件的开发已经成熟标准化,作为测试人员掌握持续集成方法,有利于提高软件测试效率、提高生产效益,同时也会衡量测试人员水平。持续集成框架显得很重要

4.3 传统持续集成框架设计

https://img-blog.csdnimg.cn/20210609231608201.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjkxNDcwNg==,size_16,color_FFFFFF,t_70

    把集成工具比作管家,测试人员就是主人。只需要吩咐完成主任安排任务即可,未按预期完成,则会提醒哪里出现错误。

4.4 持续集成容器化框架设计

https://img-blog.csdnimg.cn/20210610000640891.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjkxNDcwNg==,size_16,color_FFFFFF,t_70

    1,基于容器的持续集成平台在环境搭建上少于传统搭建,可以在秒级内启动一个镜像生成一个持续集成环境

    2,容器占用资源少,并能保证测试与开发环境的统一,降低了测试重复率,极大提高测试效率

    使用Docker容器搭建持续集成容器框架

    1,开发人员将代码提交到版本控制系统后,触发jenkins容器,自动部署了提交的版本并进行单元、集成、构建JAR包等,

    2,测试通过后测试人员可获得当前项目,创建容器进行本地化测试,完成后将项目提交到远程容器仓库进行管理。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注