• 0
  • 0
分享

  我们在求职的时候,发现有的是招聘的功能测试,有的招聘的是性能测试,那么功能测试和性能测试的区别是什么呢?


  侧重点不同

  功能测试的侧重点是功能是否满足客户需求。

  比如说我们拿到一个节假日搞活动的需求,这个需求有好多种场景,比如说是百分比打折还是满减打折,是否有优惠券,活动是否可叠加使用,如果可叠加使用,优先使用哪种优惠策略等等。

  做功能测试时,我们必须把这些需求都搞清楚,并且尽可能的将所有可能出现的场景都测试到,功能测试注重产品的每一个细节。

  功能测试要保证的是每一个功能点都无问题,以防在生产环境上客户使用的过程中出现问题。而且功能测试完成后,需要提交测试用例、测试总结报告和用户操作手册等文档来追踪整个测试过程。

  另外,功能测试更注重客户的使用感受,测试工程师应该站在客户的角度来使用功能,而不是站在开发者的角度,因为真正使用系统的还是客户,只有更多的考虑客户的使用感受,才能将系统做更大范围的推广。

  性能测试的侧重点是响应速度是否能满足客户的需求。

  对于性能测试来说,我们要做的是,分析可能出现瓶颈的操作,对其进行压测,或者是某个需求的整个操作流程,进行在线测试。

  同一个需求,我们先要分析要在哪些点进行压测,比如说勾选订单,计算优惠券的时候,又比如说选择好优惠券,提交订单的时候,如果在这些点需要进行压力测试,那需要在这些步骤之前添加集合点,并设置并发数量,查看响应时间、吞吐量及系统的性能是否满足要求。

  性能测试完成后,要根据性能测试的结果,分析最佳用户量,最大用户量,系统性能等等数据,并根据测试数据,分析系统瓶颈,分析有无可优化的地方。性能测试要保证的是在多用户并发操作系统的情况下,系统能健壮并稳定的运行,并且客户能有好的体验效果。

  下面我们通过测试用例的方式更直观的体现一下两者的区别。

  场景:开通一个满50-10,满100-30的活动,只有指定商品才可以使用该优惠券。

  功能测试用例:

1-1.png

  性能测试用例:

1-2.png

  当然这里的性能指标是我自己举例用的,真实的性能测试中,需求里都会给出要满足什么样的数据。

  通过我们列举的功能和性能测试用例可以非常清晰的看出,功能测试用例注重细节,边边角角、不同场景都要测试到,而性能测试更注重响应时间、吞吐量等数据。

  参与的时间段不同

  功能测试贯穿于项目的整个发展阶段,从需求分析开始,经历测试用例的编写、测试用例的评审、执行测试、bug回归、测试文档的整理等等,一直到项目结束为止。

  而性能测试一般是在项目的后期进行。比如说我们拿到一个需求或者项目,在前期基本功能尚未完善的情况下,一般是不进行性能测试的。

  一直到项目后期,功能基本实现且无致命bug的情况下才进行,因为性能测试主要是测试系统或者功能的性能,在功能尚未完成或者存在问题的情况下,性能测试毫无意义。


  使用工具不同

  功能测试又分为手工测试和自动化测试,如果是手工测试,不需要使用工具,只是通过输入和查看输入的方式来验证功能是否正确。

  如果是自动化测试,需要我们使用工具(如selenium、QTP等)对脚本进行录制,并且对脚本进行修改后让脚本能按照我们设置的数据进行自动化的测试。

  性能测试主要是通过工具进行测试(如Loadrunner、Jmeter等)。

  说了这么多不同,但是功能测试和性能测试的最终目的都是一样的,都是希望系统能稳定的运行,单纯的功能合适或者性能测试都是不完整的,为了客户能有更好的体验,只有合理的将功能测试和性能测试结合起来,才能使一个系统更加完美。



作者:CICI   

来源:http://www.51testing.com/html/01/n-4480101.html


2021 问卷礼物图.png

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 读者提问:『阿常你好,使用 Jmeter 做性能测试,如何模拟多个不同的用户同时登录,总共有几种方法 ?』阿常回答:阿常所知的方法有如下两种:1、CSV Data Set Config本地创建文件,保存为 csv 格式,里面保存用户名和密码。CSV Data Set Config 选择本地创建好的文件,设置变量名。(后续在需要传参的请求中,引用变量 ${username},${password})2、创建JDBC请求获取登录账密Jmeter 创建JDBC请求获取登录账密,结果存储到变量中,依次传给登录接口。具体可以查看阿常之前写过的文章,jmeter创建JDBC请求,返回多...
            0 0 2833
            分享
          •   测试工程师经常遇到的问题有:  · 开发的提测质量不佳,开始提测之后明明还有许多功能没有开发完整就提测,导致测试延期  · 经常出现功能漏测的情况,无法保障产品质量  · 经常出现明明测试过的功能,测试通过之后又出现重复的bug  · 测试环境没问题,但是线上环境就是出现了问题  针对第一种提测质量不佳的情况  测试同学做到规范冒烟测试流程,可以提高开发的产品质量意识,冒烟测试通过之后才算正式进入提测环节,这样可以很好的判断到底是因为开发质量问题延期,还是测试慢延期。  冒烟自测流程如下:  QA同学负责用例输出,开发同学执行接口/功能/场景用例,QA同学负责复杂场景及功能走查验收。  项...
            17 17 1569
            分享
          • 编写一份优秀的接口文档会让软件开发中变得更加轻松,更有效率。这可是关键任务,写得好不仅可以帮助开发人员更好地理解和使用 API 接口,还可以提高整个团队的协作效率。大家可以在线感受一下优秀的接口文档是怎样的:https://petstore.apifox.cn那么我们该如何写好一份优秀的接口文档呢?接口文档结构首先我们要知道文档结构是什么样子的。接口文档应该有清晰明确的结构,以便开发人员能快速定位自己需要的 API 接口信息,同时帮助快速理解。一般来说,接口文档应该包括以下内容:接口概述接口参数接口请求和响应示例接口返回码接口调用方法这些内容都包括的话,起码在结构完整性上就已经做得很好了。接下...
            0 0 1254
            分享
          •   在日常工作中基本每天都会与时间类型打交道,比如数据库每条数据的创建时间,更新的时候需要写入的更新时间,那么问题来了,如下:  它是要 UTC Time(世界统一时间)还是要本地时间?  日期的格式要怎么格式化?  我如果得到的是一个时间戳,我该怎么转成目标时间?  我如果想把数据库的时间转成时间戳我改怎么处理?  等等等等  上面说的这些,不复杂,但是你不能不知道,如果连这类的基础在用到的时候都需要去检索,那么就不用谈效率了。  下面,咱们通过几个实例,一起来看一下使用 datetime 这个库做日期和时间的管理和转换。  实例 1:获取当前时间import time from&...
            0 0 798
            分享
          •   当前,系统测试主要集中在功能测试、性能测试以及安全测试三大方面,对于容量测试的关注比较欠缺,特别是磁盘容量空间。从系统测试业务连续性上考虑,容量测试是其中不可或缺的步骤,做好容量测试可以进一步优化信息系统服务能力,从而提供持续、合理的系统服务。  对于容量测试,首先需要明确几个概念。容量管理,是指根据当前和未来的业务需求,在恰当的时间、以恰当的成本提供所需的IT资源。管理对象是对环境中的业务应用系统、主机平台设备、开放平台设备、网络、机房环境设施等进行容量规划。容量评估,是指对系统是否能够达到要求的生产能力,并且有一定超负荷运行能力以满足未来市场的高峰要求的评估。  本文从测试阶段出发,针...
            0 0 1378
            分享
      • 51testing软件测试圈微信