软件测试基础篇(1)

1)软件测试学什么?

测试管理:软件测试贯穿于软件开发的整个生命周期,也就是说需求出来,测试人员就需要有工作去做,并不是测试在编码以后,要对软件测试过程进行记录,测试执行阶段是来执行测试用例的,而测试用例的编写是在编码阶段之前来进行的

自动化测试:提升软件测试的效率和效能,测试效率以及测试质量

需求评审:产品人员将需求收集起来转化成需求文档,这是开发人员进行开发的依据;

测试人员看该产品是否可以做出来,该产品是否满足用户需求;

测试人员是产品质量的重要关卡,需要进行需求分析和技术分析

2)软件测试能力:

软件测试人员除了要有基本的测试知识具备之外,还要有一定的开发能力,除了开发效能工具以外,还要看开发代码,搭建项目环境,SpringBoot,了解项目架构;

MYSQL:进行增删查改,查询select *要提bug,开发人员要看全表查询是否影响会影响线上性能(可能要用几十秒),查询是否建了索引?开发人员在查询的时候是否用了索引?innodb?通过慢查询日志;

Redis:redis有五种数据结构,开发人员针对于当前的业务场景,进行数据结构选型的时候是否合理?如果不设置失效时间,线上数据非常大,redis占据空间越来越多,如果不向MYSQL中存储势必从而造成数据丢失,redis设置过期时间是否合理?redis失效时间是否合理?本来key的有效时间是3天,但是开发人员只是设置了两天,不能仅仅依靠黑盒测试来对功能进行测试以此保证软件功能符合功能需求,也要看代码;

代码风格,代码规范,测试人员不仅仅局限于黑盒测试;

3)生活中测试的案例:测试行为在生活中是处处可见的

刚买一部手机,需要测试他的功能是否完善,买一件衣服是否合身,一场考试做完后在检查做过的题

为什么企业要进行软件测试?那就是因为软件产品的使用人群就是用户,如果产品质量差导致用户流失,那么就会十分不好;

 

  

4)学习了软件开发为什么要学软件测试呢?

软件开发进入互联网行业之后,开发出来的这些功能是由软件测试人员来进行测试的,开发人员要知道测试人员是从哪些方面来进行测试的,开发的时候就能避免这些的错误,就更能保证我们开发出来的软件的质量比较高,因为软件调试已经不能满足软件的质量了;

一)软件测试是什么?

定义:提升产品质量,找到产品缺陷,测试软件的功能性能强壮与否?

测试软件就是针对我们上述所说的产品进行测试测试人员验证软件是否满足用户的需求软件测试是软件开发过程中很重要的组成部分,它主要是通过一系列测试手段对程序进行一个品质或性能的测试,看它是否满足需求阶段的要求 ,软件测试就是不断去发现错误进而去保证软件的质量,还要测试一些不满足测试用例的例子,从正反两方面进行测试;

总结:软件测试就是为了进行验证软件产品特性是否满足用户的需求

因为企业最终的产品的使用人群是用户,用户是和我们企业盈利是息息相关的,所以需要满足用户的需求;

软件测试人员对软件的验证:

1)验证软件功能是否能够正常运行

2)验证软件产品特性是否满足用户的需求(软件功能,用户的使用习惯),为了保证用户的体验,因为用户体验至上,如果不测试,用户的体验行非常差,可能会导致用户流失,最后直接关系到企业的盈利

软件测试则是测试一个软件有没有问题,能不能上线,也就是把软件变得更好,起到把关质量的作用,让用户的需求变得更加幸福,辅助开发人员做出更好的产品;

二)测试和开发有什么区别?

1))软件测试和软件开发的调试的区别?

总结:目的不同,角色参与人员不同,执行阶段不同

一)目的不同:

软件调试:是开发人员站在自己的角度查看自己写的代码是否可以实现开发人员所要求所想实现的功能,发现软件的缺陷定位并解决程序中出现的问题,发现并且解决;

软件测试:是测试开发人员查看软件是否实现用户的需求,是发现程序的缺陷,并指出程序中还没有实现的功能发现但是没有解决

二)角色不同:

软件测试:开发人员+测试人员

黑盒测试工程师,白盒测试工程师,开发人员,单元测试和集成测试是主要由开发人员进行

软件调试:只能由开发人员进行调式

三)执行阶段不同:

3.1)软件测试软件测试是贯穿整个软件开发的生命周期,软件从有到无,需求分析,设计,编码,开发的全部构成等到我们的软件发布到线上之后,测试人员也要监控,看看线上有没有问题,况且来说一但需求出现了问题,那么就需要把整个软件都进行整改,但是此时开发如果已经完成了,就到了不可挽回的地步,因此每开发出一个功能,就需要进行验证该功能是否满足用户的需求,有人说测试是在编码之后执行,是不正确的,因为测试往往要依靠于测试用例;

3.2)软件调试:开发阶段编码过程开发人员对某一项功能的检验,并进行解决

2))掌握技能的深度(开发人员)和广度(测试人员):

开发专业度高,测试人员掌握内容广度大

测试人员要有文档设计能力

3))工作环境:

办公用品:笔记本和显示屏

办公环境:完全一致

发展前景:一样

4))薪水:中小企业测试人员薪资比开发人员低中大厂开发人员和测试人员薪资相当

5))繁忙程度:

5.1)因为软件测试是贯穿于软件开发的整个生命周期,当开发人员完成编码,测试人员要编写测试用例,执行测试用例,项目上线也需要测试人员跟进,如果说项目想要上线,但是测试人员不在,是绝对不敢上线的,因为一些配置出现问题怎么办?

项目上线多步走:沙盒到小流量(小部分线上用户也就是部分集群来使用此产品)

再到全流量(广泛用户)

5.2)沙盒:把代码推送到线上的某一台机器上面,只有公司的内部人员才可以访问到这一台机器,由测试人员来使用线上环境来对功能进行测试,假设如果在沙盒阶段就发现了问题,就可以直接进行回滚,防止造成用户使用感差;

5.3)小流量是为了让更多的用户发现问题,帮助企业一起发现问题;

 三)软件测试的岗位:

1)测试开发工程师的工作的目的就是为了更高效,更快捷的让测试工程师进行测试工作,测试开发岗位一般要求一定的开发能力,解决问题的能力十分重要

2)自动化测试是不能够完全代替我们的手工测试的,因为一款软件的版本在不断的进行迭代,要重复进行测试之前的版本,上线新版本之后,还要保证老版本的一个功能的兼顾;

3)测试人员先通过手工编写测试用例,然后再使用测试用例针对新功能测试,然后再根据我们写好的测试用例编写自动化测试;

软件开发工程师是以开发为主,但是软件测试开发工程师是以测试为主,开发为辅,提高测试效率,提高产品质量,开发效能工具就是开发自动化性能工具;

针对于自动化测试来说,第一代版本是1.0,第二代版本是2.0,因为测试要兼顾1.0和2.0要重复测式以前的版本,自动化测试本是依据手工测试用例来编写的;

四)你为什么要选择软件测试这个行业?一个优秀的软件测试人员应有的素质?你有什么优势让自己脱颖而出呢?

一:兴趣:

我在B站上和知乎上面一开始了解了软件测试这个行业,进一步学习了这方面的一些知识,觉得自己对他很感兴趣;

二:技能:

学习能力,写博客,代码能力(写了很多测试用例),抗压力(承受压力)和责任感(对于抗压力举例子,搬凳子坐楼梯学习,做比赛的时候xxxxx),具有快速学习的能力,快速学习JAVA语言编写规范,比如说要学习一些语言,快速上手

三:逆向思维,发散性思维,要想出很多很多的测试点,要有优秀的设计测试用例的能力

四:具备严谨、耐心、认真、负责的态度,批判性思维

一名软件测试工程师必须要对你所测的产品负责,需要以严谨的态度,不放过每一个细节,尽可能找出所有BUG,虽然不能做到完全没有BUG,但一名负责的测试人员应尽自己最大的努力保证自己所负责的产品的质量

五:涉猎广泛的专业技术,掌握自动化技术(企业中必不可少的技术)

技术是为测试服务的,不管是测试理论、测试工具、操作系统、开发知识、数据库,还是网络知识,至少有一门精通,其他也要熟悉,因为测试与开发或者其他行业不同,它更多的是考验你在专业技术上的广度而不是深度,以应对随时可能产生的各种BUG

六:具备良好的沟通表达能力

测试人员常常需要与不同部门的人员打交道。如何更精确,更简练,更严谨地去描述BUG,并保证开发人员可以接受你发现的BUG,都是需要依靠良好的沟通能力去表达和说服,所以良好的沟通能力尤为重要,和产品经理进行确认需求是否正确

七:文字编写能力:自己写的测试用例要能够看懂,要测试什么?怎么进行测试?

八:开发能力

九:保持终身学习的能力

十:有责任感

负责整个软件开发的生命周期和一定的压力,尽量不要出现漏测,总结经验,避免以后出现这样的错误

 五)软件测试的职业规划:

高级测试人员:风险把控,指导测试人员进行测试,高级测试人员搭建测试框架,选择合适的测试框架,能不能来提供自己组内测试人员来写自动化测试脚本,web界面,客户端服务器的自动化,PC自动化,接口自动化;

测试人员要具备最基础的安全测试,SQL注入,XSS漏洞,

探索性测试:依据测试经验的积累;

6)为什么选择软件测试这个岗位?是因为软件测试简单吗?

1)一开始学习软件开发的知识是因为对计算机行业很感兴趣,后来随着对软件开发的深入学习了解了软件测试这个岗位还有一些相关知识,提升自己的开发质量,发现自己很对软件测试感兴趣,非常有意思,发现软件测试适合自己,并且深入软件开发,这对于软件测试有很大的好处,后来有深入的学习了一下软件测试;

学习软件开发,是为了可以更好的和软件开发人员进行沟通和交流,方便以后能够在未来中深入学习软件测试,有助于进行软件测试的开展,甚至可以自己找出bug,找到原因,提出更好解决方案,总而言之是为了让让自己的软件测试工作做得更好;

2)我喜欢与人交往,作为软件测试人员,可以获得很多与人们互动的机会,不仅是同行,我还可以与老板讨论;

3)有一定的代码能力,而且对测试有一定的兴趣,平时在做测试工作的时候,就会觉得这个好有趣,说俗一点我就是各方面的去测,探索性的去测试,喜欢多方面的想,直觉的去按照错误猜测法等去测这个软件存在的缺陷,就比如说我写一个简单的代码,我就会用各种各样的用例去试验这段代码是否最后真的完美了
4)与人打交道,首先要会听,理解对方要表达的底层意思是什么,我回答的时候不仅要自己明白我说的什么,最主要是对方可以很清楚的知道我要表达什么

熟练JAVA代码开发规范,快速熟悉公司的bug文档,公司规定的公共方法,公共接口,数据库增删查改的接口,掌握自动化测试技术,项目测试和技术事务,是必不可少的技术事务;

自动化测试技术+优秀的测试用例设计能力+探索性思维+发散性思维+批判性思维+认真总结

一:探索性思维和批判性思维三思而后行:

1)探索性思维是指,测试工程师在执行测试的过程中不断学习被测系统,结合自己的经验,知识,直觉,进行系统的错误猜测和逻辑推理,整理和分析出更多有针对性的的测试关注点

2)测试人员要有一个很好的发散性思维,对项目要从多个方面角度去进行考虑,去思索,还有那些测试用例和情况可能会导致软件出现问题,程序出现bug,想办法把测试用例覆盖的功能很全面,这样才可以使产品功能在线上暴露更少的问题;

3)积累经验,不断学习,在测试的过程中不断地去学习被测试系统,结合自己的经验进行系统的错误和猜测能力,整理和分析出更多有针对性的功能测试点

二:责任感

不能说产品上线之后感觉就算产品出现问题也不是我一个人的事,要有责任感,产品上线以后也是需要测试人员跟进,配置问题,线上集群出现故障,出现漏测,尽量少出现漏测,组织case story,出现的问题是什么,对自己工作出现的纰漏及时总结,避免后续再出现类似问题,领导分配的工作,不光要完成还要做好,因为测试人员是产品最终的最后一个关卡;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值