免费智能真题库 > 历年试卷 > 软件评测师 > 2013年下半年 软件评测师 下午试卷 案例
  第2题      
  知识点:   性能测试   CPU   事务   响应时间   性能指标

 
【说明】
某软件公司为某银行设计开发了一套网上银行系统,该系统提供基本的支付、查询、转账和信息修改等功能。银行对网上银行系统提出了初步的性能指标
(1)交易响应时间不超过2s
(2)并发用户数>=1000
(3)CPU利用率不超过80%
(4)系统需要7*24小时不间断的稳定运行
(5)每秒事务数为7
(6)交易成功率为100%
现需要对该软件进行性能测试
 
问题:2.1   常见的性能测试包括负载测试、压力测试、并发性能测试、疲劳强度测试和大数据量测试等。针对题目中所述的6个性能指标,并发性能测试和疲劳强度测试所涉及的指标各有哪些?
 
问题:2.2   性能测试中,针对一个单独的性能指标,往往需要采用多种不同的测试方法。该软件公司需要测试性能指标(1)和(5),设计了如下的测试方案:
测试常规情况下的并发用户数,逐步增加并发用户数,分别测试:
(1)在响应时间为2s时,系统所能承受的最大并发访问用户的数量;
(2)系统在多大的并发访问用户数量下,响应时间不可接受(例如超过2s)。
请指出这两项测试分别属于哪种类型的测试,并分别解释这两种测试类型的基本概念。
 
问题:2.3   在测试性能指标(5)时,该软件公司在客户端模拟大量并发用户来执行业务操作,统计平均的每秒事务数。该软件公司认为客户端接收响应信息与该性能指标的测试无关,因此在模拟客户端上发起正常业务申请,接收系统响应后直接丢弃响应信息,没有进行功能校验。请说明该软件公司的做法正确与否,并简要说明原因以及执行功能校验的副作用。
 
 
 

   知识点讲解    
   · 性能测试    · CPU    · 事务    · 响应时间    · 性能指标
 
       性能测试
        系统的性能是一个很大的概念,覆盖面非常广泛,对一个软件系统而言,包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等,我们这里重点讨论的负载压力是系统性能的一个重要方面。性能测试用来保证产品发布后系统的性能能够满足用户需求。性能测试在软件质量保证中起重要作用。通常情况下存在性能调优与性能评测两种性能测试策略。
 
       CPU
        CPU即中央处理器,它是计算机系统的核心部分。刚才所列的系统性能评价指标都是围绕CPU的。当然,这些指标的评价结果是建立在CPU与其他系统部件(如内存)的协同工作的基础上的。单就CPU而言,考察它在系统中的工作性能要关注CPU利用率、队列长度、每秒中断次数,等。
 
       事务
               概述
               事务(Transaction)是一系列的数据库操作,是数据库应用程序的基本逻辑单位,即应用程序对数据库的操作都应该以事务的方式进行。
               事务是一个操作序列,这些操作“要么都做,要么都不做”,是数据库环境中不可分割的逻辑工作单位。事务和程序是两个不同的概念,一般一个程序可包含多个事务。
               事务通常由数据库操纵语言或其他高级语言(如SQL、CoBOL、C、C++、Java等)书写的用户程序来实现。一个事务由应用程序的一组操作序列组成,它以BEGIN TRANSACTION语句开始,以END TRANSACTION结束语句。
               事务定义的语句如下:
               (1)BEGIN TRANSACTION:事务开始。
               (2)END TRANSACTION:事务结束。
               (3)COMMIT:事务提交。该操作表示事务成功地结束,它将通知事务管理器该事务的所有更新操作现在可以被提交或永久地保留。
               (4)ROLLBACK:事务回滚。该操作表示事务非成功地结束,它将通知事务管理器出故障了,数据库可能处于不一致状态,该事务的所有更新操作必须回滚或撤销。
               典型的例子是银行转账业务。对“从账户A转入账户B金额x元”业务,站在顾客角度来看,转账是一次单独操作;而站在数据库系统的角度它至少是由两个操作组成的,第一步从账户A减去x元,第二步给账户B加上x元。下面是银行转账事务的伪代码:
               
               SQL中事务的开始与结束
               SQL标准规定当一条SQL语句被执行,就隐式地开始了一个事务,SQL中的Commit work和Rollback work语句之一会结束一个事务。
               (1)Commit work:提交当前事务。这意味着将该事务所做的更新在数据库中永久保存。一旦事务被提交后,一个新的事务自动开始。
               (2)Rollback work:回滚当前事务。这意味着将撤销该事务对数据库的更新。这样,数据库恢复到该事务执行第一条语句之前的状态。
               需要注意的是,若事务已执行了Commit work,就不能用Rollback work来撤销。数据库系统能保证在发生诸如某条SQL语句错误、断电、系统崩溃的情况下,若事务还没有执行Commit work,则所造成的影响将被回滚。对断电、系统崩溃的情况,回滚是在系统重新启动时进行。
 
       响应时间
        系统响应时间是指用户发出完整请求到系统完成任务给出响应的时间间隔。处于系统中不同的角色的人,对响应时间的关注点是不一样的。从系统管理员的角度来看,系统响应时间指的是服务器收到请求的时刻开始计时,到服务器完成执行请求,并将请求的信息返回给用户这一段时间的间隔。这个“服务器”包含的范围是给用户提供服务的接口服务器,中间的一些业务处理的服务器和排在最后面的数据库服务器。这里并不包含请求和响应在网络上的通信时间。
        从用户的角度来看,响应时间是用户发出请求开始计时,(如按下“确认”或Enter键的时刻),到用户的请求的相应结果展现在用户机器的屏幕的时候的这一段时间的间隔。这个时间称为“客户端的响应时间”,它等于客户端的请求队列加上服务器的响应时间和网络的响应时间的总和。可以看出,从用户角色感受的“响应时间”是所有响应时间中最长的,很多影响因素不在应用系统的范围内,如数据包在网络上的传输时间、域名解析时间等。
        响应时间超出预期太多的应用系统会导致用户的反感,因为系统在让他们等待,这样会降低他们的工作效率,延长他们的工作时间。位于互联网上的Web网站也存在同样的问题,有调查表明,如果一个Web网页不能在8秒钟内下载到访问的用户端,访问者就会失去耐性,他们有的尝试其他同类型的网站,有的可能访问竞争者的网站,并且可能影响他们圈子里面的人访问这个网站的兴趣和取向。对于一个指望这些访问者变为客户的网站站点而言,响应时间带来的后果等同于销售额的损失。
        系统的响应时间对每个用户来说都是不一样的,以下因素会影响系统的平均响应时间:
        (1)和业务相关,处理不同的业务会有不同的响应时间。
        (2)和业务组合有关,业务之间可能存在依赖关系或其他,也会相互影响。
        (3)和用户的数量有关,大并发量会严重影响应时间。
        有多种方法可以用来测试响应时间,常用的有两种方法,分别是首字节响应时间和末字节响应时间。首字节响应时间是指向服务器发送请求与接收到响应的第一个字节之间的时间,末字节响应时间是指向服务器发送请求与接收到响应的最后一个字节之间的时间。通过测量响应时间,可以知道所有客户端用户完成一笔业务所用的时间以及平均时间、最大时间。
        米勒曾经给出了3个经典的有关响应时间的建议,至今仍有参加价值:
        (1)0.1秒:用户感觉不到任何延迟。
        (2)1秒:用户愿意接受的系统立即响应的时间极限。即当执行一项任务的有效反馈时间在0.1~1秒之内时,用户是愿意接受的。超过此数据值,则意味着用户会感觉到有延迟,但只要不超过10秒,用户还是可以接受的。
        (3)10秒:用户保持注意力执行本次任务的极限,如果超过此数值时仍然得不到有效的反馈,用户会在等待计算机完成当前操作时转向其他的任务。
 
       性能指标
        对于各种类的双绞线,用户所关心的能够代表其特征的性能指标有衰减、近端串扰、阻抗特性、分布电容、直流电阻等。
        (1)衰减(Attenuation)。衰减是沿链路的信号损失度量。衰减与线缆的长度有关系,随着长度的增加,信号衰减也随之增加。衰减用dB作单位,表示源传送端信号到接收端信号强度的比率。又因为衰减随频率而变化,所以应该测量在应用范围内的全部频率上的衰减。
        (2)近端串扰(Near-End Crosstalk Loss,NEXT)。串扰可分为近端串扰和远端串扰(Far-End Crosstalk Loss,FEXT),测试仪主要是测量NEXT,由于存在线路损耗,因此FEXT的量值的影响较小,在三类、五类线缆中可以忽略不计。近端串扰损耗是测量一条UTP链路中从一对线到另一对线的信号耦合。对于UTP链路,NEXT是一个关键的性能指标,也是最难精确测量的一个指标。随着信号频率的增加,其测量难度将加大。NEXT并不表示在近端点所产生的串扰值,只是表示在近端点所测量到的串扰值。这个量值会随电缆长度不同而变,电缆越长,其值变得越小。同时发送端的信号也会衰减,对其他线对的串扰也相对变小。实验证明,只有在40m内测量得到的NEXT是较真实的。如果另一端是远于40m的信息插座,那么它会产生一定程度的串扰,但测试仪可能无法测量到这个串扰值。因此,最好在两个端点都进行NEXT测量。现在的测试仪都配有相应设备,使得在链路一端就能测量出两端的NEXT值。
        (3)直流电阻。直流环路电阻会消耗一部分信号,并将其转变成热量。它是指一对导线电阻的和,11801规格的双绞线的直流电阻不得大于19.2Ω。每对间的差异不能太大(小于0.1Ω),否则表示接触不良,必须检查连接点。
        (4)特性阻抗。与环路直流电阻不同,特性阻抗包括电阻及频率为1~100MHz的电感阻抗及电容阻抗,它与一对电线之间的距离及绝缘体的电气性能有关。各种电缆有不同的特性阻抗,而双绞线电缆则有100Ω、120Ω及150Ω几种(其中,120Ω的线缆在中国不生产)。
        (5)衰减串扰比(Attenuation-to-Crosstalk Ratio,ACR)。在某些频率范围,串扰与衰减量的比例关系是反映电缆性能的另一个重要参数。ACR有时也以信噪比(Signal-Noise Ratio,SNR)表示,它由最差的衰减量与NEXT量值的相减得到的。ACR值越大,表示抗干扰的能力越强。一般系统要求至少大于10dB。
   题号导航      2013年下半年 软件评测师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
 
第2题    在手机中做本题