怎样做好软件测试?

PS:本文转载自黑马测试高赞知乎文章
链接:https://www.zhihu.com/question/19798371/answer/1545112971

这个题目非常宽泛,很容易鸡汤,但是具体怎么做,从哪入手,面对这个宽泛的问题,我拆出下面几个:
1、测试的目的是什么
2、做好软件测试需要团队,该选择怎样的团队?
3、做好软件测试离不开个人的努力,该往哪个方向努力?
4、新手具体怎么做,从哪里入手,可以怎么学?

一、软件测试的目的
软件测试的目的是什么?从实际使用角度来看,软件测试的目的,就是是为了保证产品质量。
所有新手都要记住这句话。

二、做好软件测试需要团队,该选择怎样的团队?

图中,咱们可以看到可爱的人民警察站得笔直,维护者秩序。秩序也按照核心目标得到了很好的维持。那么他们是如何做到的呢,因为团队靠谱。
1、靠谱的团队,要有共同的目标
对于社会,中国人民大团结,人民安居乐业是我们的共同的目标,是具有普世价值意义的目标。
如果没有共同目标的团队,他们是做不到这样秩序的,都是肉体凡胎,怎么可能拦得住汪洋大水?
对于团队也是,要把测试工作做好,我们需要每个人都有共同的目标,需要全公司的人都有共同的目标。这样才能让公司的人都参与测试工作,提高产品质量。
2、靠谱的团队,要有规矩
有一句名言是:不要凝视深渊,深渊也在凝视你。
咱们人性,始终会受到心情的影响,而做出一些意料之外的事情,所以我们需要通过规矩来约束行为,让团队更加理智。
3、靠谱的团队,要有信任
每个人都是不同的个人,想法也都不一样,大家必须互相信任,才能将力使在一个点上,就向一艘船,你向前滑动,他向后滑动,你们的力就抵消了,最后船只能原地打转。
如果所在的团队缺乏维护产品质量的共同目标,缺乏对损害产品质量一定会有处罚的规矩,团队成员之间遇到问题都是相互踢皮球,没有责任感,测试人员即使技术再靠谱,责任心再强,也很难做好测试工作。遇到这样的团队,若无力改变,那就赶紧撤吧。

三、做好软件测试离不开个人的努力,该往哪些方向努力?
首先咱们分析下下面这张图,大家看到了什么?

从图中,我们可以看出,这里有一个人,面对了一群人。这种情况也是我们测试个人经常遇到的状态。所以我们测试工程师要把测试做好,是一个面对“一群人”的综合性工作。
那么怎么面对一群人做好工作呢?
1、测试需要沟通能力
软件测试的触手其实非常广阔,我们可以和客户方沟通,也可以和内部开发人员沟通。
一般来讲,如果我们和客户沟通技术,说这个技术需要使用JAVA语言实现,采用Spring全家桶技术,客户端会听得一脸茫然,不知道你在说什么。而和开发时,如果说不清楚自己发现潜在问题,也会很难和开发沟通。
所以测试必须掌握灵活沟通的能力,“见人说人话,见猿说猿语”。
2、测试需要有很强的主见
测试面对的人群是非常多的,有发工资的老板,各种领域的技术大牛,用户等等,如果没有自己的主见,就很容易被一些“似乎有经验”的人给带偏,认为自己的发现的潜在问题,不是问题,从而造成严重生产隐患。
本人曾经在公司做测试就遇到过这样的案例,大锤是一个兢兢业业尽职尽责的测试,公司紧急改需求,发布了一个秒杀商品的活动,一天开发、测试上线;然后大锤发现这个产品功能没有太大问题,但是性能有严重问题,一些低配手机甚至无法运行,报告给领导后,领导不重视,认为只要功能没有问题即可,最后大锤没有坚持自己的主见,让产品上线了,结果上线后,大量用户反馈无法秒杀商品,手机发热、黑屏、死机等大量问题,最后导致用户产生了对该APP和公司技术团队的负面评价,留下无法抹除的坏印象。(结果是:测试和开发都罚款500元,还要复盘检讨)
3、测试需要怀疑精神
对于产品的质量问题,我们始终要保持怀疑的态度,不能人云亦云。
有的开发会为了保证产品按照进度上线,做出一些盲目的承诺,在没有充分测试的情况下,这种承诺是不可信的,如果不是万不得已,必须充分测试后,才能上线。
另外:当你的直觉认为产品有问题时,一定要相信直觉,再验证一次。宁可信其有,不可信其无。
4、测试需要管理能力
如何保证产品质量,在任何领域都是一门相当大的学问,我们需要通过人员管理、技术管理、流程管理规范测试的实施和提升执行人员的效率,才能保证软件产品质量按照进度,一丝不苟的完成。
任何流程上的缺失,管理上的漏洞都必然导致生产事故的发生。
同时,测试的工作非常杂,所以大家都自称自己是“打杂的”,如果没有系统的规划、管理能力,面对茫茫多的、没有划分重要性的工作,就会无所适从。
5、测试需要技术能力
测试大部分时间,主要是和BUG打交道,而BUG都是开发写出来的。所以我们需要具备一些技术能力,才能帮助开发深入定位BUG,帮助开发修复BUG。
在实际工作当中,其中大家关心的都是测试技术的应用。那么哪些测试技术是核心呢?去除掉一些不重要的内容后,咱们面试经常问的那一套。主要有:
1)软件测试理论技术;
2)测试工具;
3)一门开发语言使用
1)测试理论技术 :核心是用例设计的理论,BUG的生命周期,缺陷的来源等等。其中,用例设计是重中之重;BUG的生命周期和缺陷来源都是工作中,辅助管理缺陷的核心技术
2)测试工具的使用技术:缺陷管理工具: 禅道,JIRA;项目管理工具:SVN,GIT;办公软件:word,ppt,excel;
3)开发语言: Python或JAVA。
如果你有过编程基础,那么就可以选择Java。Java在企业级应用这一块是龙头大哥,作为测试能够很好的和你们家开发能够无缝的去衔接。
如果你之前是没有编程经验的,毫无疑问直接使用Python,因为他的上手特别快,功能插件也非常丰富。能够帮助我们顺利的切到自动化测试这块。
6 测试需要与时俱进的能力
测试人才也是IT人才,IT技术千变万化,我们需要不断更新技术,才能跟上时代发展的需要。
总结:要想做好测试,在个人上,咱们需要具备一定的管理能力、要不断怀疑,不断保持自己的探索的心情,持续学习增长技术,再加上良好的沟通能力,测试工作一定能有条不紊的顺利开展下去。

四、个人具体怎么做,从哪里入手,可以怎么学?
要想计入测试行业,刚开始可以选择做一些功能测试的工作。这块只要求候选者掌握基础的测试理论,测试用例设计方法,会使用缺陷管理工具如禅道、JIRA等,以及编写一些文档,这些内容学习起来对99%以上的小伙伴都没有什么学习压力可言,是绝对能学的会的、学的明白的。推荐视频入手如下:









若你是对测试不太了解的测试小萌新,有太多太多对测试的疑惑(前途、薪资、技术含量、男生是否可以干.....),强烈推荐你观看《测试小白必看:学习软件测试必问的100个问题,从此贴开始》,相信能扫除掉你心目中90%以上的常见问题。
《100个常见问题链接》:http://bbs.itheima.com/thread-507947-1-1.html

最后,为方便大家自学软件测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。
包括软件学习路线图,黑马50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2020软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助…..
《2022黑马测试学习路线图链接》:http://bbs.itheima.com/thread-405757-1-1.html
