软件测试:
1)要有一定的开发能力:开发各种性能工具,看代码,搭建项目环境,代码规范,代码风格
2)熟悉中间件:MYSQL,开发人员写了一个select *,这个时候查询性能很低,测试人员这个时候就需要进行提BUG,有没有使用索引?查询?有没有用联合索引?主键索引?建立索引之后有没有使用索引?
商场买衣服:
1)外观测试:初步筛选
2)试穿测试:尺寸,XS,S,照镜子,测试试穿之后衣服对于个人的外观是否有提升
3)面料测试:纯棉的透气,布料,棉纶
4)价格测试:询价(衣服穿上之后心理预期是300元),但是到了柜台之后发现服务人员说30000,直接不买了....
5)购买衣服交易完成
一:基础篇:
你既然学习了软件开发为什么要学软件测试呢?
我们软件开发进入互联网行业之后,开发出来的这些功能是由软件测试人员来进行测试的,开发人员要知道测试人员是从哪些方面来进行测试的,开发的时候就能避免这些的错误,我就更能保证我们开发出来的软件的质量比较高;调试已经不能满足软件的质量了;
1.软件测试是什么?
1)软件:用我们的程序开发出来的app,web系统,软件产品(画图板),单机画图板的一系列产品;
定义:测试软件就是针对我们上述所说的产品进行测试,是测试软件是否满足用户的需求,软件测试是软件开发过程中很重要的组成部分,它主要是通过一系列测试手段对程序进行一个品质或性能的测试,看它是否满足需求阶段的要求 。软件测试就是不断去发现错误进而去保证软件的质量。我们还要测试一些不满足测试用例的例子,从正反两方面进行测试;
总结:软件测试就是为了进行验证软件产品特性是否满足用户的需求
例如163邮箱的登录功能,对他的登录功能进行测试6-18个字符可使用数字字母下划线,都要以字母开头(需求),输入正确的格式和错误的格式进行测试;
有效:6-18个字符,数字字母或者下划线,必须以字母进行开头,例如123456就不可以注册成功,zhu1234@139.com(可以注册成功),我们输入12345@163.com就不能注册成功,因为它是不满足我们的一个需求
所以说我们不能只拿着满足需求的情况进行测试,我们还要拿着不符合需求的用例进行测试,如果注册失败,才可以说这个功能做的完全正确
1)是为了发现错误而执行系统或者程序的过程
2)测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量
3)使用人工或者自动手段,来运行或者测试某个系统的过程,目的是检测他是否满足用户的需求或者弄清预期结果与实际结果之间的差别,现在的软件测试已经完全融入到了软件开发的生命周期过程中了
2.测试和开发有什么区别?
1))软件测试和软件开发的调试的区别?
目的不同,角色参与人员不同,执行阶段不同
目的不同:
调试:是开发人员站在自己的角度查看自己写的代码是否可以实现他所要求所想实现的功能,定位并解决程序中出现的问题,发现并且解决
软件测试:是测试开发人员查看软件是否实现用户的需求,是发现程序的缺陷,并指出程序中还没有实现的功能,发现但是没有解决
角色不同:
软件测试:黑盒测试工程师,白盒测试工程师,开发人员(单元测试和集成测试是主要由开发人员进行测试);
软件调试:只能由开发人员进行调式
阶段不同:
软件测试:软件测试是贯穿整个软件开发的生命周期(软件从有到无,需求分析,设计,编码,开发的全部构成),等到我们的软件发布到线上之后,我们的测试人员也要监控,看看线上有没有问题,
软件调试:开发阶段编码过程中对某一项功能的检验;
软件开发的生命周期:需求-计划-设计-开发编码-测试-运行维护-上线
那我们的微信APP来进行举例:
需求:我需要你们团队做这样一个社交软件,能够像QQ一样实现聊天功能,发布说说的功能,能够群聊,可以转账
计划:计划软件开发的时间,以及这个软件怎么进行设计,从需求阶段测试人员就要进行验证了,进行分析和认证,要进行验证和分析需求的一个合理性,看看计划和设计是否合理
2))开发要求技能少一些,专业度高,代码要求精简,效率高(性能比较好),ArrayList与LinkedList(用删除插入的操作),在啥样的场景下使用啥样的集合(Java语法,数据结构,数据库,python,Java,APP自动化工具)
但是测试要求技能更广,深度比较低,要掌握抓包工具;接口测试postman,性能测试 jmeter,UI自动化,web,会用到很多测试工具(Robot),安全测试,这些工具只需要会使用,不需要理解这些工具的原理;
3))软件测试则是测试一个软件有没有问题,能不能上线,也就是把软件变得更好,起到把关质量的作用,让用户的需求变得更加幸福,辅助开发人员做出更好的产品
软件测试的岗位:
1)软件测试开发师:
这里面的开发指的是开发效能工具,从而提高软件测试的效能提高软件项目的质量,效能工具:比如说自动化测试工具,注意:这里面的自动化测试是不能够完全代替我们的手工测试的,因为软件的版本在不断的进行迭代,要重复进行测试之前的版本,自动化脚本是依据我们的测试用例来进行编写的
2)软件测试工程师: