当前位置: 首页 > news >正文

需求变化频繁的情况下,如何实施自动化测试

一.通常来说,具备以下3个主要条件才能开展自动化测试工作:
1.需求变动不频繁

自动化测试脚本变化的频率决定了自动化测试的维护成本。如果需求变动过于频繁,那么测试人员就需要根据变动的需求来不断地更新自动化测试用例,从而适应新的功能。而脚本的维护本身就是一个开发代码的过程,需要扩展、修改、调试,有时还需要对框架做出调整。如果所花费的维护成本高于利用其节省的测试成本,那么自动化测试就失去了价值与意义。

2.项目周期较长

由于自动化测试需求的确定框架的设计、脚本的开发与调试都需要一定的时间,而这个过程本身就是一个软件的开发过程,如果项目周期比较紧张,没有足够的时间去支持这样一个过程的话,就不要进行自动化测试。

3.自动化脚本可以重复使用

自动化测试脚本的重复使用要从三个方面来考虑:
1.所测试的项目之间是否存在有很大的差异性(如C/S系统架构与B/S系统架构的差异)
2.所选择的测试技术和工具是否适应这种差异
3.测试人员是否有能力设计开发出适应这种差异的自动化测试框架

二.自动化测试主要解决的问题:
回归测试时,需要投入较大的人力/工时;

实现手工测试无法达成的测试任务;

加深对业务的认知,有助于下阶段迭代中发现问题;

三.测试人员想要实施自动化测试,需要具备以下能力:
熟悉被测系统,熟悉被测系统对任何测试人员来说都是最起码的要求;

至少要熟悉编程语言Java或者Python,最好有一定的编码能力,同时代码逻辑要清晰;

可以根据所掌握的代码,学习一门自动化测试的框架,如Selenium/Appium/Robot Framework/TestNG等;

四.自动化用例一般在哪个阶段完成?
一般落后于功能的手工测试,可以在手工用例执行完成或功能上线后,再去补充自动化的用例。
自动化不是跟着新需求走,而是测变化的东西对不变东西的影响,一定不要做为了自动化而自动化的工作。

五.自动化测试分类?
UI自动化测试。价值最小,但是它最接近用户真实场景,也容易发现bug,但它的实现成本最高,太容易受外部环境影响脚本成功率。适当的UI自动化测试是有必要的,但是没有必要投入太多;

接口自动化测试。价值居中,覆盖大多数主要的接口是比较合适的。测试人员需要熟悉接口逻辑关系,否则接口测试代码很容易遗漏bug;

单元测试。价值最大,但是对测试人员要求比较高,一般由开发人员完成。

通常来说,UI自动化测试,覆盖少量主流程即可,接口自动化测试,可以考虑覆盖100%的流程;

六.在需求变化频繁的情况下,如果想要实施自动化测试:
折中的做法就是先对系统中相对稳定的模块与功能进行自动化测试,变动较大的地方进行手工测试。作为测试人员,我们应该明确:哪些需求发生了变化,这些需求变化后,对测试工作会产生哪些影响。包括会不会影响测试用例,如果影响,会对哪些用例产生影响。当发生较大改动时,还要明确是不是影响到了测试计划?明确这些变化,会对测试的工作进度产生多大的影响。当发现自己的大部分用例都受到影响,需要修改时,应该第一时间向上级反映情况。关于如何确定哪些需求发生了变化,最好的方式是通过配置管理进行需求跟踪。公司的测试任务分配,一般都是按照模块来分的。我们只需要自己维护测试线的需求跟踪,当建立了自己的需求跟踪矩阵以后,就可以快速定位变更部分,通过配置管理,所以可以及时变更你的用例,甚至是计划。当发现受变更影响的部分非常多时,应该及时通知上级,让他们了解情况,并做出决策。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

文档获取方式:

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

http://www.lryc.cn/news/183716.html

相关文章:

  • C++设计模式-桥接(Bridge)
  • Springboot+vue的开放性实验室管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。
  • 1.9.C++项目:仿muduo库实现并发服务器之Connection模块的设计
  • Iphone文件传到电脑用什么软件,看这里
  • JS进阶-原型对象prototype
  • 【Unity】两种方式实现弹跳平台/反弹玩家(玩家触发与物体自身触发事件实现蹦床的物理效果)
  • python开发幸运水果抽奖大转盘
  • 【CMU15-445 Part-16】Concurrency Control Theory
  • 软件设计模式系列之二十五——访问者模式
  • 国庆看坚如磐石
  • 代码随想录Day59 | 647. 回文子串 | 516. 最长回文子序列
  • 为什么InnoDB选择B+树而不是红黑树作为索引结构?
  • 【c++_containers】10分钟带你学会list
  • LeetCode 0714. 买卖股票的最佳时机含手续费
  • cartographer-(0)-ubuntu(20.04)-环境安装
  • MIT 6.S081学习笔记(第二章)
  • L958. 二叉树的完全性检验 java
  • 阿里云对象存储OSS SDK的使用
  • 二、互联网技术——网络协议
  • 初赛错题集
  • Java Thread类详解
  • 3_使用传统CNN网络训练图像分类模型
  • Java 创建线程的方法
  • 基于安卓android微信小程序的旅游app系统
  • C++设计模式-单件(Singleton)
  • 想做好接口测试,先把这些概念搞清楚了
  • 通过融合UGV的地图信息和IMU的惯性测量数据,实现对车辆精确位置和运动状态的估计和跟踪研究(Matlab代码实现)
  • 『Linux』Linux环境搭建 | 阿里云云服务器白嫖 | Xshell环境配置
  • C++ 类和对象篇(五) 析构函数
  • find 与 cp 命令组合使用