软件测试的基本理论-自动化测试-5

  • 一.自动化测试
    • 1.自动化测试的概述
      • 什么是自动化测试
      • 自动化测试的基本流程
      • 自动化测试实施的策略
      • 自动化测试优势、劣势
    • 2.自动化测试常见的技术
    • 3.自动化测试常见的工具
    • 4.持续集成测试
      • 持续集成概念
      • 持续集成测试框架设计
        • 1,传统持续集成框架设计
        • 2,持续集成容器化框架设计

一.自动化测试

1.自动化测试的概述

什么是自动化测试

认为驱动测试转化为机器执行的过程。实际是借助工具或者编写自动化测试脚本,来模拟手工测试过程。比如;项目中持续的迭代或者持续的回归测试。
满足自动化条件:
1)项目需求变动不频繁
2)项目周期足够长
2)自动化脚本可重复使用

自动化测试的基本流程

流程如图:

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

自动化测试实施的策略

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

自动化测试优势、劣势

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.自动化测试常见的工具

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

4.持续集成测试

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

持续集成概念

好处主要有两个。
(1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
(2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成
**目的:**就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。

持续集成测试框架设计

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

1,传统持续集成框架设计


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

2,持续集成容器化框架设计

1,基于容器的持续集成平台在环境搭建上少于传统搭建,可以在秒级内启动一个镜像生成一个持续集成环境
2,容器占用资源少,并能保证测试与开发环境的统一,降低了测试重复率,极大提高测试效率


使用Docker容器搭建持续集成容器框架
1,开发人员将代码提交到版本控制系统后,触发jenkins容器,自动部署了提交的版本并进行单元、集成、构建JAR包等,
2,测试通过后测试人员可获得当前项目,创建容器进行本地化测试,完成后将项目提交到远程容器仓库进行管理。
补充:测试理论
移动端app测试

软件测试的基本理论-自动化测试-5相关推荐

  1. 软件测试的基本理论-移动端app测试-6

    软件测试的基本理论-移动端app测试-6 一.移动app测试 1. 移动app测试概述 2.移动app测试要点 3, UI测试要点 1,界面布局 2,图形测试 3,内容测试 4, 功能测试 1,切换测 ...

  2. 《软件测试技术实战:设计、工具及管理》—第1章 1.1节软件测试的基本理论...

    本节书摘来自异步社区<软件测试技术实战:设计.工具及管理>一书中的第1章,第1.1节软件测试的基本理论,作者顾翔,更多章节内容可以访问云栖社区"异步社区"公众号查看. ...

  3. 软件详细设计说明书_软件测试的基本理论 笔记

    一.开发与测试流程理论 ##1.软件开发阶段划分 ###需求分析 根据客户的要求,清楚了解客户需求中的产品功能.性能.界面和具体规格等,然后进行分析,确定软件产品所要达到的目标. 需求规格说明书 ## ...

  4. 「软件测试基础」理论篇之软件测试概论

    文章目录 1. 软件 1.1 软件发展史 1.2 软件生命周期 1.3 软件缺陷 1.4 三种纠错技术 2. 软件过程 2.1 RUP 2.1.1 RUP各个阶段 2.1.2 RUP核心工作流 2.2 ...

  5. 软件测试用例优秀例子_新手入门:想要做好软件测试,这些理论知识,你得好好掌握...

    对于很多测试新手来说,想要把自己的测试技术练得更精进,扎实自己的理论知识是必不可少的一门功课.下面,我们就一起来复习一下,那些让我们一知半解或者记不全的理论知识吧. 1.什么是软件测试? 最老套但是测 ...

  6. 软件测试技术之【自动化测试】

    自动化测试 自动化测试的定义:使用一种自动化测试工具来验证各种软件测试的需求,它包括测试活动的管理与实施.测试脚本的开发与执行. 自动化测试只是测试工作的一部分,是对手工测试的一种补充; 自动化测试绝 ...

  7. 【软件测试】总结web自动化测试-selenium+python

    自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果.将人为驱动的测试行为转化为机器执行的过程. 常见的自动化测试工具:QTP.selenium.R ...

  8. 华为软件测试工程师分享的自动化测试经验,纯干货!

    今天给大家分享一个华为的软件测试工程师分享的关于自动化测试的经验及干货.真的后悔太晚找他要了, 纯干货.一定要看完! 1.什么是自动化测试? 用程序测试程序,用代码取代思考,用脚本运行取代手工测试.自 ...

  9. 河南省周口市安吉软件测试培训中心第一次软件测试课程-测试理论篇

    练习使用禅道(下载32位开源版) 禅道:项目管理软件 测试人员一般用来跟踪缺陷的生命周期 常用的缺陷管理工具:禅道,jira. bugzilla.QC等 登录地址:ip地址/zentao(在cmd命令 ...

最新文章

  1. python使用numpy的np.float_power函数计算numpy数组中每个数值的指定幂次(例如平方、立方)、np.power函数默认返回整数格式、np.float_power函数返回浮点数
  2. Android性能优化典范第四季
  3. 用python解决实际问题_Python解决实际问题一--备份文件
  4. bugku——分析(流量分析)题解
  5. 蓝牙模块怎么指定查询另一个蓝牙模块_蓝牙模块以IPEX端口外接天线、PCB板载天线最为常见...
  6. 【Flink】Flink ES6写入报错 IncompatibleClassChangeError: Implementing class
  7. Drupal 忘记密码怎么办?重设管理员密码的几种方法
  8. 让你成为高效的Web开发者的10个步骤
  9. 聚焦BCS|新华财经:奇安信董事长齐向东:网络安全市场规模10年将增长10倍
  10. java.io.IOException: output.properties data exceeds its limit [2048] hue的调度
  11. Java开发中常用的设计模式-单例模式
  12. 20200125每日一句
  13. html宠物医院制作与实现,基于Web方式的宠物医院管理系统的实现 .doc
  14. 阿里云盘 Mac客户端(附福利码)
  15. Pytorch 基于ResNet-18的物体分类(使用CIFAR-10数据集)
  16. 订阅号与服务号的区别
  17. python知识点大全-2
  18. Python绘制中国地图
  19. 小满 前端埋点SDK 带你 从0 开发 并且发布npm
  20. matlab中二维插值中cubic方法的实现原理(个人见解)

热门文章

  1. linux的进程和计划任务
  2. 对话生成:seq2seq模型原理及优化
  3. 【SDU Chart Team - Core】一些预置点函数
  4. 地质雷达物理测量RADAN®7软件(Radan 7.6.19.11260)最新下载
  5. vue element 表格内的复制粘贴功能
  6. 用pr制作卡拉ok的效果,使用pr制作开门转场效果
  7. 无线射频专题《射频合规,2.4GHz WIFI测试指标详解》
  8. interview_python
  9. 安装 helm tiller monocular
  10. 两栏布局之右定宽左自适应,上定高下自适应,下定高上自适应