刚刚入门软件测试的宝子,可能经常会看到:功能测试、性能测试,这些到底是什么呀?那我就带大家了解一下~
功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。功能测试也叫黑盒测试,只需要考虑测试各个功能是否实现,比如游戏的功能测试,首先测试游戏的各个功能是否符合需求,就是各个功能是否能正常使用,这也叫正向的测试。
然后各个功能的反向测试,就是不按照使用说明书来使用,看看会不会出现预计外的问题,总的来说就是按照需求编写出来的测试用例,输入数据在预期结果和实际结果之间进行评测,进而提出更加使产品达到用户使用的要求。
性能测试是通过自动化的测试工具模拟多种正常,峰值以及异常负载条件来对系统的各项性能指标进行测试。必须是使用测试工具,手动很难进行性能测试。举个简单的例子,一个网站,我模拟很多人访问操作,测试多少人访问的时候,网站反应会变慢,这就是负载测试。测试多少人访问,网站会崩溃,这就是压力测试。
1、这两者的区别就是一个关注功能是否有问题,一个关注除功能是否有问题外,用户是否用的流畅,用户的体验是否良好。
功能测试和性能测试都属于软件测试,在软件测试中,功能测试是属于基本的测试,功能测试是一个测试人员入行的基本技能,功能测试可以使用手工去测试,也可以使用编写程序去测试软件,也就是自动化测试。
性能测试在测试中属于偏高级的了,需要测试人员有几年的工作经验,测试技术要有一定的深度,其他IT技术有一定的广度才的做好性能测试
2、这两者从测试领域中来区别是:功能测试偏基础,属于入行的基本技能,性能测试在测试领域中属于高级测试,需要一定工作经验。
最后我们来讲一下,功能测试和性能测试在市场上的需求,功能测试因为是基础的测试,市场需求量很大,从业人员也很多,因为简单,易学,易上手。薪资在一线城市就是6,7K,如果加上难一点的就加上自动化测试,薪资水平在一线城市有10k左右。性能测试在市场的需求量也很大,但没有功能测试那么多,因为贵,也因为要胜任的条件比较难一点,所以精通性能测试的人员市场上不是很多,薪资一般都有30k以上。
3、这两者在市场需求方面的区别是:功能测试需求量大,从业人员也大,相对于性能测试来说有竞争,薪资还可以。性能测试需求量相对于功能测试来说小一点,但薪资高,学习难度大。
2006年我还在读书的时候,学校里的软件质量课程里,老师跟我们讲“用win runner做性能测试”。2008年我毕业进第一家公司的时候,公司里的培训老师跟我讲,“用load runner做性能测试“。2011年,我在另一家公司做接口测试的时候,我们用soapUI做功能测试,soapUI的公司的网站上跟我讲,“用loadUI做性能测试”。2012年,我在自学的时候又网上看到了“用jmeter做性能测试”。而后来,gatling,grinder,locust,tsung,工具多得数不胜数。那么,我早就想问了,性能测试就是使用这些测试工具吗?
性能测试最需要的东西,不在于工具,而在于对整个待测系统的理解。首先要理解整个待测系统它的软件架构,硬件架构,网络架构,理解它是如何运行的。它由哪些部分组成,各个部分之间是怎样交互的。用户怎样使用这个系统。在理解系统的基础上,我们可以得出系统的各个部分的性能要求是怎样。也就是性能需求。
而测试的过程也就是验证和探索这些性能需求。
为各种性能需求设计测试场景,再编写测试脚本,执行测试脚本,汇总测试结果,再分析测试结果,进行调优,再重复测试与调优,最后产出测试报告。指明系统是否符合性能需求,哪里还达不到要求。
这其中,跟性能测试工具有关的,只有“编写测试脚本,执行测试脚本”。其他的所有步骤需要的是:计算机科学与技术的各方面综合知识、对业务的理解、对待测系统技术实现的理解。至于性能测试的工具,我们可以选用开源工具,也可以选择自己开发工具。当我们全盘理解性能测试之后,就可以针对具体的需求开发性能测试工具来解决各种实际问题。注意自己开发的性能测试工具与开源工具的区别:自己开发的工具可以很有针对性,而开源工具需要考虑兼容性与普适性。两者的开发重点完全不同。开源工具以推广这个工具为目标,而自己写的工具以最快/最经济解决实际问题为目标。
说了这么多,性能测试到底要如何入门呢。
一方面,工具仍旧是要的,建议使用jmeter等开源工具作为入门学习的工具。照着用户手册操作一遍,花个几天时间就能上手。
更重要的另一方面,我们需要理解性能测试的原理,做性能测试的基本步骤,场景设计的基本策略。不知道这些,光拿个工具,有什么用呢。现实业务千变万化,往往需要测的东西,并不是那么简单拿个工具随便搞搞就能搞好的东西。
通俗来说:利用性能测试工具或者代码对系统的相关性能指标进行的测试,用来评估系统的性能
性能测试是互联网+企业的“刚需”
企业规模越大,性能瓶颈越明显,性能测试至关重要!
性能挑战:
业务复杂度提升
数据级日渐庞大
实时性要求提高
并发压力越来越高
应用面越来越广
只测试不调优=“只查病不治病”
性能测试工具≠性能测试
性能测试≠用户并发测试
提高硬件配置≠提高性能
性能测试≠只录制脚本,不编写脚本
以我之前性能团队Leada时候的经历来说,对性能岗位的定级,大概是按照如下内容划分
如上定级和岗位职责描述,稍显粗略,每一级都默认具有上一级的职责和能力。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
最后: 可以在我的VX公众号:【自动化测试老司机】免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。