软件测试新手成长建议文档格式.docx
- 文档编号:21748769
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:25
- 大小:44.08KB
软件测试新手成长建议文档格式.docx
《软件测试新手成长建议文档格式.docx》由会员分享,可在线阅读,更多相关《软件测试新手成长建议文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
基本上无非这几种观点:
1.我不会写代码
2.测试工作压力比较小
3.测试适合女孩子
4.测试比较好入门
其实这些说法只能说对错相伴,总的来说都是因为对测试工作的片面性导致的,那么在我眼里测试工作到底是什么需求呢?
1.好奇心,对不清楚的东西喜欢琢磨
2.耐心,为了得到某个结论愿意反复的尝试获得结果
3.沟通能力,测试是一个需要说服别人和理解别人的工作,需要很好的表达能力,人格魅力及沟通能力
4.学习能力,别人懂一点你需要多懂一点,因为你需要说服别人靠嘴是不行的,本质上还是靠数据和证据。
那么先对前面说到的几个可能比较片面的观点做个补充:
1.测试不需要写代码
其实测试工作并不是不用写代码,只是在大多数初级测试工作中都是功能测试为主,也就是代替用户运行软件体验软件,在这种情况下确实不需要有开发能力,但是这看似简单其实很难。
可以参考美食家,美食家就吃东西么,这东西你会我也会,有啥了不起的。
现在对于测试人员的要求在开发上要求越来越高,而且如果你想很好的验证被测软件,会开发是基础,所以有些时候测试对开发能力的要求比开发工作还高。
测试工作和开发工作有些区别,因为开发工作需要有具体的产出,而测试工作的产出会略少点(不太好量化)。
同样一件事情,开发的工作量比较容易明确出来,而且是被不太合理的量化出来(明明做好要2天,非要1天做出来,虽然可以做出来,但是不懂的人是看不出哪里不好的)。
而测试工作更容易偷懒了,因为除了使用特定的测试管理工具,否则没有办法监督你测了还是没有测,用心和没用心更是看不出来了,除非测试后还存在问题,而遗留问题又是必然的,所以这个时候工作的主动权回到了自己手上,也就是说认真做测试压力会很大,而不认真做测试的压力会比较小。
在这点上我只能说出来混迟早要还的,你不认真自然有人替你认真。
从大多数开发都是男性的角度来说,女孩子做测试可以获得沟通的优势,但是女孩子也有自己的不足,所以你会发现大多数业务测试都是女孩子,但是技术测试都是男的。
女孩子的性格确实在基础重复性工作上会更有优势,这个只是职业划分,但是如果你觉得女孩子不提高点技术就能混下去,那么还是前面那句话,中国不确人。
4.测试入门门槛低
这点在现在其实我都有点想否定了,为什么呢?
因为开发的门槛其实也蛮低的,你只要重复写一个东西3个月,其实去应聘个工作还真够了,而测试工作要把道理说清楚能做,可能3个月还真不太够。
但是对于招聘公司来说,大多数还没成熟到招聘一个优秀测试的概念和观点上,所以对于测试职位一般只需要你懂个概念,能做点执行工作就行了。
从这个角度来说测试入门的门槛确实不高,但是如果你对未来的职业高度有向往,做好测试工作的要求非常高。
那么在说了这些内容后,不知道看完了的你有什么想法呢?
小白成长建议
(2)-扎实基础
测试基础
不知道在看完上一章之后你是否还有勇气继续选择测试这个工作,或者对这个工作有了一定的了解。
那么在进入正题前,抱歉我还是要再做个铺底。
就是我们的第二章测试基础。
测试需要基础么?
需要,很需要,甚至我觉得都需要一点点天赋!
就像不想做厨师的会计不是好司机一样,测试是一个非常需要跨行业跨领域跨传统思想的工作。
想要做好测试,那么你必须啥都会一点,而且为了说服别人,你还得啥都比别人厉害点,这样别人才会服你。
比如你告诉别人乱穿马路是不对的,这是没用的,因为别人不一定明白道理。
如果你让他作为司机感受一下开车的时候的一刹那走神,并且让他看看相关数据,他可能突然一下就会意识到,不能将自己的生命放在别人的不疏忽上。
每当看到骑车带孩子上学被集卡或者搅拌车之类的大型车辆盲区带走的案例,都心痛不已,害己害人。
那么测试需要什么基础呢?
这个和你的工作业务方向和自己的职业方向有一定的联系,所以我这里从入门者的角度,给出一点自己的看法吧。
业务基础
当你在工作中验证一个被测软件的时候,其实首当其冲的就是业务基础,也就是你对该软件的功能是否有足够的了解。
例如你玩一个dota类游戏,那么你一定要知道这个游戏怎么玩,规则是什么,你才能进行基本的测试,如果对于某些比较困难的用例,你还必须要有非常扎实的操作基础,因为什么技能组合冲突等都会需要相当特殊的环境验证。
而如果你测试什么粉粉日记(朋友的公司做的,顺便做广告)之类的软件,那么你需要对女孩子的心思有所了解,才能理解为什么一个日记软件能做到千万用户。
测试工作对于测试人员的业务基础有时候比技术更重要,这也是你会发现很多公司的测试经理(女)大多数都是业务背景很厉害的原因之一。
既然这样所以你的专业背景在软件测试行业就不一定是计算机,但是后面也会说计算机相关专业总有一定的优势的,but这年代谁不会用电脑呢?
如果你对财务很熟,那么你做财务软件会有一定的优势,如果你对海淘很熟悉,那么电商类的系统你会更容易上手,以此类推。
技术基础
技术基础可大可小,但是我还是按照稍微理想一点的情况来谈吧。
对于软件测试来说,既然你测试的是软件,那么最好做到以下几点:
1.你会用这个软件(简单安装、使用独立进行)
2.你知道大概这个软件怎么开发出来的
3.你会开发这个软件(架构、数据库、开发、部署环境)
4.你能更好的开发这个软件
对于初学者来说一般是从1往2过渡,先从能用到明白原理。
这些技术基础包括基本的OS操作(主要是linux系统)、开发语言(主要是java)、数据库操作(主要是mysql、Oracle),这些知识可以帮助你更好的理解被测对象是怎么回事,从而在后面的测试技术中为你的疑问及分析提供有力的支持。
除了上面的技术基础还有一部分是测试技术基础。
这个方面就包括了测试理论、测试的相关体系流程、测试相关工具等,在这里就不详述了,在后面的章节中我会逐步细化。
素质基础
就如之前所说的,测试是一个相对比较烦琐的工作,如果你不是一个具有一定素质基础的人,那么我只有很遗憾的告诉你,你并不一定适合这个行业。
身边这样的例子比比皆是,带着满腔热血踏入这个行业,带着满腹牢骚抱怨离开这个领域,最后难受的会是你自己。
那素质基础包含那几方面呢?
通俗来讲,大致包括以下三个方面。
1.“三心”基础
古人云,细节决定成败。
细心格外适用于测试人员。
甚至于我们说,需要一些追求完美主义,吹毛求疵的精神。
而耐心与责任心更是能否真正踏入这个行业的必备因素。
2.态度基础
工作态度是评价测试人员很重要的一个方面。
例如,如果没有好的工作态度,即使一个技术能力再强的测试人员,在团队中有时候也不能对测试工作起到推动作用,还可能起到阻碍作用。
而一个愿意工作的测试人员,哪怕他的技术水平不强,人并不聪明,但对工作认真负责,这样的测试人员也会对工作起到很大的促进作用。
如果业务能力与技术水平都是后天能培养的,那态度基础就是先天因素,或者可以成为天赋。
3.学习基础
不断地学习新东西,不断总结在实际工作遇到的问题及解决方法,并把他们归纳整理形成经验教训。
是提高自身能力水平最好的方法,也是能否在测试领域达到一定高度的关键所在。
社交基础
其实本来想写沟通基础的,但是觉得这个topic太简单了,还是用社交基础来代替吧。
何为社交基础,人在社会中不是孤立的,而也不存在啥个人英雄主义,一个人改变世界(那是在小说电影中的桥段)。
既然你在社会(江湖)中,那么你就必须学会融入社会和江湖,有效的和你的圈子形成群居。
常常说开发和测试是水火不容的(个人觉得夸张了点),就和双子与处女是互相吸引但又互相伤害一样,一个是聪明发散,一个是沉淀计划,总是说不到一起。
但是作为测试人员,你的工作是提高软件质量(概念后面说),一切能够提高质量的工作都是你应该做的,哪怕让你身边的群居生物开心,这也是你的有效任务之一,所以你的社交能力决定了你周围的人对你的定位。
社交基础逃不了两个事情”颜值”和马屁,抱歉也许我这里说的非常直白,但是本质上我觉得也就是这两点。
颜值的道理很简单,人总是看第一印象的,如果颜值高,别人一开始对你的定义就会好很多,但是不要总觉得这是长相的问题(怪爹妈),这是一个整体的概念,大了说是气质,小了说的穿着打扮行为举止,这些东西给别人带来的就是对你这个人的定义。
所谓的IT男大多数存在着颜值问题,不拘小节,穿着打扮统一标准,各种大神更是可以用邋遢来形容,夸张了一点,但是能做大神的人物往往都没有时间或者精力来注意这些事情(参考扫地僧)。
而IT女大多也被同化了,女汉子居多(看部门),所以导致公司的女孩子可能会缺少点风情万种的感觉吧,当然想起了一个笑话,IT男问女”你们为啥上班穿那么多,不怕热么?
“IT女回答“我们穿少了你们会热”。
从这里我想说的是稍微有一点穿着打扮可以给你加分不少,但不要过。
另外一个方面是马屁了,其实马屁学可以说是一个让人讨厌又不得不说是一门好学问的东西,”千穿万穿马屁不穿”是一个大家熟悉的流行语。
到底怎么理解这个问题呢,我觉得应该从人性来考虑,其实人都希望得到认可,这是人存在的很重要的成就感的来源,每个人都有自己的优点,当然缺点也很多(比如我的缺点就很多,不自黑了这里)。
所谓的马屁学,其实也是一种赞许、鼓励别人的手段,需要从一个细微的地方找到别人的优点,来给与赞许。
在中国这点上可能比较奇怪,对别人的鼓励赞扬在小时候少,而到了成年了又过多。
个人的理解是小时候每一次进步鼓励都能积累信心迎接挑战,而成年了需要有足够的心智来抵抗压力自我突破。
作为IT人员往往会在这两个地方走上极端,要么过于对他人严厉要么对于他人过于阿谀奉承,这都是需要注意的。
在工作中IT人员做事沟通都会计算机化:
a.单细胞思维
b.讲究单刀直入
这个给沟通带来了快捷方便之处,也带来了很多缺心眼、低情商的状态。
人都是有感情的,不要把对方当作一个机器来看,当然工作对事不对人也是正常的,这是个度的问题。
我相信越是厉害的人,越是需要把握住自己的马屁度。
到这里,又要告一段落了,读到这里希望看完本章的你,会把握以下自己的业务、技术、社交有啥优缺点可以整理规划的,从下一章开始,我
小白成长建议(3)选书和看书
测试入门
在有了对这个行业的一个了解及需要具备哪些基础后,我们就来谈谈测试入门。
那么测试到底是啥,简单说来就是通过一定有效的方式来模拟用户运行软件,证明软件能够达到一定质量水平的手段吧。
这里我用的话语很通俗并不规范,其实大家也不用太在意测试的某些概念具体怎么说,总的来说就是bettermorebetter,说到这里我想先提一下关于大家总关心的测试入门看什么书的问题。
怎么看书和怎么选书
在谈具体推荐什么书前,我不得不再好好的把怎么看书和怎么选书说一遍。
其实在我看来书本无好坏,一本书不可能烂到一点用处都没有,但是它一定有个知识面和阅读团体。
如何选书
怎么称之为好书呢,我觉得适合你读的书就是好书,而不是别人觉得这本书好,千万不要小马过河,书自己翻一下就知道是不是适合自己的了。
怎么称之为适合自己呢,个人的定义是这样的:
1.难度适中
何为难度适中,就是1/3你觉得比较简单一看就懂,1/3你觉得有点难要仔细琢磨下,1/3你完全不懂,这样的难度比例会让你不会觉得读书太痛苦,没有成就感。
如果只翻头几页就看不下去了,那么我很难相信你有信心读完整本书
2.越厚越好
对于相同内容,厚的书一定比薄的书更加细节,薄的书往往都是点到为止,会让你觉得东西就这么点事情,而厚的书会在某些细节给你点拨压根不注意的某些地方,并且很详细的给你介绍里面的玄机,虽然你用到的概率也许不会很高
3.写作风格
每个作者的写作风格都不一样的,思路和体系也不相同,所以在买书的时候你一定要读一些章节看看作者的思路和你是否相同,或者你是否愿意接受作者的思路。
比如作者的写法是标准技术细节层层推进的,那么适合喜欢琢磨细节的人,而作者的写法是方向性的点到为止,那么就适合那些有个人主观的人去了解方向。
所以在买书前最好的办法就是先去书店或者网上看看相关评论,然后自己静下心好好阅读作者的前言和试读章节,以便了解该作者的风格和思路。
如果有条件去书店坐着把书简单的通读一遍效果更好,这个时候,你可以考虑是不是买书了。
这里补充一句不差钱买点书吧,否则作者都饿死了。
如何看书
看书真的是门技巧,有很多种读法,但是最终的目的无非是要么当字典速查,要么当武器掌握。
但是看书的目的一定要清楚,如果你希望看书马上帮你解决具体的问题,那么最好还是XX或者直接问别人。
通过看书要做到立即解决你的问题很难,更多的时候是让你减少记忆和明白道理。
个人谈一下看书的几个要点和所谓的方法吧:
1.看自己感兴趣的和能看懂的
往往一本书里面有很多东西,你买书一定有需求和想了解的内容,那么先把简单的东西看一遍,保证这些东西你是认可的和可以同步的,来熟悉作者的文笔和思路
2.习惯看不懂的跳过
不是所有的东西你都一下就能顺其自然看懂的,当看不懂的时候适当的跳跃一些是很正常的,如果你跳到最后了还没看懂,那么说明前面第一个没看懂的是后面的基础,那么你要回头重新来看。
否则把你能看懂的地方看懂了再回头来看不懂的地方,这样效率会高一点。
3.习惯问为什么
书不是公理,不代表书上写的东西一定是对的,所以背书不是好习惯。
在看书的时候一定要多问自己为什么,这样一定是对么?
看书不是看一遍就行了,你需要明白作者为什么这样写,当你和作者的思路同步了,那么你自然就很容易看懂书为啥这样写了。
4.把书变成自己的
怎么把书变成自己的呢,关键是理解书把书读薄。
说起来容易做起来难,其实我也不太爱看书,但是我个人的做法是看了目录知道结构,然后一个章节想想说了啥写个思维导图一类的东西,当你看到思维导图或者目录,你就想明白这本书说了啥了,其实很多书你知道有这么个方法可以这样做就行了,需要的时候去翻很快就能解决的。
回归正题,那么在说了如何选书和如何看书之后,谈一下我当年看过的基本觉得不错的书,首先入门来说,
软件测试[美]RonPatton著;
周予滨,姚静,等译
这是个人觉得最通俗易懂的一本软件测试基础书吧,原因也很简单,中国人写书喜欢教科书化,外国人写书希望简单通俗,具体原因我就不多吐槽了,不是我们写不出来是有些审批过不去。
剩下入门的书往往都教科书化,让你看的想睡觉,没办法,测试理论上的东西确实多了点,而且有些东西可能一辈子都用不上,既然要推荐,我也只能说自己搜索一下吧。
(后面的章节我会按照我的思想把知识点都写一下不会像书那么细,但是足够你入门了)
除了这个书以外《人月神话》《人件》《最后期限》我觉得都是不错的读物,关键都有电子版。
小白成长建议(4)从头开始
从这里开始我们正式来谈谈关于具体的测试技术,我先列一下目录,以便大家知道后面几章的内容:
1.测试基础及测试方法
2.缺陷管理
3.用例管理
4.配置管理
5.需求管理
6.单元测试
7.集成测试
8.系统测试
9.自动化测试
10.性能测试
这些是我觉得比较基本所需要知道的测试技术,而相关的一些开发、数据库、环境搭建等都应该在这之前基本具备的,我也不专门写点啥来解释了。
首先我们先来谈一下所谓的测试基础和方法。
其实一说到测试基础能谈的东西特别多,但是理论性又很强,让我消化了以后再给大家去理解也未必能精简成什么样子。
那么我先来谈谈一些基本的基础吧:
1.到底测试是什么
在我看来测试是一个根据某种规则进行校验的工作,这个工作需要:
a懂业务来设计校验规则
b懂技术能有效的执行校验规则
而这个工作的目标只是为了证明软件能够达到一定的质量。
在这里我想再强调一下,不要总觉得测试应该怎么做,测试的工作就是证明你测试过的内容是正确的,如果你能够做足够好的测试(所谓的覆盖率很高),那么客户能够运行到的非测试点就会少,那么遇到的问题也会少。
2.测试的价值是什么
最大的价值就是预防吧,大家可以这样理解,如果当软件运行的时候出现了错误,它所带来的后果可能会被放的很大。
但是这个放大的影响和所对应的业务有关,这也是为啥某些行业的测试工作不太被重视,而某些会被非常重视。
大家可能会对吃婴儿奶粉,早教有很强的认同感,这其实也是质量预防。
但是对于某些东西来说又非常的不重视,这就是现状。
或者从另一方面来说,测试对于企业的价值,体现在省钱与赚钱上。
省钱不言而喻,不论从上线后修复Bug的成本或大型项目回归的人力成本来说,测试技术的引入能够帮公司一定程度上降低这些成本。
赚钱上来说么,我觉得现在测试外包的崛起现象,就能很好的诠释这个问题了。
3.测试周期
测试的周期其实又涉及到模型,基本上现在的主流就是敏捷和VV,瀑布也有,简单来说就是瀑布验证太后面,一切都要靠前面做的好后面才有意义,就和造房子一样,你最后检验也没啥事情可以做了,房子都修好了。
而VV模型呢是瀑布的改良吧,就是全程监控,设计图纸出来要评审测试,水泥和钢筋需要评审测试,这样做更好点。
敏捷的做法就有点自己装修了,真的是做一点看看再做一点。
总的来说周期包含:
需求来源->
需求分析整理->
需求规格说明->
研发需求->
概要设计详细设计->
开发->
单元测试->
集成测试->
系统测试->
验收及维护
大概这样一些阶段,而对于测试来说应该都争取参与并且把关。
一般测试人员会参与项目启动会议,从那一刻起,测试活动也已经启动了。
在前期介入需求的提取工作,比后期根据需求文档熟悉需求要好,同时测试人员可以根据自身对业务及系统的了解程度,对需求及设计提出自身的看法。
测试的价值在项目前期也就得到了体现。
4.测试要素
对于测试来说是受人,流程和工具三个要素影响的。
人是最关键的要素,一个优秀的人可以设置合理的流程来安排工作,而工具的存在可以提高人的工作效率。
所以首先不要唯工具论,你掌握一个工具并不代表你怎么厉害,而是要进一步明白工具帮你解决了什么问题。
通常我们会先通过熟悉工具来接触测试,但对我们真正有用的是,工具带给我们的思想。
就像QC传递的就是测试管理的思想。
所以建议大家在熟悉工具的同时,可以想想为什么这么做及有没有更优的做法。
5.缺陷与bug
在这个基本概念中,首先需要明确缺陷的定义。
可以从比较广的角度来说一切违反定义的内容都可以称之为缺陷或者bug,但是定义这个东西就是很模糊的东西,因为三维空间并不能完全锁定定义,而在四维空间中有了时间才能锁定定义。
也就是说在设计的这个时间点上的对于正确与否的定义,就是判断是否正确的定义。
在缺陷中首先要分等级,有些缺陷是要立即改的,有些却不用,因为它们所带来的影响是不同的,还有一些缺陷可能是建议。
对于缺陷的引入有很多种情况,可能是初期的设计也有可能是开发中的疏忽,所以对于一个优秀的测试来说,如果能自己做个软件开发和设计,那么对于理解和把握缺陷的引入及预防会有很大的帮助。
测试方法
1.黑盒、白盒、灰盒
可以这样的简单总结,黑盒就是不了解被测对象内部情况直接使用的测试方法。
白盒是不关心怎么使用,主要针对代码本身的执行、分析的测试方法;
而灰盒是介于前两者之间的,从某些角度来说灰盒测试相对来说更好点。
黑盒测试强调对需求级别的验证,效果好,但是执行代价大,发现问题晚,定位表面。
通常我们会在系统测试中使用黑盒测试的方法。
从系统需求覆盖率去判断系统测试执行的效果。
白盒强调对代码级别的验证,执行快,发现问题早,定位细节,但是对于大方向的需求验证无法实现。
通常我们会在单元测试中使用白盒测试的方法。
从代码逻辑覆盖率去判断单元测试的效果。
灰盒测试介于之间,可以达到接近黑盒的执行效果,而定位上又会有一些工具的配合,所以定位就会准很多。
通常我们会在集成测试中使用灰盒测试,一般集成测试会分为接口联调及业务联调,大多接口测试覆盖率会评判灰盒测试的执行效果。
2.静态测试和动态测试
动态测试主要指通过运行软件来测试的手段,比如执行代码、编译代码等。
而静态测试主要就是不运行代码的方式,比如走读,代码扫描类的。
在这些方面有很多工具可以对代码的格式,文档的格式及内容进行静态测试。
也有很多工具可以在动态执行的时候分析代码的情况,帮助发现定位问题。
3.手工测试和自动化测试
使用人工执行的测试我们称之为手工测试,而使用某些工具帮助我们执行测试的就是自动化测试。
自动化测试在重复的问题上面可以极大的提高执行效率,而手工测试是自动化的前提。
手工测试可以更好的发现问题,而自动化测试是在手工测试的基础上提高了执行的效率,进一步通过遍历等方式可以扩展发现一些以前不太好发现的问题。
自动化测试不能完全替代手工测试,在很多情况下手工测试可能更富有创造性。
加上自动化测试的成本问题,很多公司起初对自动化都会有个美好的远景,但实施后大多也就不了了之了。
上面提到了很多测试的概念,初期的时候可能会迷失在概念中,但是过几年回头来看这不就是经验的总结么,做测试要多想多思考,才能明白为什么我们需要这些方法和概念来指导我们以后的工作。
理论永远是实践的基础,就像楼要一层一层盖上去,要造的稳,地基一定要打得扎实。
希望大家不要因为理论枯燥而怠慢,它其实很重要。
小白成长建议(5)缺陷与管理
缺陷管理
缺陷管理是最开始也是最基础的测试必备技能。
在工作了很多年后仍然会发现大量的测试人员没有办法合理的做好缺陷管理。
在我眼中的缺陷管理包含以下几层概念:
1.缺陷的描述
2.缺
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 新手 成长 建议