• 0
  • 0
分享
  • 成为一个优秀的测试工程师需要具备哪些知识和经验?——软件测试圈
  • 曼倩诙谐 2023-03-21 10:28:40 字数 2061 阅读 893 收藏 0

  根据我的观察,优秀的测试人员可以做的事情可以包括如下3点:

  ·由单纯的测试变成项目质量保证工作

  · 持续集成探索和推动和自动化测试技术研究

  · 测试相关工具的开发

  1、我们先来讲第一点,由单纯的测试变成项目质量保证工作

  测试,从狭义的角度来讲,包括如下这些环节:

  测试计划和测试用例编写-测试执行-质量报告书写

  测试人员一般会在开发阶段就进行测试计划和测试用例的编写和准备工作;在测试阶段,我们一般先会做功能测试,等项目功能基本稳定,bug较少了,就开始做兼容性测试、性能测试、安全性测试。兼容性测试保证了产品在多浏览器、APP在产品在不同机型下的兼容性;性能测试保证了产品在海量用户大流量下的服务能力;安全测试能发现产品可能会被攻击的各个隐患。做完了这些测试以后,人员发布质量报告,产品上线。

  不过,优秀的测试人员需要向上游和下游拓展测试的领域,把自己放在“质量保障”的角色上,推动整个项目组一起保证质量,上游的工作包括:

  在产品刚立项、进行需求确认的时候,测试人员就会参与进去,仔细地Review需求,看需求是不是完整、有没有漏洞,这个时候还没有进入正式开发,修改需求对于项目组来说代价是最少的。在这个环节,测试人员凭借缜密的推演、发散性的思维,往往能发现很多需求的漏洞,提高了项目的整体效率。

  另外,测试人员在完成测试计划、测试用例以后,会邀请开发、策划一起来评审测试用例,在这个环节,由于测试人员把每个需求如何细化测试都体现在了用例里面,就相当于再次把需求分析了个透,往往还能发现很多需求的漏洞。这也是提早发现需求漏洞的有效环节。

  我们知道,代码的质量归根结底是由开发保证的,测试做的工作,只是发现Bug让开发修复。如果一个花瓶,一开始就是很完美的;另一花瓶经过了各种修补,看起来比较完美,大家觉得哪个花瓶比较好?当然是第一个花瓶。所以,测试人员应该站在质量保障的立场,想办法跟项目组沟通、给开发提供工具,让开发自己把质量保障工作做好。比较可行的一些方式是:提供一些手工用例让开发自测;给一些自动化的接口和UI测试代码让开发自测;部署静态代码检查工具,并推动开发分析和修改发现的问题;有一些做得好的项目已经实现了持续集成,也可以尝试。

  下游的工作包括:

  在产品完成了测试以后,就是发布的环节了,测试人员在发布的环节也能发挥作用,首先,测试人员为了部署测试环境,研究自动化部署的技术,可以把上线部署的环节也自动化,以前需要2个小时的部署环节压缩到半个小时甚至更少,而且更加准确可靠。

  如果有些版本修改比较多,上线的质量风险大,测试人员会跟产品一起制定灰度发布的方案并在技术上进行实现,让版本先面向一小部分用户开放,如果发现Bug了,影响的用户也比较小,Bug改掉以后,再逐渐扩大用户范围。

  另外,优秀的测试人员还会发动项目组的其他人一起来保证项目质量,比如推动开发进行代码Review;引入冒烟自测流程,让开发先自测以后再提交给测试做冒烟测试;通过在项目组分析Bug,让开发提高自测,降低Bug数量等;引入策划、交互、视觉在测试阶段进行走查,等等各种措施。

  2、持续集成探索和自动化测试技术研究

  业界都在说持续集成,那持续集成究竟是个什么鬼呢?

  持续集成原本的意思是让开发每提交一次代码就自动化测试一次,如果自动化测试发现问题了,测试用例就会失败,开发就会马上发现这个失败,并修改代码。

  要做到持续集成可有很多工作要做。

  首先就是编译环节,要把所有编译的环节都自动化起来,开发每次提交代码都能进行自动编译。

  编译完成后,就是静态代码检查的环节,通过静态代码检查的工具检查代码的问题,比如,数据库连接池没有释放,参数不匹配等。

  静态代码检查完成后,就是单元测试了,单元测试用例一般是开发人员或者测试人员编写,或者开发和测试合作编写,保证的是开发内部函数的正确性。一个健康的自动化测试方案中,单元测试用例的占比是最高的。

  然后就是接口测试,一般保证的是后端开发提供给前端开发的HTTP接口,接口一般也比较稳定,用例比较容易维护,所以,接口测试的自动化占比也可以做到很高。

  在接口测试的上层就是针对用户界面的UI测试了,就像测试人员手工执行一样,UI自动化测试能操作页面的元素,完成自动化。不过,由于用户界面常常要重构,所以我们常常会控制UI自动化测试的规模,只覆盖主干的用例。

  优秀的测试人员可以把自己的工作尽量自动化,并用持续集成框架串起来,提高工作效率和质量。

  3、测试相关工具的开发

  优秀的测试人员会开发其他好用、趁手的工具来提高工作效率,比如数据自动生成、报表自动生成、报bug工具等。

  其实归根结底就是一句话:测试人员最核心的工作就是保障项目的质量,各类测试流程、技术、工具和平台的发展让我们可以更好地保证项目的质量。


作者:EdisonYao    

来源:http://www.51testing.com/html/07/n-7793007.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • GET方法和POST方法传递数据的异同http请求方法get和post是最常被用到的两个方法,get常用于向服务器请求数据,post常用于提交数据给服务器处理。 GET方法其实也可以传递少量的数据。 但它存在以下问题:1)GET 方法不包含body,因此以在URL中拼接字段的方式传递数据, 2)GET方法中的URL参数会被显示到地址栏上,存在安全问题3)传递的数据只能是键值对,无法传递其他类型的数据 因此出于传递大量、多种类型的数据和安全性的考虑,上传数据常使用post方法。POST方法如何传递数据POST方法提交数据给服务器,涉及到Content-Type和消息主体编码方式两部分。服务器根据...
            12 12 1848
            分享
          •     在项目开发流程的各个阶段,都需要测试人员参与,那么测试人员在每个阶段中都需要做什么呢?测试人员要怎么样参与项目的各阶段评审,才能有效的指导自己在后续的测试工作呢?跟大家分享一下我在项目中的一些经验和理解。    在项目的各阶段中,与测试相关的项目阶段可以分为:需求设计阶段/开发设计阶段/测试用例设计阶段/测试用例执行阶段,在需求设计和开发设计阶段,测试人员是参与角色,而测试用例设计和测试执行阶段,测试人员则是主导角色,下面依次讲解各阶段过程中,测试人员的关注重点:1、需求设计阶段:测试人员参加需求分析,需要了解到该需求对于用户...
            2 2 4218
            分享
          •   新浪科技讯北京时间1月4日上午消息,据报道,谷歌挖来了长期负责微软人工智能伦理工作的米拉·雷恩(MiraLane),加入该公司的技术和社会问题团队。  此举正值谷歌及整个科技行业因为日益复杂的人工智能模型而面临伦理挑战之际。  雷恩之前在微软领导一个综合学科团队,负责与伦理数据收集、生成式人工智能数据、人脸识别和负责任产品设计有关的问题。她加入谷歌后将向詹姆斯·曼伊卡(JamesManyika)汇报工作,后者一年前加入谷歌,出任技术及社会高级副总裁。这个成立不久的团队还吸引了苹果搜索业务前负责人斯里尼瓦森·万卡塔查理(SrinivasanVenkatachary)加盟。  雷恩本人已经确认...
            0 0 940
            分享
          •   一、软件的生命周期  软件计划与可行性研究(问题定义、可行性研究);需求分析;软件设计(概要设计、详细设计);编码;软件测试;运行与维护。  生存周期划分  各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。  生存周期基线功能基线(functional baseline)  功能基线是指在系统分析与软件定义阶段结束时,经过正式评审和批准的系统设计规格说明书中对待软件生命周期开发系统的规格说明;或是指经过项目委托单位和项目承办单位双方签字同意的协议书或合同中所规定的对待开发软件系统的规格...
            2 2 1891
            分享
          • 前言我曾经在好几个项目里都近乎完整参与过补齐前端测试的工作,也收集到不同项目的同事很多关于前端测试的困惑和痛点,这其中大部分都很相似,我也感同身受,在这篇文章里,我会针对大家和自己常遇到的痛点分享一些自己的经验,如果你也有如下相似的困扰,那希望这篇文章能对你有些帮助~常见问题(排名不分先后):前端测试感觉写起来很复杂,会花很多时间,甚至经常是业务代码时间的好几倍前端测试怎么TDD?测试一些第三方UI控件时,特别难模拟与之的交互有些东西不知道怎么mock,比如时间,浏览器全局变量(window.location,local storage)等测试里准备数据的代码特别长,真正的测试代码很靠后,要翻...
            0 0 1982
            分享
      • 51testing软件测试圈微信