初识测试

不知不觉,我在测试部的实习已经快三个月了,入职第一天的场景仿佛还在昨天。在实习之前,我对测试的认识仅仅停留在一些软件测试和测试方法的理论知识上,在学生阶段项目中的测试,最多也是对自己的代码进行一些单元测试。

我之前所理解的测试是与开发分开,测试人员只需要“鼠标点点点”,根据需求寻找bug,不需要写代码、看代码。然而,通过项目实践,我对测试工作有了真正的认识和见解,认识到测试前置的重要性,依据W测试模型,在需求和设计阶段就介入测试,尽早发现缺陷,如需求文档、设计可行性,也需要提前编写接口用例,例如在测试交易链路时,提前设计用例以覆盖链路的每个分支。除此之外,还需要深入代码的设计逻辑才能更好地测试。

项目实践与成长

实习第一周,安装测试常用软件和平台,做好测试前的预备工作:

Xmind:思维导图软件,用于编写测试用例。

SwitchHosts:hosts管理利器,用于管理、快速切换Hosts小工具。

Fidder:抓包工具,将手机的网络设置手动代理,连接电脑端的IP与端口,可以抓取手机访问的URL以及一些参数。注意,要抓取https请求时需要安装Fiddler证书,下载方式“http://电脑IP:端口”。Fidder与SwitchHosts一般配合使用。

Git、SourceTree:在gitlab上下载分支,使用SourceTree切换分支。

IDEA、Maven:使用IDEA配置Maven,导入gitlab上的项目。

Xshell:访问远端的服务器,主要进行一些日志的查看,学会日志查看的相关命令,如tail、grep等。

TestNG:用于单元测试,学会常用注解。例如,@Test、@BeforeTest、@AfterTest、@DataProvider。

TAPD平台:敏捷项目管理平台,用于创建需求、项目跟进、提交bug等。

环境管理平台:用于申请环境、管理机器、管理服务调用关系。

Beetle平台:转转测试部主导研发的CI/CD分支管理平台,集成了code review、code diff、增量代码覆盖率等功能。

实践项目:我主要参与了清结算业务线配置、pop售后维修、退款等项目的测试工作。项目的流程主要分为这几个阶段:


1、熟悉需求:根据PM所出的需求文档提前了解本期项目的背景、需求点。

2、需求评审:主要是PM讲述需求,作为测试人员,要积极参与其中,对一些模糊点或疑问点及时提出并解决,如果开发后再解决成本高。

3、设计评审:主要是技术评审,RD会对自己的库表、开发思路讲解,测试人员需要从中评估是否符合项目的功能性与非功能需求,并评估需求的可测性,提前思考和规划后续的测试方案。

4、用例设计:从需求中提炼出测试点,使用xmind编写用例,设计的用例要注意几点:

页面:是否与原型相符、非法数据前端是否校验、文案内容。

流程:业务流转是否正常。

数据:非法数据是否校验、传参是否正确,数据展示处理,数据库中记录、值是否正确。

做好测试前置工作——编写接口测试用例,接口测试在接口开发完成后就可介入,不需要关注接口的内部实现逻辑,只需构造入参、校验出参。首先需要引入pom依赖查看接口,测试过程要做到几点:
构造数据:初始化测试数据,例如我们要测试申请售后的接口

首先需要构造交易完成的订单数据,其次需要构造申请售后需要的参数,如该接口需要一个Map,把数据通过<key, value>封装到map中即可,注意key值与RD开发时使用的key对应,避免解析后的不一致,value即为构造的数据。

  • 调接口:输入接口参数,调用接口,测试接口能否成功调通。使用原子层Atomic调用接口,传入构造的map参数。
  • 断言:获取接口返回的结果,判断response数据是否符合预期,注意异常数据的测试。

在做白盒测试时,要深入代码逻辑,使测试用例做到语句覆盖、判定覆盖、条件覆盖,提高测试的覆盖率,例如,对于多分支代码,用例需要考虑每个分支的情况,将所有if…else分支覆盖到,对于判定条件中有“||”或者“&&”的代码,设计的用例要覆盖每个条件。

除此之外,在设计用例时还需要使用等价类划分法、边界值法等方法,比如对于钱款相关的测试,边界值是必不可少的。

5、用例评审:“一千个人就有一千个哈姆雷特”,每个人对同一个需求的理解不同,关注点不同,总会存在一些遗漏点,因此需要其他人员评审用例是否存在遗漏,以保证测试用例的覆盖率,并对用例设计过程中存在的疑问点再次与PM确认。

6、开发自测&冒烟:根据测试人员提供的冒烟用例进行自测,自测完成后项目提测,并发送提测邮件,测试人员正式介入测试。

7、 测试阶段:测试环境分为动态测试机和稳定机两类,动态环境用来部署本次有改动的服务,稳定环境保持一套与线上一致全量服务并定时同步。测试工作主要是在动态环境上进行,需要在动态测试环境验证和沙箱环境验证。

(1)测试环境:环境平台上的一套多人共享、按需求隔离的环境,连接线下数据库,用于部署web/rpc服务。在测试环境中,首先验证冒烟用例是否通过,然后验证其他用例。在验证过程中,使用TAPD平台提交bug,对bug的复现描述要清晰,提交bug注意以下几点要素:

  • bug标题:言简意赅,说明是什么bug
  • bug内容:bug出现的环境、重现步骤、预期结果、实际结果、截图标明bug位置、错误日志截图、logId
  • bug严重程度:致命、严重、一般、提示
  • bug 优先级:高、中、低
  • bug处理人:定位bug的修复人

在测试过程中要注意在Beetle上查看代码的覆盖率,以防用例未完全覆盖修改的部分,用例全部测试完并通过后,才能进入沙箱环境验证。

(2)沙箱环境:一套预上线环境,连接线上数据库。沙箱验证时要谨慎,不能对线上用户造成影响。沙箱验证完成后,即可进入上线阶段。

8、上线阶段:在上线前要求RD梳理一下上线流程以及回滚方法。上线完成后,进行线上测试。

9、项目复盘:回顾项目的各个阶段,对过程中存在的问题进行总结、分析,吸取经验教训,避免出现重复错误。

实践中的成长:

首个测试任务“清结算业务线配置”中,我主要是对web页面进行测试,本次测试中,我熟悉了清结算业务,学会使用Fiddler抓包,以定位错误问题是前端还是后端,能够使用Xshell查看一些错误日志,然而,在测试过程中,我忽略了一些前端校验和样式问题,明白了对于页面来说,肉眼可见的不适均可能为bug。

在“pop售后维修”的测试任务中,我熟悉了售后维修的流程,学会在IDEA编写接口用例、查看离线任务。然而,在测试过程中,我忽略了客服仲裁后操作的链路是否正常,理所当然的认为只要出现过的操作都是对的,归根结底,我认为是缺少对RD设计逻辑的研究,不了解其状态机配置的链路,测试过程中没有将每个订单流程走到终态。针对这一问题,首先需要提前了解RD的设计逻辑,明确状态机的链路、链路的分支,在测试各链路的分支时,一定要从起始状态走到终止状态,从而保证整个流程的正确性

“pop售后退款”项目是对维修项目的一个升级,与之不同的是,退款涉及钱款交易。我的测试内容是客服仲裁与退款验证,积累了一些经验后,我这次能够更熟练进行测试了,编写接口用例后,不用自己点点点了,一来验证了流程的跳转,二来直接进入到自己的测试点,可以只关注仲裁结果和退款结果了。但是,对没有接触过的测试点,缺少测试前置规划,没有提前深入了解,导致测试过程中的时间浪费

改进点:

要熟悉自己的业务,将自己融入产品的角色中,脑袋里要形成每个需求点的操作流程、结果,在测试过程中,更要身临其境,身临用户的情景,验证人机交互是否流畅,是否是用户最期望的结果;提高自己的测试效率;为自己规划,每日总结一下测试遇到的坑,“不积跬步,无以至千里”,要想成为一名优秀的测试工程师,必须拥有丰富的测试经验,在每次测试过程中提高自己的怀疑精神和洞察力。

团队氛围

实习的第一天,我就感受到了团队的生机与活力,感受到了大家对工作充满着热情。完全没有电视中的那种勾心斗角,在这个年轻的团队中,同事之间的交流无代沟,互帮互助,小组里的每位同事都为我这个测试小白解答了不少问题,很有耐心。工作之余,大家也很懂得劳逸结合,成功教会我打桌上足球 总之,感觉大家都是快乐地在工作,这种充满人情味的团队真的很吸引我。

新人预备知识及能力

作为实习前辈,给新人们一点小小的建议。首先,你需要一些“硬件”知识,我第一周所安装的工具,你也可以提前体验一下,就是这些“Xmind、SwitchHosts、Fidder、Xshell、IDEA、Git、Maven、SourceTree”。还有,我们QA也是技术人员哦,可以学习一下Java编程、SQL的常用语句、计算机网络等等技术知识。如果你想学习测试相关知识,建议学习一些软件测试理论,黑盒测试方法、白盒测试方法,自己学会编写测试用例,然后了解一下单元测试、TestNG、接口测试、自动化测试、性能测试等等。如果你想提升自己的测试能力,平时多留意身边的bug,提升发现问题的能力,再多看看“转转QA”公众号的文章,你会有意想不到的收获。

未来规划

在业务测试方面,熟悉自己负责的业务、与自己相关的业务、公司其它业务,学会看RD的代码,了解开发的过程,以便更好地测试;在测试方法方面:我需要了解并学习团队现有的测试方法,并不断探索新的测试方法;在技术方面,多看一些技术型文章,了解测试技术的发展趋势,学习一些新的技术和测试方法。


另外,欢迎加入软件测试技术交流群 313782132 ~进群可领取免费软件测试资料以及群内测试大牛解惑!

测试工程师职业发展路线图

功能测试 — 接口测试 — 自动化测试 — 测试开发 — 测试架构师

加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。事必有法,然后有成。

资源不错就给个推荐吧~

一名测试实习生的心路历程相关推荐

  1. 一位经贸学姐从点工到测试主管的心路历程(一)

    前言 大学学的是经济贸易,因为对测试行业的强烈兴趣,毕业后在一家线上教育机构培训了软件测试技能.在工作了两年的时间后,从普通测试员升职到测试主管.期间戒掉了对烤肉烧烤类食物的痴迷,从一点小圆肥锻炼到了 ...

  2. 我作为一名软件人的心路历程,以及自己的想法,找到努力的意义

    自己刚入门的内心想法和,觉得这个行业怎么样,以及自己像成为什么样的人加油!!!! 我是一名本科生,普普通通的一名学生,可能是在高中压力太大了,有点喘不过气来,再加上老师说上了大学,你就可以疯狂的玩了, ...

  3. ArchSummit微课堂|蘑菇街DevOps实践及心路历程分享

    本文整理自 #ArchSummit微课堂#--赵成分享的蘑菇街DevOps实践及心路历程,主要介绍一些运维体系建设中的的经历和实践, 什么是DevOps?为什么是DevOps? 蘑菇街DevOps实践 ...

  4. 【转】楼天城楼教主的acm心路历程(作为励志用)

    [转]楼天城楼教主的acm心路历程(作为励志用) 利用假期空闲之时,将这几年GCJ,ACM,TopCoder 参加的一些重要比赛作个 回顾.昨天是GCJ2006 的回忆,今天时间上更早一些吧,我现在还 ...

  5. 但为君故——浅谈非科班大一在校大学生选择编程的心路历程。

    好的,先生们女士们大家好,如果您和我足够有道缘,如果我足够幸运,那么接下来您将看到的是一名非科班大一在校大学生选择编程的一段心路历程. 首先简单自我介绍一下,小生姓陈名奕涛,字幼彦,籍贯江苏,英文名是 ...

  6. 面向对象程序设计第三次上机作业Debug心路历程

    面向对象程序设计第三次上机作业Debug心路历程 前言 1.Container类 2.Matrix类 3.Student 类 4.文件流 前言 由于西安疫情不可抗力因素,期中考试被迫推迟 世界第一拉扯 ...

  7. 答题辅助项目开发维护心路历程

    答题辅助项目开发维护心路历程 一.前言 直播答题,节目形式并不复杂,一名主持人以霸屏的方式出题,一般共有12道选择题,每次出题会弹出画面,每题有10秒的回答时间.如果所有题目全部闯关成功,则与其他全答 ...

  8. Android-嵌入式蓝牙 多年蓝牙产品开发学习心路历程分享-A2DP音频流的建立、A2DP播放暂停音乐命令交互、HFP、AVRCP、RFCOMM、OPP、AVDTP

    序言 当你点进来看到这段话的时候,证明你真心想学好蓝牙,哈哈哈,本来想搜索蓝牙某个协议,却成了一大段废话文,但此时,别退出去,如果你是一个牛逼的蓝牙开发者,只是想了解蓝牙某个协议或者知识点,那么直接点 ...

  9. 一个老产品的心路历程

    一个产品经理的经历可以分为三个阶段:无知者无畏.初出茅庐.渐行渐远. 近日,心中一直颇不平静,像如今这样的日子,17年前也曾经历,只不过那时候我还是一个高一的学生,现在回想起来,只记得当初得到了一个漫 ...

最新文章

  1. C#和Javascript间互转的Xxtea加解密
  2. JNI与底层调用-2
  3. Android7.0 Rild工作流程
  4. 简单约瑟夫环问题解法汇总(模拟/数论)
  5. FB面经Prepare: Email User
  6. Oracle中大批量删除数据的方法
  7. ubuntu boot中grub误操作 导致系统开进grub
  8. 爬虫基础12(框架Scrapy中间件)
  9. myeclipse 2017 CI 中如何修改Servlet模板
  10. 2.4.PHP7.1 狐教程-【PHP常量】
  11. 30种SQL查询语句优化方法
  12. MSNMessenger忌讳用法大全(转)
  13. php获取上周一,php strtotime 如何获取上周一的时间呢?-1 monday不对
  14. android短信验证码方案,Android之短信验证码
  15. Windows过滤驱动 WFP代码基本流程的剖析 bypass前期准备
  16. SpringBoot后端项目框架搭建
  17. usb 接口触摸屏驱动
  18. Excel如何从混合数据中提取出手机号码
  19. 2019年云化国际发展趋势_2019年3种令人惊讶的云趋势-您首先在这里听到了
  20. win10 加ip地址映射

热门文章

  1. 以太网通讯 WINCC 通过 ModbusTCP 驱动连接
  2. 华为华三思科路由器连接交换机的几种方法
  3. php笔试面试题大全
  4. 鱼c论坛 python课后题pdf_[全套55讲]鱼C论坛小甲鱼Python的课后题.pdf
  5. div与p标签均为块级元素,区别是什么?
  6. 好橱柜彰显好品味,太子家居橱柜定制凸显家的气质
  7. linx 静态库与动态库
  8. 840D sl(QT)使用ocx外部控件
  9. centos 8 进入紧急救援模式
  10. JavaScript 淘宝购物件数的选择