功能测试 订阅
功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。 展开全文
功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。
信息
外文名
functional test
应用学科
通信科技;运行、维护与管理
用    途
对产品的各功能进行验证
中文名
功能测试
功能测试功能测试
Functional testing(功能测试),也称为behavioral testing(行为测试),根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。功能测试是为了确保程序以期望的方式运行而按功能要求对软件进行的测试,通过对一个系统的所有的特性和功能都进行测试确保符合需求和规范。功能测试也叫黑盒测试或数据驱动测试,只需考虑需要测试的各个功能,不需要考虑整个软件的内部结构及代码.一般从软件产品的界面、架构出发,按照需求编写出来的测试用例,输入数据在预期结果和实际结果之间进行评测,进而提出更加使产品达到用户使用的要求。应用电子技术方面的测试:印刷电路板,又称印制电路板,印刷线路板,常使用英文缩写PCB(Printed circuit board),是重要的电子部件,是电子元件的支撑体,是电子元器件线路连接的提供者。由于它是采用电子印刷技术制作的,故被称为“印刷”电路板。在印制电路板出现之前,电子元件之间的互连都是依靠电线直接连接而组成完整的线路。电路面包板只是作为有效的实验工具而存在,而印刷电路板在电子工业中已经成了占据了绝对统治的地位。20世纪初,人们为了简化电子机器的制作,减少电子零件间的配线,降低制作成本等优点,于是开始钻研以印刷的方式取代配线的方法。三十年间,不断有工程师提出在绝缘的基板上加以金属导体作配线。而最成功的是1925年,美国的Charles Ducas 在绝缘的基板上印刷出线路图案,再以电镀的方式,成功建立导体作配线。[1]直至1936年,奥地利人保罗·爱斯勒(Paul Eisler)在英国发表了箔膜技术,他在一个收音机装置内采用了印刷电路板;而在日本,宫本喜之助以喷附配线法“メタリコン法吹着配线方法(特许119384号)”成功申请专利。而两者中Paul Eisler 的方法与现今的印刷电路板最为相似,这类做法称为减去法,是把不需要的金属除去;而Charles Ducas、宫本喜之助的做法是只加上所需的配线,称为加成法。虽然如此,但因为当时的电子零件发热量大,两者的基板也难以配合使用[1],以致未有正式的实用作,不过也使印刷电路技术更进一步。1941年,美国在滑石上漆上铜膏作配线,以制作近接信管。1943年,美国人将该技术大量使用于军用收音机内。1947年,环氧树脂开始用作制造基板。同时NBS开始研究以印刷电路技术形成线圈、电容器、电阻器等制造技术。1948年,美国正式认可这个发明用于商业用途。自20世纪50年代起,发热量较低的晶体管大量取代了真空管的地位,印刷电路版技术才开始被广泛采用。而当时以蚀刻箔膜技术为主流[1]。1950年,日本使用玻璃基板上以银漆作配线;和以酚醛树脂制的纸质酚醛基板(CCL)上以铜箔作配线。[1]1951年,聚酰亚胺的出现,便树脂的耐热性再进一步,也制造了聚亚酰胺基板。[1]1953年,Motorola开发出电镀贯穿孔法的双面板。这方法也应用到后期的多层电路板上。[1]印刷电路板广泛被使用10年后的60年代,其技术也日益成熟。而自从Motorola的双面板面世,多层印刷电路板开始出现,使配线与基板面积之比更为提高。1960年,V. Dahlgreen以印有电路的金属箔膜贴在热可塑性的塑胶中,造出软性印刷电路板。[1]1961年,美国的Hazeltine Corporation参考了电镀贯穿孔法,制作出多层板。[1]1967年,发表了增层法之一的“Plated-up technology”。[1][3]1969年,FD-R以聚酰亚胺制造了软性印刷电路板。[1]1979年,Pactel发表了增层法之一的“Pactel法”。[1]1984年,NTT开发了薄膜回路的“Copper Polyimide法”。[1]1988年,西门子公司开发了Microwiring Substrate的增层印刷电路板。[1]1990年,IBM开发了“表面增层线路”(Surface Laminar Circuit,SLC)的增层印刷电路板。[1]1995年,松下电器开发了ALⅣH的增层印刷电路板。[1]1996年,东芝开发了B2it的增层印刷电路板。[1]就在众多的增层印刷电路板方案被提出的1990年代末期,增层印刷电路板也正式大量地被实用化。为大型、高密度的印刷电路板装配(PCBA,printed circuit board assembly)发展一个稳健的测试策略是重要的,以保证与设计的符合与功能。除了这些复杂装配的建立与测试之外,单单投入在电子零件中的金钱可能是很高的 - 当一个单元到最后测试时可能达到25,000美元。由于这样的高成本,查找与修理装配的问题是重要的步骤。今天更复杂的装配大约18平方英寸,18层;在顶面和底面有2900多个元件;含有6000个电路节点;有超过20000个焊接点需要测试。在朗讯加速的制造工厂(N. Andover,MA),制造和测试艺术级的PCBA和完整的传送系统。超过5000节点数的装配对我们是一个关注,因为它们已经接近我们现有的在线测试(ICT,in circuit test)设备的资源极限(图一)。我们制造大约800种不同的PCBA或“节点”。在这800种节点中,大约20种在5000~6000个节点范围。可是,这个数迅速增长。新的开发项目要求更加复杂、要有更大的PCBA和更紧密的包装。这些要求挑战我们建造和测试这些单元的能力。更进一步,具有更小元件和更高节点数的更大电路板可能将会继续。例如,正在画电路板图的一个设计,有大约116000个节点、超过5100个元件和超过37800个要求测试或确认的焊接点。这个单元还有BGA在顶面与底面,BGA是紧接着的。使用传统的针床测试这个尺寸和复杂性的板,ICT一种方法是不可能的。在制造工艺,特别是在测试中,不断增加的PCBA复杂性和密度不是一个新的问题。意识到的增加ICT测试夹具内的测试针数量不是要走的方向,我们开始观察可代替的电路确认方法。看到每百万探针不接触的数量,我们发现在5000个节点时,许多发现的错误(少于31)可能是由于探针接触问题而不是实际制造的缺陷(表一)。因此,我们着手将测试针的数量减少,而不是上升。尽管如此,我们制造工艺的品质还是评估到整个PCBA。我们决定使用传统的ICT与X射线分层法相结合是一个可行的解决方案。
收起全文
精华内容
下载资源
问答
  • 然后介绍性能测试  1.性能测试的定义:系能测试时软件测试的高端领域。性能测试包括很多方面。主要有时间性能和空间性能。  时间性能是指软件的一个具体事务的响应时间。比如登陆一个页面。输入用户名和密码后点击...
  • 软件测试中的功能测试和性能测试一首先先说功能测试。1.功能测试的定义:是黑盒测试的一部分。它检查实际软件功能是否符合用户需求。功能测试时主要的测试。2.测试的细分:可以细分为逻辑功能测试,界面测试,易用性...
  • 文章目录系统测试概述功能测试性能测试负载测试压力测试性能测试、压力测试、负载测试的关系兼容性测试安全测试健壮性测试配置测试可用性测试文档测试 系统测试概述 系统测试的定义 将已经集成好的软件系统,作为...

    系统测试概述

    • 系统测试的定义
      • 将已经集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行(使用)环境下, - 对计算机系统进行一系列测试活动。
    • 根本任务
      • 证明被测系统的功能和结构的稳定性;还要有一些非功能测试:性能测试、压力测试、可靠性测试等等。
    • 目的
      • 确保软件产品能够被用户或操作者接受。
    • 系统测试属于黑盒测试范畴,不再对软件的源代码进行分析和测试。
    • 系统测试的组织
      • 系统测试主要是由质量部门的测试工程师来主导工作。
        • 测试组组长:组织测试;
        • 测试分析员:负责设计和实现测试脚本和测试用例;
        • 测试者:负责执行测试脚本中记录的测试用例。
      • 系统测试员和用户
        • 相似的地方
          • 都是使用软件,一般不接触软件的代码
          • 都是假设软件应该正确实现说明书的功能
        • 不同的地方
          • 使用软件的目的
          • 对待错误
    • 系统测试的内容
      • 功能特性的测试:功能测试、用户界面测试、安装/卸载测试、可使用性测试。
      • 非功能特性的测试:性能测试、负载测试、压力测试、疲劳测试、安全测试、恢复测试、兼容性测试、可靠性测试、强度测试、容量测试、配置测试。

    功能测试

    功能测试(Functional Test)是在规定的一段时间内运行软件系统的所有功能,以验证这个软件系统有无严重错误。

    • 目标
      • 检验产品功能是否正确实现
    • 内容
      • 正常功能、异常功能、边界测试、界面测试、接口测试、安全测试、错误处理测试等。
    • 依据
      • 需求规格说明书
    • 方法
      • 黑盒测试
        在这里插入图片描述

    性能测试

    性能测试(Performance Testing)通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

    • 目标
      • 对产品的性能进行测试,检验是否达标、是否能够保持。
    • 工具
      • 在需要大访问量时候尤其需要使用工具。
      • 并发性能测试工具 (load—负载)
        • LoadRunner、 QALoad、 SilkPerformer、 WebLoad
    • 用户视角的软件性能
      • 从用户角度来说,软件性能就是软件对用户操作的响应时间。
    • 系统管理员视角的软件性能
      • 系统的响应时间;
      • 系统运行时服务器的状态,如CPU利用情况、内存使用情况等;
      • 系统是否能够实现扩展;
      • 系统支持多少用户访问;
      • 系统性能可能的瓶颈在哪里;
      • 系统是否支持7*24小时的业务访问。
    • 软件性能指标
      • 并发用户
        • 一给定时间内,某个时刻与服务器同时进行会话操作的用户数。
      • 响应时间
        • 客户端发出请求到得到服务器返回结果的整个过程所经历的时间。
      • 吞吐量
        • 单位时间内系统处理的客户请求的数量
        • 一般来说,吞吐量用请求数/秒或页面数/秒来衡量。
        • 从业务的角度,吞吐量也可以用访问人数/天或处理的业务数/小时等单位来衡量。
        • 从网络的角度来说,也可以用字节数/天等单位来考察网络流量。
      • 资源利用率
        • 指系统资源的使用程度,比如服务器的CPU利用率、内存利用率、磁盘利用率、网络带宽利用率等。
    • 软件性能要素
      • 环境要素
        • 软件、硬件、网络
      • 业务要素
        • 用户数、执行功能、数据量
      • 在使用性能指标描述软件的性能特征时,应该给出明确的软件性能要素,否则,所给出的性能指标无法参考。
    • 性能测试用例的设计:主要是通过改变模拟的业务因素来测试软件的性能。
      • 并发用户数
        • 精算法
          在这里插入图片描述
        • 估算法
          在这里插入图片描述
        • 经验值
          • 对于一些系统,可以通过同类软件系统的用户数据来估算,这种估算可以通过类似系统的日志分析和问卷调查来进行。
      • 吞吐量
      • 基于业务的设计

    负载测试

    • 定义
      • 数据在超负荷环境下运行,测试软件系统是否能够承担。这种超负荷主要指多并发用户。
    • 方法
      • 人为生成大数据量,并利用工具模拟频繁并发访问
    • 工具
      • 一般需要使用自动化工具
    • 考察指标
      • 响应时间、交易容量、资源使用率等

    压力测试

    • 定义
      • 指系统不断施加越来越大的负载(并发,循环操作,多用户,网络流量)的测试。
    • 目标
      • 通过确定一个系统的瓶颈或者不能接收的性能点,来确定系统能提供的最大服务级别的测试。

    性能测试、压力测试、负载测试的关系

    • 性能测试是正常情况下的性能指标;
    • 压力测试是测试系统的瓶颈所在;
    • 负载测试是指系统重负荷性能指标;
    • 性能测试、压力测试、负载测试在广义上讲都是性能测试的内容,建议将三种测试结合起来并行进行。

    兼容性测试

    • 定义
      • 测试软件在一个特定的硬件、软件、操作系统、网络等环境下系统能否正常运行。
    • 目的
      • 检验被测软件对其他应用软件或者其他系统的兼容性。

    安全测试

    • 定义
      • 安全测试检测系统对非法入侵的防范能力。
    • 应用程序级别的安全性测试
    • 数据库安全性测试
    • 系统级别的安全性测试

    健壮性测试

    • 定义
      • 又称为容错测试。主要检查系统容错能力。当系统出错时,能否在指定的时间间隔内修正错误并重启系统。
    • 方法
      • 容错测试首先要通过各种手段让软件系统强制发生故障,然后验证系统能否快速恢复。

    配置测试

    • 定义
      • 配置测试将验证软件与其所依赖硬件环境的依赖程度。
    • 测试中的硬件环境指进行测试所必需的服务器、客户端、网络连接设备,以及打印机、扫描仪等辅助硬件设备所构成的环境。
    • 所有软件都需向用户说明其运行的硬件环境,对于多层结构的软件系统来说,需要分别说明其服务器、客户端以及网络所需的环境。

    可用性测试

    可用性测试是面向用户的系统测试。让一群有代表性的用户尝试对产品进行典型操作,- - 同时观察员和开发人员在一旁观察,聆听,做记录。

    • 系统中是否存在繁琐的功能以及指令;
    • 安装过程是否复杂;
    • 错误信息提示内容是否详细;
    • GUI接口是否标准;
    • 登录是否方便;
    • 需要用户记住内容的多少;
    • 帮助文本是否详细;

    文档测试

    • 定义
      • 文档测试是对系统提交给文档进行验证,它要求检查系统的文档是否齐全。
    • 文档的种类
      • 包括联机帮助文档或用户手册,指南和向导,
      • 安装、设置指南,示例及模板,错误提示信息,
      • 用于演示的图像和声音,
      • 授权/注册登记表及用户许可协议,
      • 软件的包装、广告宣传材料等。
    展开全文
  • 性能测试功能测试

    千次阅读 多人点赞 2019-03-19 15:51:19
    性能测试1、功能测试与性能测试的区别2、如何理解软件性能2.1 系统管理员眼中的软件性能2.2 研发人员眼中的软件性能2.3 测试人员眼中的软件性能3、软件性能的生命周期3.1 需求阶段的性能分析3.2 设计开发阶段的性能...

    1、功能测试与性能测试的区别

    功能测试主要根据产品业务需求、产品行业特征、模拟用户操作方式来测试一个产品的特性以确定它们是否满足用户需求。

    性能测试则是通过某种特定的方式对被测系统按照一定的测试策略进行施压,获取该系统的响应时间、运行 效率。资源利用情况等各项性能指标,来评价系统是否满足用户性能需求的过程。

    通俗的说,功能测试用于确保软件系统做了正确的事情,性能测试则用于确保软件系统快速地完成任务。

    2、如何理解软件性能

    2.1 系统管理员眼中的软件性能

    系统管理员作为系统软件的管理者,主要关注服务器的资源使用情况、系统的可扩展性、系统的最大支持用户量、系统的稳定性,以及系统可能出现的瓶颈、出现异常的情况下如何处理

    2.2 研发人员眼中的软件性能

    作为研发人员,主要关注软件系统架构的合理性、数据库的设计是否存在问题、代码是否存在 性能方面的问题、内存使用方式是否正确、线程同步方式是否合理、是否存在不合理的资源竞争。

    2.3 测试人员眼中的软件性能

    测试人员是质量的把关者,在软件性能生命周期中占据至关重要的位置,软件性能测试工程师要对性能问题进行监控、分析及模拟实际使用过程中所出现的性能问题。还要跟各个角色做好沟通工作,对测试出的各种性能问题,要提供充分有力的数据,为后续的分析和定位性能问题、性能优化工作做好充分准备。

    3、软件性能的生命周期

    3.1 需求阶段的性能分析

    在软件开发前期的需求分析阶段,需求分析师与客户业务人员沟通时,要明确提出各项性能指标,包括系统业务交易的使用频度、系统并发用户数、业务数据量评估等各项指标。然后对系统的响应时间用户数资源使用进行分析。

    3.2 设计开发阶段的性能分析与验证

    在设计阶段需要根据需求分析及设计规划,进行系统的规模分析和完整的性能分析,预估性能瓶颈点,提出解决方案,最后架构师。程序设计人员等角色进行评审验证并确认,保障性能目标的达成。

    在开发阶段,需要根据设计方案,关注性能瓶颈点,进行相应的白盒测试,通过代码分析和评审的手段,确认性能瓶颈并解决,需要不断地分析和总结性能问题和解决方案,形成性能方面的代码编写规范,从而在研发阶段的早期就能确保把软件系统在性能方面的风险降到最低。

    3.3 系统测试阶段的性能验证和分析

    性能测试大致可分为单元性能测试、集成性能测试、系统性能测试、多套系统互联接口性能测试等。其中,系统性能测试是最常用、最为测试人员所熟悉的一种性能测试

    系统性能测试阶段过程:在系统功能被确认后,模拟真实生产环境进行软件系统的部署(包括硬件设备、操作系统、网络搭建、负载均衡部署、中间件部署、数据库部署等),然后根据前期的性能测试需求分析结果及测试策略定义的方法,模拟一定量的虚拟并发用户数,进行压力测试,同时监控分析系统是否满足预期的性能指标,识别性能可能出现的瓶颈点(应用代码、网络设备、硬件设备、操作系统、中间件配置、数据库等),并进行性能优化处理。调优后再进行复测,确保软件系统最终达到性能要求。

    4、软件性能的影响因素

    硬件设备、网络、操作系统、并发用户数、系统积累的数据量、中间件等

    5、软件性能目标

    在一定时间范围内尽可能的寻求软件缺陷,并提交给开发人员进行修复,最终及时给客户提供高质量的软件产品

    6、性能测试流程

    性能测试流程

    6.1 性能需求调研

    当接到一个性能需求测试项目,首先要对被测系统进行全方位的性能需求调研工作,分析该系统是什么行业的软件系统,采用哪种体系结构进行设计和开发,业务类型主要是交易业务还是查询业务,采用哪种开发规范,客户端与系统服务器交互是采用何种通信协议,业务逻辑层的应用是采用哪种类型的中间件来处理业务,数据库是哪种数据库,用什么类型的机器,被测系统的各项性能要求和性能指标等。这些都是性能测试前期需要调研了解清楚的

    6.2 性能测试需求分析

    6.2.1 环境配置性能需求

    应用配置需求:应用的整体框架、涉及的第三方组件,应用层与数据库层的接口,使用了什么数据库等
    系统配置需求:用户客户端配置、客户端与服务器的网络配置、应用服务器或数据库服务器的配置、操作系统等。

    6.2.2 服务器性能指标要求

    预期在上线系统服务器资源使用情况、吞吐量、软件运行情况等。

    6.2.3 系统设计需求

    系统架构、系统的技术实现、与其他系统接口关系及其技术实现、本系统测试数据及其相关系统测试数据的关系

    6.2.4 工作负载需求

    用户使用情况需求:例如用户分布情况,哪些模块用户使用比较频繁,用户操作的数据有哪些特点等。这些需求需要具体细分到系统的功能模块、功能点这个层面

    6.2.5 客户端性能指标要求

    请求响应时间分布、请求的准确率等

    7、术语

    1. 响应时间

    响应时间=“客户端呈现数据时间‘’+网络传输时间+系统响应时间
    响应时间受网络带宽、用户数、提交事务请求数和事务类型等的影响。

    2. 并发用户数

    指多个用户同时进行某一个业务交易的动作行为

    3. 吞吐量

    指单位时间内系统处理的客户请求数量。吞吐量是用来测量系统完成的工作量。

    4. TPS(Transaction Second)

    即每秒系统能够处理的交易或事务数量。它是衡量系统处理能力的重要指标。

    5. 点击率
    点击率即每秒用户向服务器提交的HTTP请求数。这个指标是Web应用特有的一个指标。

    8、“不成文”的性能需求定义

    1. 0.1-0.2s:用户认为得到的是即时的响应;
    2. 1-5s :用户能感觉到与信息的互动是基本畅通的。用户注意到了延迟,但是能感觉到计算机是按照指令正在“工作”中;
    3. 8s以上:用户会关注对话框。需要带有任务完成百分比的进度条或其他提示信息,在这长的等待时间后,用户的思维可能需要一定的时间来返回并继续刚才的任务,重新熟悉和适应任务,因此工作效率受到了影响;

    调查表明:

    • 在5秒内响应并呈现给用户的页面,用户会认为是最好的响应速度;
    • 6~10秒,用户会认为是一般的响应速度;
    • 超过10秒,用户会认为是差的响应速度
    展开全文
  • 1、功能测试 根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。 功能测试又称为黑盒测试,是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品...

    1、功能测试

    根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。

    功能测试又称为黑盒测试,是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。

    黑盒测试试图发现以下类型的错误:

    (1)功能错误或遗漏

    (2)界面错误

    (3)数据结构或外部数据库访问错误

    (4)性能错误

    (5)初始化和终止错误

    用例设计方法

    (1)等价类划分方法

    (2)边界值分析方法

    (3)错误推测方法

    (4)因果图方法

    (5)判定表驱动分析方法

    (6)正交实验设计方法

    (7)功能图分析方法

    2、性能测试:

    性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。

    通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。

    压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

    性能测试目的:验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。

    包括以下几个方面

    1.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。

    2.识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。

    3.系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。

    检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。

    4.验证稳定性(resilience)可靠性(reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。

    性能测试类型包括:负载测试(指标变化),压力测试(性能点),强度测试,容量测试,基准测试,渗入测试,峰谷测试

    性能测试概括为三个方面:

    • 应用在客户端性能的测试:负载测试和压力测试
    • 应用在网络上性能的测试:
    • 应用在服务器端性能的测试:

    Avg Rps: 平均每秒钟响应次数=总请求时间 / 秒数;

    Avg time to last byte per terstion (mstes):平均每秒业务脚本的迭代次数,有人会把这两者混淆;

    Successful Rounds:成功的请求;

    Failed Rounds :失败的请求;

    Successful Hits :成功的点击次数;

    Failed Hits :失败的点击次数;

    Hits Per Second :每秒点击次数;

    Successful Hits Per Second :每秒成功的点击次数;

    Failed Hits Per Second :每秒失败的点击次数;

    Attempted Connections :尝试链接数;

    我们知道软件架构在实际测试中制约着测试策略和工具的选择。如何选择性能测试策略是我们在实际工作中需要了解的。一般软件可以按照系统架构分成几种类型:

    c/s

    client/Server 客户端/服务器架构

    基于客户端/服务器的三层架构

    基于客户端/服务器的分布式架构

    b/s

    基于浏览器/Web服务器的三层架构

    基于中间件应用服务器的三层架构l

    基于Web服务器和中间件的多层架构l

    由于工程和项目的不同,所选用的度量,评估方法也有不同之处。不过仍然有一些通用的步骤帮助我们完成一个性能测试项目。

    步骤如下:

    1. 制定目标和分析系统

    2. 选择测试度量的方法

    3. 学习的相关技术和工具

    4. 制定评估标准

    5. 设计测试用例

    6. 运行测试用例

    7. 分析测试结果

    具体:通过量、响应时间、CPU负载、内存使用

    工具:QALoad、LoadRunner、Benchmark Factory、Webstress

    过程:测试需求与测试内容,测试案例制定,测试环境准备,测试脚本录制、编写与调试,脚本分配、回放配置性能测试图像,性能测试图像与加载策略,测试执行跟踪,结果分析与定位问题所在,测试报告与测试评估。

    原则:

    1)情况许可时,应使用几种测试工具或手段分别独立进行测试,并将结果相互印证,避免单一工具或测试手段自身缺陷影响结果的准确性;

    2)对于不同的系统,性能关注点是有所区别的,应该具体问题具体分析;

    3)查找瓶颈的过程应由易到难逐步排查:

    服务器硬件瓶颈及网络瓶颈(局域网环境下可以不考虑网络因素)

    应用服务器及中间件操作系统瓶颈(数据库、WEB服务器等参数配置)

    应用业务瓶颈(SQL语句、数据库设计、业务逻辑、算法、数据等)

    4)性能调优过程中不宜对系统的各种参数进行随意的改动,应该以用户配置手册中相关参数设置为基础,逐步根据实际现场环境进行优化,一次只对某个领域进行性能调优(例如对CPU的使用情况进行分析),并且每次只改动一个设置,避免相关因素互相干扰;

    5)调优过程中应仔细进行记录,保留每一步的操作内容及结果,以便比较分析;

    6)性能调优是一个经验性的工作,需要多思考、分析、交流和积累;

    7)了解“有限的资源,无限的需求”;

    8)尽可能在开始前明确调优工作的终止标准。

    3、自动化测试

    自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。

    前提条件

    实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试。通常需要同时满足以下条件:

    1. 需求变动不频繁

    测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。

    项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。

    1. 项目周期足够长

    自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成,这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便成为笑谈。

    1. 自动化测试脚本可重复使用

    如果费尽心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,致使其间所耗费的成本大于所创造的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正可产生效益的测试手段了。

    另外,在手工测试无法完成,需要投入大量时间与人力时也需要考虑引入自动化测试。比如性能测试、配置测试、大数据量输入测试等。

    适用场合

    通常适合于软件测试自动化的场合:

    (1)回归测试,重复单一的数据录入或是击键等测试操作造成了不必要的时间浪费和人力浪费;

    (2)此外测试人员对程序的理解和对设计文档的验证通常也要借助于测试自动化工具;

    (3)采用自动化测试工具有利于测试报告文档的生成和版本的连贯性;

    (4)自动化工具能够确定测试用例的覆盖路径,确定测试用例集对程序逻辑流程和控制流程的覆盖。

    工具介绍:

    QTP:创建测试、插入检查点、检验数据、增强测试、运行测试、分析结果和维护测试等方面。(回归测试)

    WinRunner:企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作。

    QA Run:通过鼠标移动、键盘点击操作被测应用,继而得到相应的测试脚本,对该脚本可以进行编辑和调试。

    AutoRunner:功能测试、回归测试。

    手机自动化测试:Monkey,Monkeyrunner,Appium(常用)

    过程

    自动化测试与软件开发过程从本质上来讲是一样的,无非是利用自动化测试工具(相当于软件开发工具),经过对测试需求的分析(软件过程中的需求分析),设计出自动化测试用例(软件过程中的需求规格),从而搭建自动化测试的框架(软件过程中的概要设计),设计与编写自动化脚本(详细设计与编码),测试脚本的正确性,从而完成该套测试脚本(即主要功能为测试的应用软件)。

    1) 自动化测试需求分析。

    当测试项目满足了自动化的前提条件,并确定在该项目中需要使用自动化测试时,我们便开始进行自动化测试需求分析。此过程需要确定自动化测试的范围以及相应的测试用例、测试数据,并形成详细的文档,以便于自动化测试框架的建立。

    2)自动化测试框架的搭建。

    所谓自动化测试框架便是像软件架构一般,定义了在使用该套脚本时需要调用哪些文件、结构,调用的过程,以及文件结构如何划分。

    而根据自动化测试用例,我们很容易能够定位出自动化测试框架的典型要素:

    a. 公用的对象。

    不同的测试用例会有一些相同的对象被重复使用,比如窗口、按钮、页面等。这些公用的对象可被抽取出来,在编写脚本时随时调用。当这些对象的属性因为需求的变更而改变时,只需要修改该对象属性即可,而无需修改所有相关的测试脚本。

    b. 公用的环境。

    各测试用例也会用到相同的测试环境,将该测试环境独立封装,在各个测试用例中灵活调用,也能增强脚本的可维护性。

    c. 公用的方法。

    当测试工具没有需要的方法时,而该方法又会被经常使用,我们便需要自己编写该方法,以方便脚本的调用。

    d. 测试数据。

    也许一个测试用例需要执行很多个测试数据,我们便可将测试数据放在一个独立的文件中,由测试脚本执行到该用例时读取数据文件,从而达到数据覆盖的目的。

    在该框架中需要将这些典型要素考虑进去,在测试用例中抽取出公用的元素放入已定义的文件,设定好调用的过程。

    4、性能和自动化的区别

    常常有刚接触自动化和性能测试的同学问我,感觉性能测试和自动化测试是差不多的,我自己刚接触的时候认为也是差不多的,区别就是:自动化一个用户再跑,性能测试需要并发,需要设计各种场景。慢慢的做的多了,发现两者区别还是挺大的。

    共同点:

    接口的自动化测试和性能测试在处理脚本的方式上差不多,特别是使用JMeter、LR 这些工具测试的时候,例如测http协议的请求,只需模拟发送get或post方式的请求,接口脚本很容易转成性能测试脚本。但对于Web应用来说,自动化测试和接口测试就大相径庭了。

    下面说下具体的差异吧。

    差异:

    1、测试角度不同

    自动化测试和性能测试的出发点不一样,也就是最终的目的不一样。自动化测试是基于功能测试,案例也是来自功能测试,通常用做回归测试,其实测的是业务,是功能。

    性能测试考虑单个接口的性能,有时候不会太考虑整体的业务通不通,只需考虑需要压测接口的性能表现,比如处理的tps、平均响应时间、支持的并发用户数。当然性能测试也会关注整个流程的测试。

    比如有个做性能测试的小伙伴去做接口测试,就某一个产品的下单操作来说,做接口测试是为了查看下单这个功能是不是正常,他写的接口测试脚本跟性能测试脚本一样,只有一个下单的接口,下单之前一些商品的查询,账户的查询都没有做,这在业务上是不连贯的。

    2、使用框架不同

    如果说接口的自动化测试和性能测试在脚本处理上有些相同,就Web测试来说,二者就大相径庭了。首先使用的框架就不一样,Web自动化测试使用的是Selenium Webdriver,模拟的是点击页面的元素,性能测试还是录脚本、发请求。一个主要是关注页面元素,后端做了些什么完全是黑盒;一个需要关注发的请求有哪些,是post还是get,传的参数是什么,后端的一些知识还是要了解下,有点像灰盒。

    3、要掌握的技能不同

    自动化测试偏重开发,对开发语言要求相对高些,如果只是配置现成的框架做自动化测试,那要求并不高。性能测试要了解的知识很多,脚本语言(C或者java等等)、操作系统(Linux,常用的监控命令,出问题时分析线程)、数据库(查询语句、表的关联、索引、Oracle的AWR 报表);如果是高级的性能测试,那还要懂架构方面的知识。

    总的来说,自动化测试偏向于开发,但要有测试的思维;性能测试要懂的知识点很多,真正高级的性能测试也跟开发架构师的水平差不多了。

    展开全文
  • 功能测试之性能测试基础

    万次阅读 2019-12-22 20:38:54
    一、性能测试的含义 1.什么是性能测试 测试软件的性能表现,考量软件运行的如何。 √     一般关注时间/效率、资源占用等情况。 √     既要马儿快点跑,又要马...

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!

    一、性能测试的含义

    1.什么是性能测试

    • 测试软件的性能表现,考量软件运行的如何。
      √     一般关注时间/效率、资源占用等情况。
      √     既要马儿快点跑,又要马儿少吃草。

    举例:QQ聊天

    • 功能方面
      功能缺陷:点击发送消息,信息没有发送过去
    • 性能方面
      时间/效率:点击发送消息,3分钟后对方才收到
      资源占用:点击发送消息,电脑卡死,鼠标动不了CPU达到百分之99内存占满

    2.什么时候进行性能测试

    • 已通过系统测试,功能比较稳定。

    3.谁关注性能

    • 用户
      √     用户体会到的性能是软件对用户操作的响应时间,是用户从提交或输入一个 url 地址到系统将全部数据呈现出来的时间。

    • 系统管理员和性能测试工程师
      √     除与用户的视角一样外,还关注与系统状态相关的信息,如系统资源的使用情况,包括 CPU 的使用、内存的使用情况、磁盘 I/O、数据交互等。
      √     还关注硬件资源的可扩展性即规划性能部分,如系统支持 100 个用户并发没问题,支持 200 个呢?

    • 软件开发工程师
      √     关注以上所有问题,还关注内存泄露、数据库是否死锁、中间件以及和应用程序服务器等问题。

    二、性能测试术语

    1.请求

    客户端向服务器发出的请求获得数据或文件、图片等资源。

    2.响应

    服务器向客户端发送数据或文件、图片等资源。

    3.协议

    • 传输层协议
      √     tcp、udp

    • 应用层协议
      √     ftp、http、dns、dhcp、smtp、pop

    4.响应时间

    • 应用系统从用户发出请求开始,到客户端接收到所有数据所消耗的时间。
    • 网页响应时间细分
      √     网络传输时间:N1+N2+N3+N4。
      √     应用服务器处理数据:A1+A3。
      √     数据库处理时间:A2。
      在这里插入图片描述

    5.在线用户

    正在使用软件的用户。

    6.并发用户

    • 指同一时刻与服务器进行数据交互的所有用户数量。(如登录丶下单等,浏览可不算)
      √     在线用户未必是并发用户。
    • 计算并发用户数
      √     一般都根据以往经验和行业标准进行估算。
             ✰     如电信业并发用户数常为在线用户的万分之一;
             ✰     OA 软件并发用户数一般在在线用户数的 5%-20%。
      √     参考其他同类产品。
      √     分析历史数据(一年或半年内的每天需要处理的交易业务量)。
      √     试上线运行。

    7.虚拟用户

    性能测试工具使用虚拟用户模拟真实用户的行为。

    8.吞吐量与吞吐率

    • 吞吐量
      √     指一段时间内服务器处理的字节数,直接体现服务器的承载能力。
      在这里插入图片描述
      √     从吞吐量和 VU 关联图可看出,吞吐量在 VU 增长到一定数量时,软件系统出现性能瓶颈,此时吞吐量不再随 VU 增多而增大,而是趋于平衡。
      √     实际测试时,吞吐量在测试前是不知道的,必须通过不断添加虚拟用户来测试,以找到吞吐量的拐点,即吞吐量的最大值。

    • 吞吐率(Throughout)
      √     指单位时间内从服务器返回的字节数,即吞吐量/测试时间,也可以是单位时间内处理的客户请求数。
      √     它是衡量网络性能一个重要指标。通常情况下吞吐量越大,吞吐率的值也越大,吞吐率越大表示系统的负载能力越强。

    9.每秒事务数(TPS,Transaction Per Second)

    • 表示每秒系统处理的事务数,是衡量系统处理能力的重要指标。
    • 如果每个事务对应一笔业务,那么 TPS 即表示服务器每秒处理的业务笔数。

    10.点击率(Hit Per Second)

    • 指每秒钟用户向服务器提交的 HTTP 请求的数量。
    • 点击一次可能会向服务器发出多个 HTTP 请求。
      √     通常服务器都具有防刷新机制,以防刷新导致的巨大压力。
    • 点击率仅仅反映客户端提交的请求数,不能表现服务器当前承受的压力,因为服务器不能处理全部请求时可以拒绝客户端的部分请求。
    • 若把每次点击作为一次提交事务来对待,则点击率与 TPS 同义。

    11.思考时间(Think Time)

    • 也称"休眠时间"、等待时间。
    • 指用户在进行操作时,每个请求之间的时间间隔。
    • 负载测试一般忽略思考时间,压力或可靠性测试根基实际情况设置一个思考时间。通常思考时间设置为 3-5s。

    12.资源利用率

    • 资源利用率
      √     指服务器系统中不同硬件资源被占用的程度,主要包括 CPU 利用率、内存利用率、磁盘利用率、网络等。
      √     性能测试中常用资源利用率进行横向对比,如 CPU 使用率很高,而其他资源较低,可知 CPU 是系统瓶颈。
      √     配置调优测试中,通过比较配置调优前后的系统资源利用率来判断调优效果。

    • 性能计数器(Counter)
      √     是描述服务器或操作系统性能的一些数据指标。主要是通过添加计数器来观察系统资源的使用情况。
      √     计数器在性能测试中发挥着“监控和分析”的关键作用,尤其是分析系统可扩展性和定位性能瓶颈时。
      √     性能测试中分析测试结果时,必须基于多个不同的计数器进行分析。

    三、性能测试分类

    1.负载测试(Load Testing)

    • 通过对被测试系统不断的加压,直到超过预定的指标或者部分资源已经达到了一种饱和状态不能再加压为止。
    • 此方法主要是为了寻找系统最大的负载能力,为性能调优提供依据。

    2.压力测试(Stress Testing)

    • 当系统已经达到一定的饱和程度(如 CPU、磁盘等已经处于一种饱和状态)时,测试系统处理业务的能力,测试系统是否会出现崩溃等。

    • 一般通过模拟负载等方法,使系统资源达到一个较高水平。

    • 此方法一般用于系统稳定性测试。

    3.并发测试(Concurrency Testing)

    • 通过模拟用户并发访问,测试多用户同时访问同一应用、模块或数据,观察系统是否存在死锁、系统处理速度明显下降等性能问题。

    4.容量测试(Volume Testing)

    • 寻找软件系统某项指标的极限值(如最大并发用户数、数据库记录数、最大负载、工作量等)的测试,是一种测试目标。

    5.可靠性测试(Reliability Testing)

    • 或称稳定性测试,健壮性测试。
    • 当系统在一定的业务压力下,让系统持续运行一段时间,观察系统是否达到要求的稳定性。
    • 可靠性测试一般必须给出一个明确的要求,如系统能够持续无故障运行多少天。
    • 是一种测试目标。

    6.配置测试(Configuration Testing)

    • 配置测试
      √     通过调整系统软/硬件环境,了解不同环境对系统性能的影响,从而找到系统的最优配置。
      √     此方法一般用于系统调优和规划。

    • 基准测试
      √     在一定的软硬件及网络环境下,模拟一定数量的虚拟用户运行一种或多种业务,将测试结果作为基线数据,在系统调优或系统评测过程中,通过运行相同的业务场景来比较测试结果确定调优是否达到效果或为系统的选择提供决策依据。

    四、性能测试流程

    性能测试过程分为四个阶段:测试设计、构建、执行、分析。

    1.设计阶段

    定义待测试的业务流程、业务的平均处理量、业务处理量的最高峰值、组合业务流程、系统的整体用户和响应时间目标。

    2.构建阶段

    • 设计设置和配置测试系统及基础设施、使用自动化性能测试解决方案构建测试脚本和负载方案。

    • 具体包括:编写脚本、增强脚本、设计场景。

    3.执行阶段

    包括运行负载方案和测量系统性能,对系统资源进行监控。

    4.分析、诊断和调节阶段

    主要测量系统性能并使负载测试进入下一级别,重点查找问题原因以帮助开发工程师迅速解决问题,并实时调节系统参数以提高性能。

    五、主流性能测试工具

    在这里插入图片描述

    展开全文
  • 性能测试方面 简述性能测试流程? 1.分析性能需求。 2.制定性能测试计划。 3.编写测试用例 4.搭建测试环境,准备好测试数据 5.编写性能测试脚本 6.性能测试脚本调优。 7.设计测试场景。 8.分析测试结果。 9.回归性能...
  • 此文档是收录了一些软件测试中用到的一些实例问题收集,内容颇为丰富,可供学着学习使用。
  • 1、功能测试 根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。 功能测试又称为黑盒测试,是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品...
  • fabric 性能测试报告

    2018-05-24 10:33:33
    fabric 性能测试报告 fabric 性能测试报告 fabric 性能测试报告 fabric 性能测试报告
  • 软件测试是一个广义的概念,他包括了多领域的测试内容,比如,很多新手可能都听说:功能测试,接口测试,自动化测试,压力测试,性能测试,渗透测试,安全测试等,这些专业名词,但是绝大多数人都对这些名词一知半解...
  • Jmeter的性能测试

    2021-02-24 17:59:54
    由定义可知性能关注的是软件的非功能特性,所以一般来说性能测试介入的时机是在功能测试完成之后。在系统基础功能测试验证完成、系统趋于稳定的情况下,才会进行性能测试,否则性能测试是无意义的。另外,由定义中的...
  • 什么是功能测试什么是性能测试两者之间的区别 什么是功能测试 功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需...
  • 自动化测试 ...性能测试 测试覆盖: 并发数(逐步加压) 吞吐量、tps 出错率 安全性测试 测试覆盖 敏感数据加密 恶意攻击等 REST API测试步骤 了解接口格式 编写测试用例 测试用例评审 开...
  • 1、功能测试。 Functional testing(功能测试),也称为behavioral testing(行为测试),根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。 1>又名:黑盒测试或数据...
  • 软件软件功能性能测试经验谈软件测试可以说,谁掌握了功能测试和性能测试的精髓,谁就能在测试外包市场中占据技术制高点。本文正是为这类软件服务型企业出谋划策、提供测试技术决策参考。虽然功能测试是绝大多数...
  • 自动化测试的意义: 缩短软件开发测试周期,可以让产品更快投放市场 测试效率高,充分利用硬件资源 节省人力资源,降低测试成本 增强测试的稳定性和可靠性 提高软件测试的准确度和精确度,增加软件信任度 软件测试...
  • JMeter性能测试,完整入门篇

    万次阅读 多人点赞 2018-06-20 08:42:04
    原文转自:https://blog.csdn.net/lovesoo/article/details/78579547Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具...
  • 功能测试与性能测试的区别

    千次阅读 2017-03-29 11:08:00
    功能测试:在测试工作中占的比例最大,功能测试也叫黑盒测试。...性能测试:是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性...
  • 全栈性能测试修炼宝典 JMeter实战 pdf

    热门讨论 2017-09-08 14:21:12
    全栈性能测试修炼宝典 JMeter实战 pdf 全栈性能测试修炼宝典这本书用十分简单的语言为大家讲述了性能测试中的各项问题,为你带来软件测试详细内容讲解,csdn安全下载 作者: 陈志勇 / 马利伟 / 万龙 出版社: 人民...
  • 上传是每个系统非常常见的功能,但是多半时候开发、测试容易忽略很多细节,测试虽不可穷尽,但前人踩过的坑、我们踩过的坑,坚决不能再出第二次。看到一篇博客考虑的很全面,拿来主义了,感谢博主。 测试用例参考:...
  • 性能测试常见面试问题

    千次阅读 2020-03-19 11:12:24
    1)什么是性能测试? 答案:系统在一定的压力情况下,查看cpu,内存,磁盘,网络带宽,TPS、响应时间、并发用户数、等各项指标,通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求...
  • 软件测试-16个推荐的性能测试工具

    千次阅读 2020-03-27 11:35:45
    十六个推荐的性能测试工具 在软件测试日常工作中,大家接触得比较多的性能测试工具有LoadRunner和Jmeter,这里整理了web应用程序性能和负载压力能力的最广泛使用的性能测试工具的综合列表。 这些负载测试工具将确保...
  • 功能测试和性能测试

    2008-08-07 09:28:50
    用图形介绍功能测试和性能测试
  • SoapUI功能测试、性能测试入门

    千次阅读 2017-07-26 20:34:13
    HTTP接口的功能测试: 1、新建工程:右击左侧导航面板中的工作空间节点“Project”,选择“NewProject” 选择“Create project from”,点击“OK” 输入工程名称,点击“OK” 2、新建TestSuite:右击工程名,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,970,463
精华内容 1,188,185
关键字:

功能测试