软件评测师-自动化测试技术

软件评测师-自动化测试技术一、概述1.自动化测试是把人为驱动的测试行为转化为机器执行的一种过程,模拟手工测试步骤,通过由程序语言编制的测试脚本,自动地完成软件的测试设计、单元测试、功能测试、性能测试等工作,包括测试活动的自动

大家好,又见面了,我是你们的朋友全栈君。

一、概述

1.自动化测试是把人为驱动的测试行为转化为机器执行的一种过程,模拟手工测试步骤,通过由程序语言编制的测试脚本,自动地完成软件的测试设计、单元测试、功能测试、性能测试等工作,包括测试活动的自动化和测试过程管理的自动化

  第一代-以工具为中心的自动化,典型:以捕捉/回放工具为典型

  第二代-以脚本为中心的自动化,已经认识到统一脚本语言的重要性,测试自动化主要依靠测试工程师的主观能动性,测试脚本大量产生,增加了检查点的功能,可以对软件做验证

  第三代-以平台为中心的自动化,称为测试框架,把脚本抽象化,让非技术人员在不懂测试脚本,不会使用程序的情况下,也可以使用自动化测试工具建立自动化测试案例

  第四代-以业务为中心的自动化,赚注与业务需求的自动化测试,用通用的业务描述语言来描述业务,即测试用例,然后利用自动化测试用例,可以自动切换测试点和进行重复测试,容易适应测试内容复杂,工作量大的要求

  第五代-以测试设计为中心的自动化,专注于执行的测试自动化转变到了测试设计的自动化上,其特点是利用已经发展成熟的测试设计技术,或搜索算法自动地生成测试用例和脚本

2.自动化测试执行技术:执行测试用例或脚本,自动操作被测对象及测试环境中周边设备来完成测试步骤和结果检查,自动判断出测试用例的执行结果的相关技术

3.自动化测试设计技术:通过某些信息由生产算法自动地生成测试用例和测试脚本的相关技术

4.自动化测试设计两个方向:基于模型的测试技术,基于搜索的测试技术

  基于模型:通过模型描述软件的需求和期待的行为,自动地生成测试用例和脚本,测试建模仍然需要人工实施,而测试生成则由生成算法来自动完成

  基于搜索:吧测试数据生成问题转化成为搜索问题,即从软件运行的输入域中搜索所需的值以满足测试需求,经典的基于遗传算法的测试生成

5.从测试目的角度看自动化测试可分为:功能自动化测试与非功能自动化测试,非功能自动化测试包括性能自动化测试和信息安全自动化测试

<span role="heading" aria-level="2">软件评测师-自动化测试技术

 

   功能自动化测试:通过录制回放或编码的方式来测试一个软件的功能实现,可进行自动化回归测试

  性能自动化测试:通过测试工具模拟多种正常、峰值以及异常负载条件磊对系统的各项性能指标进行测试,性能测试重在结果分析,能够通过数据分析到系统的瓶颈

    负载测试:确定在各种工作负载下系统的性能

    压力测试:通过确定一个系统的处理能力瓶颈或业务性能随系统压力下降到不能接受程度的点,来获得系统提供的最大服务级别的测试

    信息安全测试:在软件产品生存周期中,特别是产品开发基本完成到发布阶段,对产品进行检验产品符合需求定义和产品质量标准的过程

6.按照测试目的划分,可将自动化测试工具分为:功能自动化测试工具、性能自动化测试工具、信息安全自动化测试工具

7.按照访问和控制的接口划分:用户界面自动化测试工具、接口自动化测试工具

8.按照所对应的测试阶段划分:单元自动化测试工具、集成自动化测试工具、系统自动化测试工具

9.按照测试对象所在操作系统平台划分:web应用测试、安卓移动应用测试、IOS移动应用测试、Linux桌面应用测试、Window桌面应用测试

<span role="heading" aria-level="2">软件评测师-自动化测试技术<span role="heading" aria-level="2">软件评测师-自动化测试技术

 

 10.自动化测试系统的通用架构

  测试生成层:由层面的模块来产生测试用例

  测试定义层:在此层面上定义测试用例和测试例程

  测试执行程:此层面的模块提供测试执行所必需的功能

  测试适配层:每个模块的主要任务是与被测试对象或测试环境中的各个设备直接接口交互,并为测试定义的测试用例提供一致的接口

  测试框架:仅在通用自动化测试框架中的提供任何自动化测试系统都应支持通用功能的模块

  <span role="heading" aria-level="2">软件评测师-自动化测试技术

 

 二、自动化测试的实践策略

1.测试金字塔中,自动化测试投入越早,层级越低,投入产出比越高

2.单元层:单元测试,最有价值的测试,应使用相应的单元测试框架来规范地实施单元测试

3.服务和接口层:集成、接口自动化测试,它的价值居中

4.用户界面层:用户界面自动化测试,可看出它的价值最小,大部分测试人员都是对用户界面层的功能进行测试

<span role="heading" aria-level="2">软件评测师-自动化测试技术

 

 5.适合使用自动化测试工具情况:

  被测系统具备足够的易测试性;需求稳定,不会频繁变更;每日构建后的测试验证;研发和维护周期长,需要频繁执行回归测试;用户界面稳定,变动少;需要在多平台上运行相同测试案例;项目进度压力不太大;测试人员具有较强的编程能力

6.业界普遍经验,表中四个条件为项目中开展自动化测试的必要条件

<span role="heading" aria-level="2">软件评测师-自动化测试技术

 7.基于模型的测试技术

  软件测试设计的初始步骤就是在理解被测系统的的功能基础上,用一定的模型结构类描述被测试系统的功能和质量属性,然后根据测试模型获取要覆盖的测试覆盖项,在获取具体明确的测试覆盖项后,可设计测试步骤来完成测试用例的设计,在实践中,这样的模型常常被称为测试模型

  对于在项目中引入和应用基于模型的测试(自动化测试设计),应考虑包括测试策略的选择,测试工具的选取,建模流程的规定、建模质量的度量、基于模型的测试工具与自动化测试执行系统集成的方法

  基于模型的测试技术主要优点:

    测试设计的自动化能改善工作效率和减少人为错误

    尽早建立测试模型能改善沟通,提前发现需求中的缺陷

    使得不了解测试设计技术的业务分析人员也能实施测试设计

    提高测试覆盖,从而改进软件产品的质量

    缩短测试设计的周期,加速测试活动

  缺点:

    从模型生成测试用例数量可能过多

    建模需要一定的投入

    模型也可能描述错误

    模型的抽象可能带来理解上的困难,所有建模都有一定程度的抽象,当抽象的逻辑原则未达成共识时,可能导致评审者无法理解测试模型

  基于模型测试工具:Spec Explorer 、Graph Walker、Stoat、MBT On Cloud

8.基于搜索的测试技术

9.基于遗传算法的测试流程

<span role="heading" aria-level="2">软件评测师-自动化测试技术

 

 1)先随机遍历用户界面生成一组随机的测试用例集

2)对每个随机测试用例进行优势信息评估

3)在测试用例生成的过程中,遗传算法从一组候选的个体测试用例集开始,然后利用三种不同的搜索操作生成下一组更优的测试用例集,这里,选择操作时从每一轮生成的测试用例集中选择更优的个体测试用例进行重组(交叉和变异),交叉操作时将两个独立的个体测试用例产生进行交叉重组,从而共享部分来源于父辈测试用例的优势信息,而变异操作时对一部分的个体测试用例进行随机修改,注入额外信息

4)基于搜索的测试技术通过不断地迭代上述三个搜索操作,对给定的一组测试用例集进行优化,在优化过程中不断执行测试用例并检测是否有软件错误发生

  优缺点:基于搜索的测试技术的优势在于把测试用例生成问题灵活转化为为了在特定软件对象的输入域中搜索更优解的问题;局限性在于变异操作可能产生大量输入时间序列无效的测试用例

10.自动化测试工具

<span role="heading" aria-level="2">软件评测师-自动化测试技术

 

 <span role="heading" aria-level="2">软件评测师-自动化测试技术

 

 <span role="heading" aria-level="2">软件评测师-自动化测试技术

 

 三、测试 执行的自动化技术

1.制定测试计划:此过程需要明确自动化测试范围、测试目的、测试内容、测试方法、测试进度要求

2.分析测试需求:将软件需求转换成测试需求的过程,是建立在测试计划中的测试内容的基础之上,进行细化明确测试点

3.设计测试用例:自动化测试用例是针对自动化测试框架、应用脚本技术进行用例解析

  原则:

    一个脚本是一个完整的场景;一个脚本只验证一个功能点;重点测试功能中的正向逻辑;测试用例对应的测试脚本尽可能互相独立;整个脚本中只对验证点进行验证

4.搭建自动化测试框架:在用例设计工作开展的同时可着手搭建测试环境,典型要素:公用的对象;公共用的环境,公共的方法,测试数据

5.编写测试脚本,是具体的测试用例的脚本转化,包括:准备、执行、断言和清理

6.一个完整的自动化测试通常包含:验证功能是否正确、覆盖边界条件、验证异常和错误的处理

<span role="heading" aria-level="2">软件评测师-自动化测试技术

 

 7.执行测试:脚本调试结束后,便可以再检验模式下测试被测试软件

8.测试输出结果的收集和分析

  1)测试结果:每次测试结束,测试工具都会把测试情况显示在测试结果报告中,测试结果报告会详细描述测试执行过程中发生的所有主要事件,如检查点、错误信息、系统信息或用户信息

  2)跟踪测试缺陷:测试记录的缺陷要记录到缺陷管理工具中去,以便定期跟踪处理,开发人员修复后,需要对此问题执行回归测试

  3)持续集成和自动化测试:持续集成是频繁地将代码集成到主干,持续集成强调开发人员提交了新代码之后,立刻进行构建,单元测试,根据测试结果,可以确定新代码和原有代码能否正确地集成在一起

  持续集成好吃:快速发现错误,防止分支大幅度偏离主干

  持续集成目的:让产品可以快速迭代,同时还能保持高质量

  一个完整的持续集成系统包括:一个自动构建过程,自动编译、分发、部署和测试

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/154607.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 组合数常用计算公式

    组合数常用计算公式Cnm=n!m!∗(n−m)!C_n^m=\frac{n!}{m!*(n-m)!}Cnm​=m!∗(n−m)!n!​Cn2=n∗(n−1)2C_n^2=\frac{n*(n-1)}{2}Cn2​=2n∗(n−1)​Cn3=n∗(n−1)∗(n−2)6C_n^3=\frac{n*(n-1)*(n-2)}{6}Cn3​=6n∗(n−1)∗(n−2)​Cnm=Cn−1m−1+Cn−1mC_n^m…

  • 后端框架SpringBoot入门[通俗易懂]

    后端框架SpringBoot入门[通俗易懂]SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员…

  • 订单支付[通俗易懂]

    订单支付[通俗易懂]前言文章中的图片和在摘录不是来自一篇文章,所以细节不是完全对应。可借鉴的是开发的思路:从整体的功能模块的使用; 到核心流程; 到系统实现的架构; 再到代码流程(可以采用序列图)。前两点是业务需求,后两点是功能实现。支付系统的作用https://www.cnblogs.com/veblen/p/10992167.html核心流程http://www….

  • clover直接进windows_黑苹果CLOVER引导去除多余引导项Windows10 MacOS DeepinLinux Fyde…「建议收藏」

    现在新的电脑安装系统,引导方式都改为了EFI,至于EFI和MBR引导的区别可以自行度娘。用了EFI引导安装黑苹果(关于黑苹果的安装,除非你喜欢折腾,否则建议直接找某宝,几十块十几分钟就能装好)自然就会使用CLOVER.但是CLOVER的默认添加启动项的方式,在安装完多系统后,就会有冗余。先看两张效果图吧。优化前:优化后:由于我目前这个电脑不仅安装了Windows和MAC,还装了别的Linux系统。…

  • STM32的IWDG(独立看门狗)详细用法

    STM32的IWDG(独立看门狗)详细用法文章出处:https://www.cnblogs.com/Liu-Jing/p/7243029.html章参考资料:《STM32F4XX中文参考手册》IWDG章节。1、IWDG简介:  STM32有两个看门狗,一个是独立看门狗另外一个是窗口看门狗,独立看门狗号称宠物狗,窗口看门狗号称警犬,本章我们主要分析独立看门狗的功能框图和它的应用。独立看门狗用通俗一点的话来解释就是一个12位的递减计…

  • IIS 无法启动:发生意外错误0x8ffe2740 的原因

    IIS 无法启动:发生意外错误0x8ffe2740 的原因发生意外错误0x8ffe2740原因如果系统中存在端口冲突就有可能发生本情况.IIS默认使用80端口进行HTTP通信.如果除IIS外的应用程序正在运行并且正在相同的IP地址上使用80端口,在您试图使用IIS管理器启动网站时您也可能收到该错误讯息.解决方法要解决这个问题,您可以进行以下任一项操作:•在IIS管理器中更改网站绑定端口为除80端口外的其它端口.•停止正在使用80端口…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号