热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

故障处理软件需求_软件测试方法大汇总

自动化性能测试自动化性能测试摘要在过去的20年中,很多公司已经转向用软件将工作数字化方式。在软件应用的推动下,已经产生了巨大生产效率,同时

自动化性能测试

40a8582e4f9403b9f67a8f805d24446a.gif

自动化性能测试
摘要
在过去的20年中,很多公司已经转向用软件将工作数字化方式。在软件应用的推动下,已经产生了巨大生产效率,同时,为全球经济的协作和信息共享提供了新的方式。软件应用实际上已经成为业务关键信息共享和各种事务处理两领域的主要渠道。当前,软件应用----从e-mail到CRM(客户关系管理)到事务处理----就意味着业务本身。
软件开发技术在这段时期内已经发生改变并且相当成熟,现代应用软件的复杂性也正在爆发。应用可以使用数十和数百种组件完成曾经使用纸张或手工的工作。复杂性直接导致业务过程中出现更多的潜在故障点,从而使分析问题的根源更为困难。
此外,软件应用的运行与汽车不同。它们没有那些当磨损后可直接更换的耐久部件。不论目标是为了建立竞争优势还是为了满足业务的变化,软件应用每周每月每年都在改进。这一连串的变化使公司不得不面对另外一系列风险。
难以置信的改变速度和爆炸性的软件复杂性给软件开发过程带来了巨大风险。严格的测试,对于量化和降低业务风险,是最常用的策略。开发人员,测试团队和管理层等会提出一个相似的问题:在投入运行前如何准确,全面地验证系统性能,而不超出预算。
通过性能测试,公司可以在投入运行之前检验应用是否满足业务需求,量化最终用户体验的变化的影响,并且快速分析和解决发生故障的组件,因而在部署时就较少出现意外。然而,自动化性能测试的美好前景需要面对一些新问题:
1. 什么是性能测试?
2. 为什么要使它自动化?
3. 性能测试正确的过程?
-设计
-构建
-执行
-分析,诊断,和调整
4. 好的性能测试涉及到哪些人?
5. 谁需要看结果并且如何报告结果来量化ROI?
6. 当比较自动化负载测试方案时,哪些特性是最重要的?
通过我们的负载测试经验和大量的顾客输入和回馈,我们已经在正确的方法中积累了大量的专门技术,使得性能测试的步骤自动化。这篇文章总体介绍了自动化性能测试和最佳覆盖性能测试方法的益处。
什么是性能测试?性能测试是在上线前对系统进行端到端性能测试的唯一方法。性能测试解决方案是:
1. 使用最少的硬件模拟成百上千的用户与系统进行交互。
2. 测量最终用户的响应时间
3. 以一致的方式重复负载
4. 在负载下监测系统组件
5. 提供健壮的的分析和报告机制
自动化测试方案通常使用4个主要的组件来构建和运行测试。这些包括:
1. 虚拟用户发生器可以捕获最终用户业务过程,并转化为自动化脚本。
2. 控制器将组织、驱动、管理、和监测负载
3. 执行期间负载发生器执行虚拟用户
4. 分析引擎观测、分析和对比结果
为什么使性能测试自动化?
自动化测试是一种方法,发挥人力,过程,技术的作用,以降低应用,升级或补丁部署的风险。其核心,自动化性能测试是在预部署的系统上施加生产环境的负载,同时测量系统性能和最终用户的体验。构建良好的性能测试可以回答类似下面的问题:
1. 应用响应时间对于计划的用户足够快么?
2. 应用是否能够处理期望的用户负载或更多?
3. 应用是否能处理业务所需的事务数量?
4. 应用在期望内或期望外的用户负载下是否稳定?
5. 你确定用户会在上线时得到积极的体验么?
通过回答这些问题,自动化性能测试采用业务术语量化改变所带来的影响。这样,就明确了部署的风险。一个有效的自动化性能测试过程可以帮助制定考虑周详的发布决策并防止系统故障和可用性问题。
自动化性能测试过程
一些已经成功实行自动化性能测试的组织,已经将这个过程分解为独立的阶段。虽然具体的实施可能有所不同,但是,宽泛地说,性能测试可以分为四个阶段—设计,构建,执行和诊断/调整。每个阶段有具体的任务,涉及到不同的角色,这些任务在转到下一阶段前必须完成。在最高级别,四个阶段可以被描述如下:
1. 设计阶段包括定义系统中所要测试的业务过程,在平均或峰值生产时间的综合业务过程,和用户和响应时间的全面目标。
2. 构建阶段包括建立和配置测试系统和基础设施,并且使用自动化性能测试解决方案来构建测试脚本和负载场景。
3. 执行阶段由运行负载场景和测量系统性能组成。
4. 诊断和调整反复迭代的阶段超出了测量系统性能和负载测试,达到另外一个层次,关键是要查明问题来快速帮助解决问题,并且调整系统参数来最优化性能
让我们详细分析关系到每个阶段成功与否的必要任务。
设计
这是性能测试团队向业务部门搜集性能需求的主要阶段。需求可以被认为分为四个方面—业务,技术,系统和团队需求。
业务需求一般通过与主题专家(SME,subject matter expert)的会议来搜集。这些人可以是业务分析师和最终用户。当下面内容准备好后,一套全面的业务需求就形成了:
1. 应用概要:系统用法的演示使得性能团队得到更高层次的理解,应用是如何被使用的。
2. 业务过程列表:最终用户在系统上所执行的关键业务过程列表。
3. 业务流程:Word文档,详尽记录每个业务过程的精确步骤和屏幕。
4. 事务列表:业务过程中关键活动的列表—例如登录或转移资金—需要在负载下测量。
5. 业务过程图:业务流程图说明业务流程的分支条件。
技术需求可以通过与系统管理员和数据库管理员(DBA)的会议来搜集。这些人可以隶属于开发或运营部门,或者隶属于两者。一套全面的技术需求仅当以下内容齐备时完成:
1. 环境评审:按照测试体系结构由系统或基础设施组进行走查评审。
2. 系统范围的会议:召开会议,讨论和确认在测试过程中系统需要排出的部分。
3. 生产图:一个生产基础设施图,用于说明测试与生产环境的差异,当从QA向生产迁移时可能对性能造成影响。
最后,重要的是,必须收集系统需求。这些是系统的高层次目标,决定着负载测试过程的通过/失败状态。这些一般在与LOB的项目经理工作中达成一致。系统需求包括对以下问题的回答:
1. 系统在正常和最高峰时期必须支持多少用户?
2. 每秒钟它必须处理多少个事务?
3. 对于可业务关键事务最大和最小可接受的响应时间是多少?
4. 用户群体如何联系?
5. 生产中系统承受的工作负载是什么?以及混合的事务?
团队需求是进展到构建阶段前需要解决的最后一个问题。这只不过是决定适合的性能团队成员来参与到未来的负载测试。最初,这也许被自动的确定(例如,当只有一个团队)。然而,如果性能测试成为卓越中心(CoE)的一部分,那么资源分配,内部后勤就应该在设计阶段考虑和解决。
预先收集一套完整的业务,技术,系统,和团队需求是使负载测试有效和成功的基础。
构建
构建阶段将在设计阶段确定的业务过程和工作负载转变为自动化组件,这部分可以驱动可重复的,实际的负载。这可以分为两个方面:自动化设置和环境设置。自动化设置是由性能工程师完成的一系列连续的工作。
1. 脚本:将确定的业务过程记录为自动脚本。
2. 事务:插入定时器来产生业务所需的逻辑计时。
3. 参数化:用一个池替代所有的输入数据,例如ID和密码,这样每个虚拟用户用唯一的数据访问应用。
4. 场景:通过给用户组分配不同的脚本,连通性和用户行为等方法,创建生产工作负载。
5. 监测器:确定负载下所要监控的服务器或机器。
环境设置由执行成功,现实的负载测试所需的硬件,软件,和数据组成。这些可能涉及到系统,DBA,运营和业务团队。
构建阶段的最终成果就是可以执行在可用的,已配置的环境上的一系列自动化“资产”。
执行
对于刚接触性能测试的新手来说,经常存在一个误解,就是执行是一个单一事件。实际上,它是一个由多种类型的性能测试组成的多步骤的过程。每种测试都提供了理解发布应用所带来风险的必要信息。负载测试的类型包括:
1. 基线测试验证了系统和其周围环境可在合理的技术参数下运行。性能测试按5到10个用户执行,作为最终用户事务性能的基线。这些测试应该在性能测试的开始和结束时执行,来测量响应时间的绝对改进。
2. 性能测试在环境中模仿负载,并确定系统可以支撑的最佳和最大用户数量。这些测试应该仿效平均和峰值时间的生产用法,他们应当最大限度地仿真用户的真实行为,例如思考时间,调制解调器的仿真,和各种类型的浏览器。同时,采用其它专用的监控和诊断工具,有效地查看系统内部行为,诊断系统衰变和瓶颈。
3. 基准测试被设计来测量和对比理想情况下的各种机器类型,环境,或应用的版本。当系统经过扩展性测试后,执行这些测试可以帮助了解不同体系结构的影响。
4. 渗透测试被设计用于在长时间的负载下检测系统的执行情况。
5. 峰值测试被设计用于模拟系统在峰值负载下运行一段时间来保证应用和其硬件可以在合理的时间段内支持高负载
分析,诊断,和调整
如何确定性能测试的ROI
良好的性能测试的ROI有双重意义:
1. 缓解风险保证项目达到正确的扩展性和性能。缓解风险是标准的性能测试好处。大多数自动化性能测试的用户可以向开发部门或项目团队反馈清晰的,可量化的信息,预测系统在生产环境的扩展和性能情况。
2. 性能最优化以量化方式改善系统的性能,通过测量改进的最终用户响应时间,或者通过减少所需的全面硬件基础设施
如何优化性能
性能测试后的阶段中,提供了很多有利于改善系统性能的有价值信息。
1. 监测性能测试期间的监测显示出基础设施中每一层发生的情况,在性能测试期间提供了数据库服务器,Web服务器,应用服务器,或单独的应用和过程的更加清晰的记录。例如,这些信息可以快速表明应用服务器的CPU使用率在200用户的时候达到100%,而不能达到300用户的目标。这意味着要么需要更多的应用服务器容量要么需要优化应用自身。
2. 分析:在负载测试完成之后,用户可以关联分析—例如创建虚拟用户对抗CPU或应用服务器CPU到Web服务器—来测定应用行为更深一层次的信息。
3. 调整:许多公司在应用部署的前中后期使用压力测试工具来实施自动化性能测试。同时可以采用其它工具允许用户通过修改系统配置设置系统地识别,隔离,和解决基础设施的性能瓶颈。通过反复实施解决基础设施的瓶颈的过程,用户可以建立当前最优的黄金配置。
4. 诊断:当前的技术可以允许,性能工程师在负载条件下对各个层,组件和SQL语句如何影响整个业务过程性能有一个统一的认识。诊断时,性能工程师使用诊断工具可以看到最终用户事务当前涉及到的所有组件。此外,用户也可以看到每一个组件花费的时间和被调用的次数。依靠这些信息,项目和QA经理可以定位到最重要的Web,应用,和数据库服务器瓶颈,集中资源来改善用户体验。它为开发者提供了如此有效的实际数据以至于用户把它称为“性能测试的圣杯。”
良好的性能测试涉及到哪些人?
1. 项目经理
协调多个性能项目,管理测试进度,获得必要的硬件或软件,处理资源和资金问题。
2. 业务分析师
负责从业务的角度对系统性能作出评价和结论。帮助开发性能测试中的混合事务和期望时间。
3. 性能经理
负责协调性能支持团队的工作,作为小组的联系人。负责管理日常性能工作。
4. 性能测试人员
负责创建和执行自动测试和收集测试结果。
5. 应用构造师
接受负载测试的诊断和分析的信息,来最优化应用性能和解决性能问题。
6. 基础设施专家:DBA,网络管理员,系统架构师
接受负载测试调整和分析的信息,来最优化应用性能和解决性能问题。温馨提示如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我。

v2-b637a5264f1a3d1ec429129a9ee37666_b.bmp

微信扫一扫
关注该公众号



推荐阅读
  • TiDB | TiDB在5A级物流企业核心系统的应用与实践
    TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • GAMETECH腾讯云游戏行业技术沙龙成都站圆满落幕
    11月13日,由腾讯云主办、游戏茶馆协办的2020年首场GAME-TECH腾讯云游戏行业技术沙龙在成都圆满落幕。本次沙龙邀请了腾讯云游戏行业解决方案总监宋永周、腾讯云游戏行业高级解决方案架构师曾梓恩、腾讯云游戏行业高级产品架构师郑晓曦、腾讯云游戏行业高级解决方案架构师温球良和天美L1(王者荣耀)服务器技术副总监杨光,为参会同行们带来了干货满满的技术建议。本文介绍了腾讯云游戏云的优势和为不同游戏研运场景提供的服务。腾讯云在中国游戏云服务市场领跑,成为众多游戏开发者的合作伙伴。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 寻求更强大的身份和访问管理(IAM)平台的企业正在转向云,并接受身份即服务(IDaaS)的灵活性。要为IAM选择正确的场外解决方案,业务管理人员和IT专业人员必须在实施之前评估安全 ... [详细]
  • 地产科技战:10+
    作者|肖漫出品|雷锋网产业组一场房地产巨头的求变征战,正悄然开启。近年来,在限价限购、“房住不炒”以及三道红线的调控政策下,房地产企业竞相加快转型升级的步伐。一方面,房地产市场增量 ... [详细]
  • 云计算时代下的传统媒体升级之路
    近年来,随着5G、移动互联网、物联网等技术的发展,加速了各行各业的数字化转型,传统媒体也在新技术的驱动下迎来了升级。在传统媒体到新媒体的转 ... [详细]
  • 云原生SRE
    序言年底了,没有分手的朋友的赶紧分了,所谓新年新气象,年年不重样。去留无意,望看风卷残云。。。运维不会消失,但 ... [详细]
  • 2010年下半年软件评测师试题标准答案阅卷用标准答案,更多答案登录http:www.enpass.cn查看,软考培训权威机构由于发博文的限制,有些图片不能发上来,下载完全版答 ... [详细]
author-avatar
rtsnance
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有