• 14
  • 14
分享

  需要提前说明下的是到目前为止,笔者还没有达到一个合格的测试架构师的标准,但是应该是已经走在这条路上了,所以想通过自己的成长经历给其他想朝这个方向发展的同学有点启发,同时也期望能够抛砖引玉。     

  先说说笔者的初始条件(应该很多人看了都会有更多的自信吧):一个普通本科学校,虽然是科班出身,但是除了大学的课程设计以及其他需要写代码的功课外,基本上没有去主动写过代码,更别说去研究linux内核等等高大上的事情了,反正基础是很差的(你别问我大学都干嘛去了,我也不知道,反正兼职,泡妞,打球,游戏,图书馆,考研等全都干过,就是没有去专研过代码),所以,毕业后程序猿的工作自然是找不到合适的,然后软件测试的门槛想对低一点,就进入了这个行业(本来当初是打算先进入这个行业好好学习了,去转开发岗位的,结果一直干到现在)。    

  下面说说笔者这5年来的成长历程吧,为了显得更加有层次点,每年分成一篇吧(实际上界限没有那么明显)。 

  第一篇:打酱油篇

  因为刚进入公司,对测试和业务都不了解,结果就被安排到一个大的项目里面负责2-3个小模块的测试工作,说是负责这些模块的测试工作,实际上,用例都是别人写好的,自己只需要去执行用例就可以了(当然,培训还是有的),标准就是保证这些用例执行后没有质量问题,其实就是没有执行漏测就可以了。     

  刚开始还是怀着一颗敬畏的心去做的,但是2个月新鲜劲过了后马上就开始迷茫了,尼玛这工作也太无聊了吧,而且毫无技术含量而言。难道这就是我后面一直要做的事情?不过虽然不爽,但是因为项目比较紧,所以还是调整了下心态坚持将整个项目按照这样的方式弄完了,整个过程持续了6-7个月的时间。结果居然因为项目表现比较好拿到了优秀的考核结果,原因是自己负责的模块质量比较稳定,并且过程中发散测试的时候发现了几个严重的bug,这更加让我不知所措,但是自己知道不能够在这样下去了。    

  没有办法,找老大聊了下,得到的大概信息就是,现在项目比较紧,只能优先去保证项目,至于改进,后面慢慢再做;因为,这样对于自己的成长肯定是没有帮助的(至少当时是这么认为的),于是,选择了走人(当然,提前找到了另外一家,也就是现在这家公司)。

  因为两家公司的业务完全是不同领域,并且以前的测试流程跟当前也有很大的区别,所以,基本上又是从头学起,做的也是测试执行的工作,这个过程差不多又持续了半年左右,但是跟以前有点不一样的是,开始能够接触自动化以及一些新的测试方法了(这个后面会讲到),整体来说,虽然后面半年也是做的测试执行工作,但是至少自己看到了希望(因为组内已经有这方面很厉害的人物了),也大概清楚了自己应该想哪些方向去努力(选择比努力更重要这句话还是挺有道理的);但是第1年自己基本属于打酱油篇,因为自己在测试这块领域还是刚刚入门。

  第二篇:自动化篇  

  开始去涉及自动化应该大部分是自己主动去做的,那个时候因为团队开始去尝试做自动化,所以鼓励大家多去思考如何通过自动化去提高自己的工作效率,但是因为项目实际上也压的很紧,所以老大采取了这样的两个方法:1、加班去完成任务 2、每个人将最基本的功能梳理出来做成自动化;并且内部给大家灌输了一堆这样做的好处;不管是不是真的,效果还是很明显的。大家像打了鸡血一样(这点只能说跟对老大还是很重要的),每个人去花时间学习脚本(最开始用qtp,后来用pythen,ruby等)以及尝试去做自动化。经过3个月后,虽然自动化的很多东西都不规范和稳定,但是我们总算是取得了一定的效果,就是总共完成了200个左右的bvt用例,而且最重要的是大家的自动化开发能力提升还是比较快的(至少对于我这个门外汉来说,呵呵)。    

  后来,将这块的效果展示出去后,上面也比较认可,于是开始给我们一些人力和时间去投入做这块的工作,这样就正式开始了整个自动化的持续投入和产出,笔者也有幸正式成为自动化开发小组的一员(50%左右的时间去做自动化的开发工作),这个过程差不多持续了10个月左右的时间,直到自己开始去尝试新的方向;虽然说1年左右的时间对于写代码还没有掌握的很深,但是笔者认为已经能够完全胜任该工作了;更重要的是,自己的思想也发生了很大的变化(过程中看了很多测试人员的职业发展相关的文章)。

  第三篇:测试分析篇     

  到这里,个人认为自己的思想转变最大的一点就是:作为一个测试人员,我们的目的是什么?怎样将我们的价值最大化?而不是仅仅去想如何去提高自己的技术;另外就是感触比较深的就是解决问题的能力比技术本身更重要(当然,好的技术能够更快的解决问题);后来偶尔跟老大沟通,如何去更好的去提高产品的质量?老大也正在想这个问题,于是开始去涉及测试分析相关的工作了(个人觉得主动性应该是一个好的测试人员很重要的技能)。     

  这个时候开始,工作重点开始转向产品的业务和整体框架学习,模块的测试用例设计评审,参与整个项目的测试重点和难点的分析,过程中对开发的bug改动分析,协助开发去排查和定位问题,过程中测试质量分析等等。在这些过程中,笔者才真正感觉到,一个测试工程师要做好还真的是很不容易,需要非常好的分析和归纳抽象能力,这样才能将一些共性的地方提炼出来,形成一些比较通用的方法。    

  过程中一些具体的方法,笔者就不详述了,毕竟每个人都有自己的方法,但是很重要一点就是要能够沉住气,并且真的愿意持续做下去。笔者经过一年的时间,就产出了一份从几个维度来评估产品质量的方法以及一份探索性测试的方法(要想在这块有进步,产出是一份很重要的评估标准)。

  第四篇:技术改进篇    

  当然,这里并不是说测试分析的工作就没有开始做了(识别当前项目的测试重点和难点的工作始终贯穿着我的整个工作,而技术改进的来源也是基于整个分析的过程)。    

  完成整个产品的业务逻辑分析后,再加上从网上看到的一些基于代码的测试经验,就开始思考,如何将测试从黒盒向灰盒以及白盒的方向去扩展,从而能够更早期多发现问题,而不是等到开发提交测试后再去覆盖测试。这里主要做了两个主要的改进。

  1、分层测试:因为产品的一个模块特点是基于apache+php+mysql的模型,所以比较适合分层的方式,将底层数据库接口操作提取出来,直接通过构造数据的方式来覆盖到;而php层则开始引入接口测试(其实已经类似单元测试了),过程中不断的跟开发进行沟通和确认,开发每完成一个模块后,我们马上就能覆盖到,至于UI的,因为成本太高,而且测试起来相对比较简单,就直接计划等全部完成转系统后再覆盖测试。这种方式确实大大的提升了整个模块的质量,转系统测试后基本没有发现下层的bug。

  2、完成了一份问题的排查和定位文档,这样能够让测试人员直接根据里面的文档就能定位到问题的大概原因,大大减少了开发自己排查问题的时间,得到了开发的一致认可,通过一段时间的积累后,也大大提高了测试人员对于代码的理解能力。

  第五篇:测试模式探索篇   

  通过前面的几步,整个测试团队应该相比最开始的纯黒盒测试有了很大的进步,但是感觉测试的工作还是落后开发的工作,于是,期望能够找到一种新的测试模式(应该说整个开发模式),让测试的工作能够更好的跟开发融合在一起。

  过程中看了google测试之道里面的SET的工作,以及测试驱动开发等等一些新的模式,因为一些历史原因(比如:开发的思维转变),整个尝试过程还是相对缓慢的,当前主要是搭建了一套持续集成到环境,然后集成了一些自动化的用例,这样可以快速的反馈当前质量。     

  当然,通过以上几点离测试架构师的路还有很远,但是整个成长计划应该是比较清晰了,下面是个人觉得一个测试架构师应该要具备的能力,希望以此自勉。

  1、需求分析能力:能够从客户到角度去理解需求,甚至能够直接发现需求存在的问题,去影响PO,来更好的帮助产品成功;另外就是能够将当前需求细化出来,并且通过细化的需求来思考可能在设计方面存在的问题,提前发现设计的缺陷。

  2、整个产品架构的理解能力:这个只有达到开发架构师级别,才能更好的去参与整个设计方案的讨论,并且发现测试方案的一些缺陷。

  3、测试分析能力:能根据产品的特点来分析通过怎样的方法来更快的保证质量,从而来满足上面对测试团队不断提出的要求。

  4、技术人员培养能力:一个架构师应该说能够通过自己的影响力来得到一群的技术追随者,而对这些人的培养也是一个很重要的能力,这样才能提高整个团队的技术水平。

  5、技术规划能力:技术是不断的向前发展的,测试技术也不例外,所以,一个好的测试架构师应该要能够识别后面的技术改进方向,以及一步一步的推进下去。

  6、技术的广度:测试架构师需要掌握很多方面的技术,这样碰到新的问题时,才会有更好的解决思路。

  当然,笔者距离上面的目标还是有很大的差距,但是总算是看到目标和希望了,愿广大同胞们也能够得到一些启发。



作者:石头哥   

来源:https://www.zhihu.com/question/22661422/answer/43188416

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 前言:本文主要针对http接口进行测试,使用Jmeter工具实现。Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http接口的测试。一、开发接口测试案例的整体方案:第一步:我们要分析出测试需求,并拿到开发提供的接口说明文档;第二步:从接口说明文档中整理出接口测试案例,里面要包括详细的入参和出参数据以及明确的格式和检查点。第三步:和开发一起对接口测试案例进行评审。第四步:结合开发库,准备接口测试案例中的入参数据和出参数据,并整理成csv格式的文件。第五步:结合接口测试案例文档和csv格式的数据文档,做接口测试案例...
            14 15 2241
            分享
          • 1. Locust基本介绍1.1 引言现在不管是互联网行业或者是传统行业,对性能的要求,都日渐增多,为了能更快更准确的定位问题,发现问题,解决问题,市面上出现了越来越多的性能测试工具,例如Jmeter,Loadrunner,Locus等,而今天,我们主要介绍的,就是Locust!很多人并不知道什么是Locust,包括使用python的人,因为不涉及到,所以不会去可以了解,那么,什么是Loucst,以及Locust的功能,有点是啥呢,跟着小鱼,往下看~1.2 简介Locust是开源的使用Python开发,基于事件,支持分布式并且提供Web UI进行测试执行和结果展示的性能测试工具。1.Locus...
            1 1 25731
            分享
          •   前言  通常在接口自动化中,经常会参数关联的问题,那么什么是参数关联?  参数关联就是上一个接口的返回值会被下一个接口当做参数运用,其中Python中可以实现参数关联的方法有很多种,今天小编给大家介绍下,如何通过Python来实现接口自动化中的参数关联。  UnitTest  虽然说目前Pytest框架比较流向,但是目前应该有绝大部分公司还是在使用UnitTest框架,那么小编先介绍下如何通过UnitTest来实现接口自动化的参数关联。  方法一  下面小编通过测试用例返回参数的形式进行实现参数关联。# coding:utf-8 import requests impo...
            0 0 1454
            分享
          •   据第一财经报道,在结束访华行程前,挪威首相今晚在上海表示,此访签署了《中国和挪威关于建立绿色转型对话的联合声明》。  挪威首相提到,挪威不是欧盟国家,没有共同贸易政策,同时挪威也不生产汽车零部件,不会参与对华电动车加征关税。  据此前报道,8 月份挪威共售出 11114 辆汽车,电动汽车占比达 94%,创下新的世界纪录。今年 1 至 8 月,挪威电动汽车占新售乘用车销量的近 87%。  挪威是主要的石油和天然气生产国,但该国已设定目标在 2025 年之前仅销售零排放车辆,比欧盟的目标提前 10 年。作者:沛霖(实习)原文链接:IT之家(ithome.com)
            0 0 295
            分享
          • 一、bug的定义软件的bug,狭义指软件程序的漏洞或缺陷,广义指测试工程师或用户提出的软件可改进的细节、或与需求文档存在差异的功能实现等对应三个测试目的:(3个为了)为了发现程序的代码或业务逻辑错误;为了检查产品是否符合用户需求;为了提高用户的体验。二、bug的类型对bug的划分,禅道为例,包括:代码错误;设计缺陷;界面优化;性能问题;配置相关;安装部署;安全相关;标准规范;测试脚本;其他划分:功能类、界面类、性能类、易用性类、兼容性类、其他。三、bug的等级一级bug,必须优先要改致命错误:常规操作引起的系统崩溃、死机、死循环;造成数据泄漏的安全性问题,比如恶意攻击造成的账户私密信息泄露;涉...
            0 0 895
            分享
      • 51testing软件测试圈微信