假如你想成为一名测试工程师(程序员找茬师)
先扯点虚的测试工程师是个啥?设计用例常说的那些个口头语练好招数先扯点虚的
大学扩招,经济下行,疫情肆虐。。。
从小到大,我们经历了无数的考试,打怪升级,好不容易考上了大学,面对大学里突然的自由似乎无所适从,于是纵情于游戏,流连于恋爱,可是四年后你终究要面对就业,这个无法回避的问题。毕业就失业,对一部分人来说不是妄语,不是“厦大”的。
找到了合适的工作,但似乎收入不满意,疫情的突然到来,让工作的稳定性变得不可预测,被“优化”也不是一件稀奇的事情。经济的下行,让每一个打工人都被时代裹挟,不管你是否愿意,优胜劣汰是丛林法则。
说了这么多,并不是宣扬只有IT能拯救世界,今天只谈一谈如果你想成为一名测试工程师,应该具备哪些能力,需要做哪些准备,有什么基本的认知。
测试工程师是个啥?
且容我慢慢道来:
什么是测试工程师?俗称,找bug民工,职业找茬师。
简而言之,就是别人做了一个产品需要你这瞧瞧那看看,如果有产品缺陷,我们亲切的叫它bug,就打回去返工,缺陷被修复了再这瞧瞧那看看,确认没有问题,盖上合格印章,表示可以发货了。。。听起来似乎很简单对么?是的,套用一句很多人都会说的话—“就是这么简单”。
测试的入门并不难,相比于开发人员来说,应该是比较容易上手的,但同时测试又是很需要理论知识储备的,为什么呢?因为你要根据你的产品制定一个测试的计划,一个测试的方案,和具体的测试内容即测试案例/用例,请记住,测试用例,这个最高频的词汇,一切都是从一个良好的测试用例设计开始。。
初级或者刚入门的测试工程师,最重要的工作就是设计测试用例,一般包括4种类型:1)功能测试用例,2)接口测试用例,3)性能测试用例;4)安全测试用例。
设计用例
用一个最简单的例子来解释:一个登录界面该如何测试?
功能测试设计:一个登录页面包含了两个输入框,用以输入用户名和密码。那么我们该如何来测试它呢?
别急,我们先看两种测试用例设计方法:1、等价类;2、边界值。
等价类,顾名思义,就是有相同作用的一组测试数据,比如学生可以分为男生和女生两个类,任意一个男生和一个女生都能作为他们类的一个代表来表征实际作用。
边界值,同样的,就是别人给了你一个限定,说今天8点必须得到公司,不然就算迟到,这时候你有两个选择,你可以试试7点59分59秒算不算迟到,也可以试试8点00分01秒老板会不会扣你钱。也就是平常大家说的,玩极限。。。边界值是对等价类的一个补充,就是划分好等价类后我走走钢丝,看看到底能咋滴!
实际工作中,在测试用例设计前,我们会收到产品经理提供的需求文档,在需求文档中通常会定义好界面的设定,如输入框有长度、格式等要求。比如长度要求20个字符,合适要求必须是英文字母开头。
应用等价类和边界值设计大法:长度设计两个等价类:1)长度在20个字符以内;2)长度大于20个字符;格式要求设计两个等价类:1)英文字母开头;2)非英文字符开头。
再用边界值具体化测试数据:长度有效等价类:20个字符;长度无效等价类21个字符。
最后将两种等价类组合生成测试数据:有效:以英文字母开头的20个字符;无效:非英文字符开头(长度就不care了);以英文字母开头的21个字符。一共3条测试用例,学会了么?
这就是一个简单的功能用例设计过程。当然还不止这3条,结合具体的使用场景,我们又可以划分出用户存在和用户不存在2个等价类;但设计方式是一样的,这里就不再展开了。
由此,我们可以说,假如你想成为一名测试工程师,第一要学会的就是运用各种设计方法(等价类、边界值、正交实验)等等来设计合理、覆盖率高、不冗余的测试用例。
第一要紧的就是用测试用例找出bug,扔给开发,然后深藏功与名。。。
常说的那些个口头语
再说说几个常提的概念:
测试计划/测试方案,一般由测试组长或测试leader写作,也可以说针对项目计划的有效补充,包括测试的开始时间、完成时间和各个里程碑事件节点。如冒烟测试、SIT(集成)测试、UAT(验收)测试、生产测试等时间、任务、人力安排、测试设计方法和验收标准、资源需求和协调等等内容。实际工作中,初级测试人员接触的不多,更多的是做好测试的具体执行工作。
冒烟测试:开发同事做好一个版本的内容后会将代码发布到测试环境,测试同事将各个模块的主干流程的用例抽取一部分最重要的出来组成冒烟测试用例,执行这些用例的过程或者阶段就叫冒烟测试阶段。
SIT(集成)测试:对应于软件或项目的研发流程,遵循敏捷迭代的方法论,开发是不断将新特性或者修复的bug集成到测试环境,对应于单元测试,测试这些组装而成的子系统和子模块可以叫集成测试。
UAT(验收)测试:通常由测试人员配合产品经理或者业务人员一起进行,针对版本内容进行特性的验收,包括功能、性能、安全等等要求,也就是说看看是否达到了产品设计的要求,能否交付客户使用。
生产测试:产品发布到线上后,通常还会进行线上的测试,以验证在真实运行环境和实际数据下产品是否运行正常。
练好招数
设计测试用例好比修炼内功,有了内功还不行,所谓,工欲善其事必先利其器,我们需要掌握一些关键技能才能胜任测试的工作:
它们分别是:1、Linux命令操作技能;2、SQL操作技能(基本的增删改查);3、抓包技能或者Google等各种浏览器的开发者模式阅读技能;4、shell脚本技能;5、测试工具使用技能(jmeter/postman/loadrunner等);5、接口自动化测试(以python居多)脚本技能;6、UI自动化脚本技能(selenium等)。
路漫漫其修远兮,吾将上下文中求索。。。
忘记了,假如你想成为一名测试工程师,有一项最重要的技能必须得拥有了:和开发干嘴仗的能力。。。。
因为你说有bug,开发会说:
你环境是不是有问题。。。
你配置是不是有问题。。。
你测试数据是不是有问题。。。
你会用么。。。
你肯定搞错了。。。
咳咳,骚年们,加油吧。。。