发布新日志

  • 理解性能 ——《LoadRunner 没有告诉你的》之四

    2007-05-16 11:38:41

    本文是《LoadRunner没有告诉你的》系列文章的第四篇,在这篇短文中,我将尽可能用简洁清晰的文字写下我对“性能”的看法,并澄清几个容易混淆的概念,帮助大家更好的理解“性能”的含义。
    如何评价性能的优劣: 用户视角 vs. 系统视角
    对于最终用户(End-User)来说,评价系统的性能好坏只有一个字——“快”。最终用户并不需要关心系统当前的状态——即使系统这时正在处理着成千上万的请求,对于用户来说,由他所发出的这个请求是他唯一需要关心的,系统对用户请求的响应速度决定了用户对系统性能的评价。
    而对于系统的运营商和开发商来说,期望的是能够让尽可能多的用户在任意时刻都拥有最好的体验,这就要确保系统能够在同一时间内处理更多的用户请求。正如在《理发店模型》一文中所描述的:系统的负载(并发用户数)与吞吐量(每秒事务数)、响应时间以及资源利用率(包括软硬件资源)之间存在着一个“此消彼长”的关系。因此,从系统的运营商和开发商的角度来看,所谓的“性能”是一个整体的概念,是系统的负载与吞吐量、可接受的响应时间以及资源利用率之间的平衡。
    换句话说,“好的性能”意味着更大的最佳并发用户数(The Optimum Number of Concurrent Users)和 最大并发用户数(The Maximum Number of Concurrent Users)。有关“最佳/最大并发用户数”的概念请参见《理发店模型》一文。
    另外,从系统的视角来看,所需要关注的还包括三个与“性能”有关的属性:可靠性(Reliability),可伸缩性(Scalability)和 可恢复性(Recoverability)——我将会在本系列文章的第五篇“无处不在的性能测试”中专门讨论这三个属性的含义和相关的实践经验。
     
    响应时间


    上面这张图引自段念兄的一份讲义,不过我略作了些修改。从图中我们可以清楚的看到一个请求的响应时间是由几部分时间组成的,包括
    C1:用户请求发出前在客户端需要完成的预处理所需要的时间;
    C2:客户端收到服务器返回的响应后,对数据进行处理并呈现所需要的时间;
    A1:Web/App Server 对请求进行处理所需要的时间;
    A2:DB Server 对请求进行处理所需的时间;
    A3:Web/App Server 对 DB Server 返回的结果进行处理所需的时间;
    N1:请求由客户端发出并达到Web/App Server 所需要的时间;
    N2:如果需要进行数据库相关的操作,由Web/App Server 将请求发送至DB Server 所需要的时间;
    N3:DB Server 完成处理并将结果返回Web/App Server 所需的时间;
    N4:Web/App Server 完成处理并将结果返回给客户端所需的时间;
    从用户的角度来看,响应时间=(C1+C2)+(A1+A2+A3)+(N1+N2+N3+N4);但是从系统的角度来看,响应时间只包括(A1+A2+A3)+(N1+N2+N3+N4)。
    在理解了响应时间的组成之后,可以帮助我们通过对响应时间的分析来更好的识别和定位系统的性能瓶颈。
     
    吞吐量 vs. 吞吐量
    在不同的测试工具中,对于吞吐量(Throughput)会有不同的解释。例如,在LoadRunner中,这个指标是以字节数为单位来衡量网络吞吐量的,而在JMeter中则是以事务数/秒为单位来衡量系统的响应能力的。不过在大多数英文的性能测试方面的书籍或资料中,吞吐量的定义使用的是后者。
     
    并发用户数 ≠ 每秒请求数
    这是两个容易让初学者混淆的概念。
    简单说,当你在性能测试工具或者脚本中设置了100并发用户数后,并不能期望着一定会有每秒100个请求发给服务器。事实上,对于一个虚拟用户来说,每秒发出多少请求只跟服务器返回响应的速度有关。如果虚拟用户在0.5秒内就收到了响应,那么它会立即发出第二个请求;而如果要一直等待3秒才能得到响应,它将会一直等到收到响应后才发出第二个请求。也就是说,并发用户数的设置只是保证服务器在任一时刻都有100个请求需要处理,而并不一定是保证每秒中发送100个请求给服务器。
    所以,只有当响应时间恰好是1秒时,并发用户数才会等于每秒请求数;否则,每秒请求数可能大于并发用户数或小于并发用户数。

    引自:http://www.51testing.com/?action_viewnews_itemid_10565.html

  • 理发店模型 ——《LoadRunner 没有告诉你的》之三

    2007-05-16 11:37:20

     大概在一年前的一次讨论中,我的好友陈华第一次提到了这个模型的最初版本,经过几次讨论后,我们发现经过完善和扩展的“理发店模型”可以用来帮助我们理解很多性能测试的概念和理论,以及一些测试中遇到的问题。在最近的一次讨论后,我决定撰写一篇文章来专门讲述一下这个模型,希望可以帮助大家更好的理解性能测试有关的知识。

        不过,在这篇文章中,我将会尽量的只描述模型本身以及相关的一些扩展,而具体如何将这个模型完全同性能测试关联起来,我不会全部说破,留下足够的空间让大家继续思考和总结,最好也一起来对这个模型做进一步的完善和扩展^_^ 我相信,当大家在思考的过程中有所收获并有所突破时,那种快感和收获的喜悦才真的是让人倍感振奋而且终生难忘的 ^_^

        当然,我要说明的是,这个模型仅仅是1个模型,它与大家实际工作中遇到的各式各样的情况未必都可以一一对应,但是大的方向和趋势应该是一致的。 

        相信大家都进过或见过理发店,一间或大或小的铺面,1个或几个理发师,几张理发用的椅子和供顾客等待的长条板凳。

     

    在我们的这个理发店中,我们事先做了如下的假设:

     

    1. 理发店共有3名理发师;

    2. 每位理发师剪一个发的时间都是1小时;

    3. 我们顾客们都是很有时间观念的人而且非常挑剔,他们对于每次光顾理发店时所能容忍的等待时间+剪发时间是3小时,而且等待时间越长,顾客的满意度越低。如果3个小时还不能剪完头发,我们的顾客会立马生气的走人。

     

      通过上面的假设我们不难想象出下面的场景:

      1. 当理发店内只有1位顾客时,只需要有1名理发师为他提供服务,其他两名理发师可能继续等着,也可能会帮忙打打杂。1小时后,这位顾客剪完头发出门走了。那么在这1个小时里,整个理发店只服务了1位顾客,这位顾客花费在这次剪发的时间是1小时;

      2. 当理发店内同时有两位顾客时,就会同时有两名理发师在为顾客服务,另外1位发呆或者打杂帮忙。仍然是1小时后,两位顾客剪完头发出门。在这1小时里,理发店服务了两位顾客,这两位顾客花费在剪发的时间均为1小时;

      3. 很容易理解,当理发店内同时有三位顾客时,理发店可以在1小时内同时服务三位顾客,每位顾客花费在这次剪发的时间仍然是均为1小时;

      从上面几个场景中我们可以发现,在理发店同时服务的顾客数量从1位增加到3位的过程中,随着顾客数量的增多,理发店的整体工作效率在提高,但是每位顾客在理发店内所呆的时间并未延长。

      当然,我们可以假设当只有1位顾客和2位顾客时,空闲的理发师可以帮忙打杂,使得其他理发师的工作效率提高,并使每位顾客的剪发时间小于1小时。不过即使根据这个假设,虽然随着顾客数量的增多,每位顾客的服务时间有所延长,但是这个时间始终还被控制在顾客可接受的范围之内,并且顾客是不需要等待的。

      不过随着理发店的生意越来越好,顾客也越来越多,新的场景出现了。假设有一次顾客A、B、C刚进理发店准备剪发,外面一推门又进来了顾客D、E、F。因为A、B、C三位顾客先到,所以D、E、F三位只好坐在长板凳上等着。1小时后,A、B、C三位剪完头发走了,他们每个人这次剪发所花费的时间均为1小时。可是D、E、F三位就没有这么好运,因为他们要先等A、B、C三位剪完才能剪,所以他们每个人这次剪发所花费的时间均为2小时——包括等待1小时和剪发1小时。

      通过上面这个场景我们可以发现,对于理发店来说,都是每小时服务三位顾客——第1个小时是A、B、C,第二个小时是D、E、F;但是对于顾客D、E、F来说,“响应时间”延长了。如果你可以理解上面的这些场景,就可以继续往下看了。

      在新的场景中,我们假设这次理发店里一次来了9位顾客,根据我们上面的场景,相信你不难推断,这9位顾客中有3位的“响应时间”为1小时,有3位的“响应时间”为2小时(等待1小时+剪发1小时),还有3位的“响应时间”为3小时(等待2小时+剪发1小时)——已经到达用户所能忍受的极限。假如在把这个场景中的顾客数量改为10,那么我们已经可以断定,一定会有1位顾客因为“响应时间”过长而无法忍受,最终离开理发店走了。

     我想并不需要特别说明,大家也一定可以把上面的这些场景跟性能测试挂上钩了。如果你还是觉得比较抽象,继续看下面的这张图 ^_^



    这张图中展示的是1个标准的软件性能模型。在图中有三条曲线,分别表示资源的利用情况(Utilization,包括硬件资源和软件资源)、吞吐量(Throughput,这里是指每秒事务数)以及响应时间(Response Time)。图中坐标轴的横轴从左到右表现了并发用户数(Number of Concurrent Users)的不断增长。

     在这张图中我们可以看到,最开始,随着并发用户数的增长,资源占用率和吞吐量会相应的增长,但是响应时间的变化不大;不过当并发用户数增长到一定程度后,资源占用达到饱和,吞吐量增长明显放缓甚至停止增长,而响应时间却进一步延长。如果并发用户数继续增长,你会发现软硬件资源占用继续维持在饱和状态,但是吞吐量开始下降,响应时间明显的超出了用户可接受的范围,并且最终导致用户放弃了这次请求甚至离开。

     根据这种性能表现,图中划分了三个区域,分别是Light Load(较轻的压力)、Heavy Load(较重的压力)和Buckle Zone(用户无法忍受并放弃请求)。在Light Load和Heavy Load 两个区域交界处的并发用户数,我们称为“最佳并发用户数(The Optimum Number of Concurrent Users)”,而Heavy Load和Buckle Zone两个区域交界处的并发用户数则称为“最大并发用户数(The Maximum Number of Concurrent Users)”。

     当系统的负载等于最佳并发用户数时,系统的整体效率最高,没有资源被浪费,用户也不需要等待;当系统负载处于最佳并发用户数和最大并发用户数之间时,系统可以继续工作,但是用户的等待时间延长,满意度开始降低,并且如果负载一直持续,将最终会导致有些用户无法忍受而放弃;而当系统负载大于最大并发用户数时,将注定会导致某些用户无法忍受超长的响应时间而放弃。

     对应到我们上面理发店的例子,每小时3个顾客就是这个理发店的最佳并发用户数,而每小时9个顾客则是它的最大并发用户数。当每小时都有3个顾客到来时,理发店的整体工作效率最高;而当每小时都有9个顾客到来时,前几个小时来的顾客还可以忍受,但是随着等待的顾客人数越来越多,等待时间越来越长,最终还是会有顾客无法忍受而离开。同时,随着理发店里顾客人数的增多和理发师工作时间的延长,理发师会逐渐产生疲劳,还要多花一些时间来清理环境和维持秩序,这些因素将最终导致理发师的工作效率随着顾客人数的增多和工作的延长而逐渐的下降,到最后可能要1.5小时甚至2个小时才能剪完1个发了。

     当然,如果一开始就有10个顾客到来,则注定有1位顾客剪不到头发了。

     进一步理解“最佳并发用户数”和“最大并发用户数”

     在上一节中,我们详细的描述了并发用户数同资源占用情况、吞吐量以及响应时间的关系,并且提到了两个新的概念——“最佳并发用户数(The Optimum Number of Concurrent Users)”和“最大并发用户数(The Maximum Number of Concurrent Users)”。在这一节中,我们将对“最佳并发用户数”和“最大并发用户数”的定义做更加清晰和明确的说明。

     对于一个确定的被测系统来说,在某个具体的软硬件环境下,它的“最佳并发用户数”和“最大并发用户数”都是客观存在。以“最佳并发用户数”为例,假如一个系统的最佳并发用户数是50,那么一旦并发量超过这个值,系统的吞吐量和响应时间必然会 “此消彼长”;如果系统负载长期大于这个数,必然会导致用户的满意度降低并最终达到一种无法忍受的地步。所以我们应该 保证最佳并发用户数要大于系统的平均负载。

     要补充的一点是,当我们需要对一个系统长时间施加压力——例如连续加压3-5天,来验证系统的可靠性或者说稳定性时,我们所使用的并发用户数应该等于或小于“最佳并发用户数”——大家也可以结合上面的讨论想想这是为什么 ^_^

     而对于最大并发用户数的识别,需要考虑和鉴别一下以下两种情况:

     1. 当系统的负载达到最大并发用户数后,响应时间超过了用户可以忍受的最大限度——这个限度应该来源于性能需求,例如:在某个级别的负载下,系统的响应时间应该小于5秒。这里容易疏忽的一点是,不要把顾客因为无法忍受而离开时店内的顾客数量作为理发店的“最大并发用户数”,因为这位顾客是在3小时前到达的,也就是说3小时前理发店内的顾客数量才是我们要找的“最大并发用户数”。而且,这位顾客的离开只是一个开始,可能有会更多的顾客随后也因为无法忍受超长的等待时间而离开;

     2. 在响应时间还没有到达用户可忍受的最大限度前,有可能已经出现了用户请求的失败。以理发店模型为例,如果理发店只能容纳6位顾客,那么当7位顾客同时来到理发店时,虽然我们可以知道所有顾客都能在可容忍的时间内剪完头发,但是因为理发店容量有限,最终只好有一位顾客打道回府,改天再来。

     对于一个系统来说,我们应该 确保系统的最大并发用户数要大于系统需要承受的峰值负载。

     如果你已经理解了上面提到的全部的概念,我想你可以展开进一步的思考,回头看一下自己以往做过的性能测试,看看是否可以对以往的工作产生新的理解。也欢迎大家在这里提出自己的心得或疑惑,继续讨论下去。

     理发店模型的进一步扩展

     这一节中我会提到一些对理发店模型的扩展,当然,我依然是只讲述现实中的理发店的故事,至于如何将这些扩展同性能测试以及性能解决方案等方面关联起来,就留给大家继续思考了 ^_^

     扩展场景1:有些顾客已经是理发店的老顾客,他们和理发师已经非常熟悉,理发师可以不用花费太多时间沟通就知道这位顾客的想法。并且理发师对这位顾客的脑袋的形状也很熟悉,所以可以更快的完成一次理发的工作。

     扩展场景2:理发店并不是只有剪发一种业务,还提供了烫发染发之类的业务,那么当顾客提出新的要求时,理发师服务一位顾客的时间可能会超过标准的1小时。而且这时如果要计算每位顾客的等待时间就变得复杂了很多,有些顾客的排队时间会比原来预计的延长,并最终导致他们因为无法忍受而离开。

     扩展场景3:随着烫发和染发业务的增加,理发师们决定分工,两位专门剪发,一位专门负责烫发和染发。

     扩展场景4:理发店的生意越来越好,理发师的数量和理发店的门面已经无法满足顾客的要求,于是理发店的老板决定在旁边再开一家店,并招聘一些工作能力更强的理发师。

     扩展场景5:理发店的生意变得极为火爆了,两家店都无法满足顾客数量增长的需求,并且有些顾客开始反映到理发店的路途太远,到了以后又因为烫发和染发的人太多而等太久。可是理发店的老板也明白烫发和染发的收入要远远高于剪发阿,于是他脑筋一转,决定继续改变策略,在附近的几个大型小区租用小的铺面开设分店,专职剪发业务;再在市区的繁华路段开设旗舰店,专门为烫发、染发的顾客,以及VIP顾客服务。并增设800电话,当顾客想要剪发时,可以拨打这个电话,并由服务人员根据顾客的居住地点,将其指引到距离最近的一家分店去。

     这篇文章就先写到这里了,希望大家在看完之后可以继续思考一下,也写出自己的心得体会或者新的想法,记下自己的不解和疑惑,让我们在不断的交流和讨论中走的更远 ^_^

     性能测试相关术语的英文书写方法(不断更新ing)——知道了这些术语在英文中的正确书写方法之后,可以通过 Google 更加高效的获取到更多有用的资料。

  • 描述性统计与性能结果分析(续) ——《LoadRunner 没有告诉你的》之二

    2007-05-16 11:34:40

    数据统计分析的思路与分析结果的展示方式是同样重要的,有了好的分析思路,但是却不懂得如何更好的展示分析结果和数据来印证自己的分析,就像一个人满腹经纶却不知该如何一展雄才

    ^_^

    一图胜千言,所以这次我会用两张图表来说明“描述性统计”在性能测试结果分析中的其他应用。


    在这张图中,我们继续使用了上一篇文章——《描述性统计与结果分析》一文中的方法,对响应时间的分布情况来进行分析。上面这张图所使用的数据是通过对

    Google.com 首页进行测试得来的,在测试中分别使用10/25/50/75/100 几个不同级别的并发用户数量。通过这张图表,我们可以通过横向比较和纵向比较,更清晰的了解到被测应用在不同级别的负载下的响应能力。

    这张图所使用的数据与第一张图一样,但是我们使用了另外一个视角来对数据进行展示。表中最左侧的2000/5000/10000/50000的单位是毫秒,分别表示了在整个测试过程中,响应时间在0-2000毫秒范围内的事务数量占成功的事务总数的百分比,响应时间在2001-5000毫秒范围内的事务数量占成功的事务总数的百分比,响应时间在5001-10000毫秒范围内的事务数量占成功的事务总数的百分比,以及响应时间在10001-50000毫秒范围内的事务数量占成功的事务总数的百分比。

    这几个时间范围的确定是参考了业内比较通行的“2-5-10原则”——当然你也可以为自己的测试制定其他标准,只要得到企业内的承认就可以。所谓的“2-5-10原则”,简单说,就是当用户能够在2秒以内得到响应时,会感觉系统的响应很快;当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以;当用户在5-10秒以内得到响应时,会感觉系统的响应速度很慢,但是还可以接受;而当用户在超过10秒后仍然无法得到响应时,会感觉系统糟透了,或者认为系统已经失去响应,而选择离开这个Web站点,或者发起第二次请求。

    那么从上面的图表中可以看到,当并发用户数量为10时,超过95%的用户都可以在5秒内得到响应;当并发用户数量达到25时,已经有80%的事务的响应时间处在危险的临界值,而且有相当数量的事务的响应时间超过了用户可以容忍的限度;随着并发用户数量的进一步增加,超过用户容忍限度的事务越来越多,当并发用户数到达75时,系统几乎已经无法为任何用户提供响应了。

    这张图表也同样可以用于对不同负载下事务的成功、失败比例的比较分析。

     

    Note:上面两个图表中的数据,主要通过Excel 中提供的FREQUENCYAVERAGEMAXMINPERCENTILE几个统计函数获得,具体的使用方法请参考Excel帮助手册。

  • 描述性统计与性能结果分析——《LoadRunner 没有告诉你的》之一

    2007-05-16 11:31:37

    LoadRunner中的90%响应时间是什么意思?这个值在进行性能分析时有什么作用?本文争取用最简洁的文字来解答这个问题,并引申出“描述性统计”方法在性能测试结果分析中的应用。

    为什么要有90%用户响应时间?因为在评估一次测试的结果时,仅仅有平均事务响应时间是不够的。为什么这么说?你可以试着想想,是否平均事务响应时间满足了性能需求就表示系统的性能已经满足了绝大多数用户的要求?

    假如有两组测试结果,响应时间分别是 {1351016} {56789},它们的平均值都是7,你认为哪次测试的结果更理想?

    假如有一次测试,总共有100个请求被响应,其中最小响应时间为0.02秒,最大响应时间为110秒,平均事务响应时间为4.7秒,你会不会想到最小和最大响应时间如此大的偏差是否会导致平均值本身并不可信?

    为了解答上面的疑问,我们先来看一张表:

     


     

    在上面这个表中包含了几个不同的列,其含义如下:

     

    CmdID   测试时被请求的页面

    NUM      响应成功的请求数量

    MEAN    所有成功的请求的响应时间的平均值

    STD DEV      标准差(这个值的作用将在下一篇文章中重点介绍)

    MIN              响应时间的最小值

    50 th(60/70/80/90/95 th)          如果把响应时间从小到大顺序排序,那么50%的请求的响应时间在这个范围之内。后面的60/70/80/90/95 th 也是同样的含义

    MAX      响应时间的最大值

     

    我想看完了上面的这个表和各列的解释,不用多说大家也可以明白我的意思了。我把结论性的东西整理一下:

    1.      90%用户响应时间在 LoadRunner中是可以设置的,你可以改为80%或95%;

    2.      对于这个表,LoadRunner中是没有直接提供的,你可以把LR中的原始数据导出到Excel中,并使用Excel中的PERCENTILE 函数很简单的算出不同百分比用户请求的响应时间分布情况;

    3.      从上面的表中来看,对于Home Page来说,平均事务响应时间(MEAN)只同70%用户响应时间相一致。也就是说假如我们确定Home Page的响应时间应该在5秒内,那么从平均事务响应时间来看是满足的,但是实际上有10-20%的用户请求的响应时间是大于这个值的;对于Page 1也是一样,假如我们确定对于Page 1 的请求应该在3秒内得到响应,虽然平均事务响应时间是满足要求的,但是实际上有20-30%的用户请求的响应时间是超过了我们的要求的;

    4.      你可以在95 th之后继续添加96/ 97/ 98/ 99/ 99.9/ 99.99 th,并利用Excel的图表功能画一条曲线,来更加清晰表现出系统响应时间的分布情况。这时候你也许会发现,那个最大值的出现几率只不过是千分之一甚至万分之一,而且99%的用户请求的响应时间都是在性能需求所定义的范围之内的;

    5.      如果你想使用这种方法来评估系统的性能,一个推荐的做法是尽可能让你的测试场景运行的时间长一些,因为当你获得的测试数据越多,这个响应时间的分布曲线就越接近真实情况;

    6.      在确定性能需求时,你可以用平均事务响应时间来衡量系统的性能,也可以用90%或95%用户响应时间来作为度量标准,它们并不冲突。实际上,在定义某些系统的性能需求时,一定范围内的请求失败也是可以被接受的;

    7.      上面提到的这些内容其实是与工具无关的,只要你可以得到原始的响应时间记录,无论是使用LoadRunner还是JMeter或者OpenSTA,你都可以用这些方法和思路来评估你的系统的性能。

     

    事实上,在性能测试领域中还有更多的东西是目前的商业测试工具或者开源测试工具都没有专门讲述的——换句话说,性能测试仅仅有工具是不够的。我们还需要更多其他领域的知识,例如数学和统计学,来帮助我们更好的分析性能数据,找到隐藏在那些数据之下的真相。

    引自:http://www.51testing.com/?action_viewnews_itemid_10545.html

  • 2006年上半年软件评测师试题及答案(下)

    2007-05-16 10:32:33

    2006年上半年软件评测师下午试题

    试题一 (15)
      阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
    [
    说明]
      基本路径法设计出的测试用例能够保证在测试中程序的每一条可执行语句至少执行一次。以下代码由C什语言书写,请按要求回答问题。
      void ReadPara( CString temp)
      {
       if ( temp == ">=")
         m_oper.SetCurSel(0);
       else
       {
         if (temp == ">")
          m_oper.SetCurSel(1);
         else
         {
          if ( temp == "==")
           m_oper.SetCurSel(2);
          else
          {
           if( temp == "<=")
            m_oper.SetCurSel(3);
           else
           {
            if ( temp == "<")
             m_oper.SetCurSel(4);
            else
             m_oper.SetCurSel(5);
           }
          }
         }
        }
       return;
      }
    [
    问题1] (6)
      请画出以上代码的控制流图。
    [
    问题2] (3)
      请计算上述控制流图的环路复杂度V(G)
    [
    问题3] (6)
      请使用基本路径测试法为变量temp设计测试用例,使之满足基本路径覆盖要求。

    试题二 (20)
      阅读下列说明,回答问题1至问题5,将解答填入答题纸的对应栏内。
    [
    说明]
      针对某公司办公自动化(OA)系统的负载压力测试,采用专业的负载压力测试工具来执行测试。系统采用Browse/Server架构,服务器是一台PC Server(42.7GHz处理器,4GB内存),安装的平台软件包括Microsoft Internet Information Server 5.0ASP.NETSQLServer2000。使用2台笔记本电脑安装测试工具模拟客户端执行登录业务操作。
      测试目标分别为以下两个:
      第一,测试系统分别在2M4M网络带宽下,能够支持用户登录的最大并发用户数;
      第二,测试服务器的吞吐量(即:每秒可以处理的交易数),主要包括服务器CPU平均使用率达到85%时系统能够支持的最大吞吐量和服务器CPU平均使用率达到100%时系统能够支持的最大吞吐量。
      本次测试的性能需求是:指标响应时间合理范围为05秒。
      测试结果如下:
      案例 1
      网络环境:2M带宽
      客户端性能测试结果;

    测试指标

    平均值

    登录响应时间

    3.391

    虚拟用户数

    N/A

    每秒处理完成登录的个数

    11.897交易/

      注:图中登录响应时间的纵坐标单位是0.1
      服务器资源使用结果:

    测试指标

    平均值

    CPU使用率

    78%

      案例2
      网络环境:4M带宽
      客户端性能测试结果:

    测试指标

    平均值

    登录响应时间

    4.795

    虚拟用户数

    N/A

    每秒处理完成登录的个数

    13.447交易/

      注:图中登录响应时间的纵坐标单位是0.1
      服务器资源使用结果

    测试指标

    平均值

    CPU使用率

    98%

    [问题1] (3)
      简述软件系统交易执行响应时间(“RT”ResponseTime)的概念。
    [
    问题2] (3)
      分析案例 1 的测试结果数据;指出满足系统的性能指标需求时,系统能够承受的并发用户登录的最大数量,并说明理由。
    [
    问题3] (4)
      分析案例 1 的测试结果数据,说明服务器CPU资源使用率是否合理,以及带宽是否是系统瓶颈,并陈述理由。
    [
    问题4] (4)
      分析案例 2 的测试结果数据,说明服务器CPU资源使用率是否合理,以及增加带宽是否是提高系统性能的有效方法,并陈述理由。
    [
    问题5] (6)
      论述CPU使用率成为系统性能瓶颈时,如何制定解决方案?论述网络带宽成为系统性能瓶颈时,如何制定解决方案?

    试题三 (15)
      阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
    [
    说明]
      软件系统几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。场景法就是通过用例场景描述业务操作流程,从用例开始到结束遍历应用流程上所有基本流(基本事件)和备选流(分支事件)。下面是对某IC卡加油机应用系统的基本流和备选流的描述。
      基本流A

    序号

    用例名称

    用例描述

    1

    准备加油

    客户将IC加油卡插入加油机

    2

    验证加油卡

    加油机从加油卡的磁条中读取账户代码,并检查它是否属于可以接收的加油卡

    3

    验证黑名单

    加油机验证卡账户是否存在于黑名单中,如果属于黑名单,加油机吞卡

    4

    输入购油量

    客户输入需要购买的汽油数量

    5

    加油

    加油机完成加油操作,从加油卡中扣除相应金额

    6

    返回加油卡

    退还加油卡

      备选流:

    序号

    用例名称

    用例描述

    B

    加油卡无效

    在基本流A2过程中,该卡不能够识别或是非本机可以使用的IC 卡,加油机退卡,并退出基本流

    C

    卡账户属于黑名单

    在基本流A3过程中,判断该卡账产属于黑名单,例如:已经挂 失,加油机吞卡退出基本流

    D

    加油卡账面现金不足

    系统判断加油卡内现金不足,重新加入基本流A4,或选择退卡

    E

    加油机油量不足

    系统判断加油机内油量不足,重新加入基本流A4,或选择退卡

    [问题1] (5)
      使用场景法设计测试案例,指出场景涉及到的基本流和备选流,基本流用字母A表示,备选流用题干中描述的相应字母表示。
    [
    问题2] (4
      场景中的每一个场景都需要确定测试用例,一般采用矩阵来确定和管理测试用例。
      如下表所示是一种通用格式,其中行代表各个测试用例,列代表测试用例的信息。本例中的测试用例包含测试用例、ID、场景涤件、测试用例中涉及的所有数据元素和预期结果等项目。首先确定执行用例场景所需的数据元素(本例中包括账号、是否黑名单卡、输入油量、账面金额、加油机油量),然后构建矩阵,最后要确定包含执行场景所需的适当条件的测试用例。在下面的矩阵中,V表示有效数据元素,I表示无效数据元素,n/a表示不适用,例如C01表示成功加油基本流。请按上述规定为其它应用场景设计用例矩阵。

    测试用例表

    测试用例
    ID

    场景

    账号

    是否黑
    名单卡

    输入
    油量

    账面
    金额

    加油机
    油量

    预期结果

    C01

    场景1;成功加油

    V

    I

    V

    V

    V

    成功加油

    C02

     

     

     

     

     

     

     

    C03

     

     

     

     

     

     

     

    C04

     

     

     

     

     

     

     

    C05

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    [问题3] (3)
      假如每升油4元人民币,用户的账户金额为1000元,加油机内油量足够,那么在A4输入油量的过程中,请运用边界值分析方法为A4选取合适的输入数据(即油量,单位;升)
    [
    问题4] (3)
      假设本系统开发人员在开发过程中通过测试发现了20个错误,独立的测试组通过上述测试用例发现了100个软件错误,系统在上线后,用户反馈了30个错误,请计算缺陷探测率(DDP)

    试题四 (15)
      阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
    [
    说明]
      易用性和用户文档是影响软件质量的重要指标,也是直接决定一个软件能否取得市场成功的关键因素。
    [
    问题1] (5
      用户对软件系统的第一认识来自于安装,因此易用性的一个重要体现就是安装的易用性。简述安装测试应当从哪几个方面来考虑?
    [
    问题2] (6)
      软件用户界面起着引导用户操作的重要作用,简述整体界面测试和界面中的元素测试分别应当设计哪些测试点?
    [
    问题3] (4)
      软件帮助是协助用户使用软件的关键途径,因此也是软件测试过程中的一个重要内容,简述在进行软件帮助测试时的测试要点。

    试题五 (10)
      阅读以下说明,回答问题1和问题2,将解答填入答题纸的对应栏内。
    [
    说明]
      软件测试是与软件开发密切相关的一系列有计划的活动,在软件测试过程模型“V模型的指导下,开发过程中应该安排一系列不同类型的测试活动。
      软件测试过程是由一系列的关键活动组成的,同时软件测试质量的保证手段是必不可少的。
    [
    问题1] (2)
      针对开发过程中的不同阶段,应该包含那些类型的软件测试。
    [
    问题2] (8)
      简述软件测试过程的关键活动,以及保证软件测试质量的手段。

     

    ---------------------------------------------------------------------------------

     

    下午试题答案

    试题一
    [问题1]

    [问题2]
      V(G)=6
    [问题3]

    用例编号

    temp取值

    1

    >=

    2

    >

    3

    ==

    4

    <=

    5

    <

    6

    除>=、>、==、<=、<之外的字符组合

    试题二
    [问题1]
      响应时间是系统完成事务执行准备后所采集的时间戳和系统完成待执行事务后所采集的时间戳之间的时间间隔,是衡量特定类型应用事务性能的重要指标,标志了用户执行一项操作大致需要多长时间。
    [问题2]
      系统能够承受的并发用户登录的最大数量为50
      题中指出"通常情况下,交易操作合理的响应时间为5秒以内"。此案例中,登录响应时间随虚拟并发用户数增加而增长。在50个虚拟并发用户的负载下,登录响应时间达到5秒(注意图形中响应时间指标的比例为10)。当负载超过50个虚拟并发用户,响应时间超过5秒。所以此案例中最合理的并发用户数为50。
    [问题3]
      服务器CPU资源使用率是合理的。
      2M带宽是系统处理业务的瓶颈。
      理由是对比"4M带宽登录"案例,4M带宽下,系统每秒处理完成的登录个数固定在13.5个左右,登录响应时间随虚拟用户数增加而增长。在60个虚拟用户的压力下,登录响应时间在4.2秒左右(注意图形中响应时间指标的比例为10)。在80个虚拟用户的压力下,登录响应时间在5.8秒左右,所以在合理登录响应时间(5秒)内预计同时登录用户数是70左右。服务器CPU使用率成为系统处理的瓶颈。说明随着带宽的提高,系统的处理能力进一步提高,同时高吞吐量造成了系统资源的紧张,带来了新的系统性能瓶颈。
    [问题4]
      服务器CPU资源使用率不合理,其平均值超过85%。
      4M带宽的网络测试环境与2M带宽的网络测试环境相比,带来了新的系统瓶颈(CPU资源使用率平均值超过85%),所以增加带宽不是提高系统性能的有效方法。在此基础上,继续提高带宽,系统的处理能力将进一步提高,高的处理能力会使服务器的资源瓶颈进一步加重,带来更加严重的后果。
    [问题5]
      当CPU资源使用成为系统瓶颈时的解决方案可以概括为:
       1. 增加CPU的个数;
       2. 提高CPU的主频;
       3. 将web服务器与数据库服务器分开部署;
       4. 调整软件的设计与开发;
      当带宽成为系统瓶颈时的解决方案可以概括为:
       1. 增加带宽;
       2. 压缩传输数据。

    试题三
    [问题1]
      场景1:A
      场景2:A、B
      场景3:A、C
      场景4:A、D
      场景5:A、E
    [问题2]

    测试用例ID号

    场景

    帐号

    是否黑名单卡

    输入油量

    帐面金额

    加油机油黑

    预期结果

    C02.

    场景2:卡无效

    1

    n/a

    n/a

    n/a

    n/a

    退卡

    C03.

    场景3:黑名单卡

    V

    V

    n/a

    n/a

    n/a

    吞卡

    C04.

    场景4:金额不足

    V

    I

    V

    I

    V

    提示错误,重新输入加油量

    C05.

    场景5:油量不足

    V

    I

    V

    V

    I

    提示错误,重新输入加油量

    [问题3]
      1. 0升
      2. 250升
      3. 251升
    [问题4]
      DDP=Bugstester(Bugstester+ Bugscustomer)=(20+100)(20+100+30)=80%(0.8)
      其中,Bugstester为测试者发现的错误数;
      Bugscustomer为客户发现并反馈技术支持人员进行修复的错误数。

    试题四
    [问题1]
      评估安装手册
      安装的自动化测试
      安装选项和设置的测试
      安装过程的中断测试
      安装顺序测试
      多环境安装测试
      安装正确性测试
      修复安装与卸载测试

    [问题2]
      界面整体测试:规范性测试、合理性测试、一致性测试和界面定制性测试
      界面元素测试:窗口测试、菜单测试、图标测试、鼠标测试和文字测试。
    [问题3]
      文本的准确性
      与程序的接口
      帮助索引的检查
      超链接的正确性
      链接的意义
      风格应简洁

    试题五
    [问题1]
      单元测试
      集成测试
      确认测试(系统测试)
      验收测试
    [问题2]
      知识点包括:
       软件测试过程的关键活动:
       测试需求分析
       制定测试计划
       测试设计
       测试执行
       测试分析与总结

      质量保证手段:
       制定质量保证计划、质量体系建立
       测试活动审核、测试文档评审
       测试过程数据的收集、度量与分析

  • 2006年上半年软件评测师试题及答案(上)

    2007-05-16 10:30:14

    2006年上半年软件评测师上午试题

    计算机系统中,存取速度最快的是___(1)___
      (1)ACPU内部寄存器        B.计算机的高速缓存Cache
        C.计算机的主存        D.大容量磁盘

      模块的耦合度描述了___(2)___
      (2)A.模块内各种元素结合的程度  B.模块内多个功能之间的接口
        C.模块之间公共数据的数量   D.模块之间相互关联的程度

      若某计算机系统是由500个元器件构成的串联系统,且每个元器件的失效率均为10-7/H,在不考虑其它因素对可靠性的影响时,该计算机系统的平均故障间隔时间为___(3)___小时。
      (3)A2×1O4     B5×1O4    C2×1O5    D5×105

      内聚是一种指标,表示一个模块___(4)___
      (4)A.代码优化的程度         B.代码功能的集中程度
        C.完成任务时及时程度       D.为了与其他模块连接所要完成的工作

      为了解决进程间的同步和互斥问题,通常来用一种称为___(5)___机制的方法。若系统中有5个进程共享若干个资源R,每个进程都需要4个资源R,那么使系统不发生死锁的资源R的最少数目是___(6)___ 
      (5)A.调度     B.信号量    C.分派     D.通讯
      (6)A20      B18      C16      D15

      UNIX操作系统中,把输入/输出设备看作是___(7)___
      (7)A.普通文件   B.目录文件   C.索引文件   D.特殊文件

      某磁盘盘组共有10个盘面,每个盘面上有100个磁道,每个磁道有16个扇区,假定分配以扇区为单位。若使用位示图管理磁盘空间,则位示图需要占用___(8)___字节空间。
      (8)A16000     B1000     C2000     D1600

      ●___(9)___描述数据的局部逻辑视图,是数据库用户的数据视图,它是与某一应用有关的数据逻辑表示。
      (9)A.模式     B.逻辑模式   C.外模式    D.内模式

      某数据库中有员工关系E、产品关系P、仓库关系W和库存关系I,其中:
      员工关系E(employeelDnamedepartment)中的属性为:员工编号,姓名,部门;
      产品关系P(productIDnamemodelsizecolor)中的属性为:产品编号,产品名称,型号,尺寸,颜色;
      仓库关系W(warehouselDnameaddressemployeeID)中的属性为:仓库编号,仓库名称,地址,员工编号;
      库存关系I(warehouseIDproductIDquantity)中的属性为仓库编号,产品编号和产品数量。
      a.若要求仓库关系的负责人引用员工关系的员工编号,员工关系E的员工编号、仓库关系W的仓库编号和产品关系P的产品编号不能为空且惟一标识一个记录,并且仓库的地址不能为空,则依次要满足的完整性约束是___(10)___
      b.可得到每种产品伪名称和该产品的总库存量的查询语句为;
       SELELCT nameSUM(quantity)
       FROM P,I
       WHERE___(11)___
      (10)A.实体完整性、参照完整性、用户定义完整性
        B.参照完整性、实体完整性、用户定义完整性
        C.用户定义完整性、实体完整性、参照完整性
        D.实体完整性、用户定义完整性、参照完整性
      (11)AP.productID=I.productlD
        BP.productID=I.product ID ORDER BY name
        CP.productID=Iproduct ID GROUP BY name
        DP.productID=Iproduct ID GROUP BY namequantity

      与多模光纤相比较,单模光纤具有___(12)___等特点。
      (12)A. 较高的传输率、较长的传输距离、较高的成本
        B. 较低的传输率、较短的传输距离、较高的成本
        C. 较高的传输率、较短的传输距离、较低的成本
        D. 较低的传输率、较长的传输距离、较低的成本

      ● “<title style="italic">science</title>”是一个XML 元素的定义,其中元素标记的属性值是___(13)___
      (13)Atitle     Bstyle    Citalic    Dscience

      某校园网用户无法访问外部站点210.102.58.74,管理人员在windows 操作系统下可以使用___(14)___判断故障发生在校园网内还是校园网外。
      (14)A. ping 210.102.58.74        B. tracert 210.102.58.74
        C. netstat 210.102.58.74      D. arp 210.102.58.74

      ● SNMP 所采用的传输层协议是___(15)___
      (15)A. UDP      B. ICMP      C. TCP      D. IP

      渐增式开发方法有利于___(16)___
      (16)A.获取软件需求 B.快速开发软件  C.大型团队开发 D.商业软件开发

      高级程序设计语言中用于描述程序中的运算步骤、控制结构及数据传输的是___(17)___
      (17)A.语句     B.语义      C.语用     D.语法

      ● ___(18)___是面向对象程序设计语言不同于其它语言的主要特点,是否建立了丰富的___(19)___是衡量一个面向对象程序设计语言成熟与否的重要标志之一。
      (18)A. 继承性    B. 消息传递   C. 多态性    D. 静态联编
      (19)A. 函数库    B. 类库     C. 类型库    D. 方法库

      某市标准化行政主管部门制定并发布的工业产品的安全、卫生要求的标准,在其行政区域内是___(20)___
      (20)A.强制性标准  B.推荐性标准  C.自愿性标准  D.指导性标准

      王某购买了一个海之久牌活动硬盘,而且该活动硬盘还包含有一项实用新型专利,那么,王某享有___21___
      (21)A海之久商标专用权      B.该盘的所有权
        C.该盘的实用新型专利权      D.前三项权利之全部

      甲企业委托软件公司程序员王某开发管理软件,并与王某签订了书面协议,但协议中未对软件著作权归属做出明确的约定,其软件著作权属于___(22)___
      (22)A.甲企业    B.软件公司    C.程序员王某  D.软件公司和甲企业

      依据著作权法,计算机软件著作权保护的对象是指___(23)___
      (23)A. 计算机硬件  B. 计算机软件  C. 计算机硬件和软件 D. 计算机文档

      相对于DES算法而言,RSA算法的___(24)___,因此,RSA___(25)___
      (24)A.加密密钥和解密密钥是不相同的  B.加密密钥和解密密钥是相同的
        C.加密速度比DES要高        D.解密速度比DES要高
      (25)A.更适用于对文件加密       B.保密性不如DES
        C.可用于对不同长度的消息生成消息摘要  D.可以用于数字签名

      C++语言中,已知3个类OPQ,类O中定义了一个私有方法F1、一个公有方法F2和一个受保护的方法F3:类P和类Q是类O的派生类,其继承方式如下所示:
       class P : protected O {…};
       class Q : public O {…};
      关于方法F1的描述中正确的是___(26)___;关于方法F2韵描述中正确的是___(27)___;关于方法F3的描述中正确的是___(28)___
      (26)A.方法F1无法被访问          B.只有在类O内才能访问方法F1
        C.只有在类P内才能访问方法F1     D.只有在类Q内才能访问方法F1
      (27)A.类OPQ的对象都可以访问方法F2  B.类PQ的对象都可以访问方法F2
        C.类0Q的对象都可以访问方法F2    D.只有在类P内才能访问方法F2
      (28)A.类0PQ的对象都可以访问方法F3  B.类0PQ的对象都不可以访问方法F3
        C.类0Q的对象都可以访问方法F3    D.类PQ的对象都可以访问方法F3

      正式的技术评审FTR(Formal Technical Review)是软件工程师组织的软件质量保证活动,下面关于FTR指导原则中不正确的是___(29)___
      (29)A.评审产品,而不是评审生产者的能力
        B.要有严格的评审计划,并遵守日程安排
        C.对评审中出现的问题要充分讨论,以求彻底解决
        D.限制参与者人数,并要求评审会之前做好准备

      在绘制数据流图时,要遵循的一个原则是父图与子图的平衡,所谓平衡是指___(30)___
      (30)A.父图和子图都不得改变数据流的性质
        B.子图不改变父图数据流的致性
        C.父图的输入/输出数据流与子图的输入/输出数据流一致
        D.子图的输出数据流完全由父图的输入数据流确定

      某系统的顶层DFD图如下,其中,加工1细化后的DFD图是___(31)___


      (31)

      下图中的程序由ABCDE 5个模块组成,下表中描述了这些模块之间的接口,每一个接口有一个编号。此外,模块ADE都要引用一个专用数据区。那么AE之间耦合关系是___(32)___

    编号

    参数

    返回值

    1

    数据项

    数据项

    2

    数据项

    数据项

    3

    功能码

    4

    列表

      (32)A.公共耦合    B.数据耦合    C.内容耦合    D.无耦合

      C++语言中,若类C中定义了一个方法int f(int aint b),那么方法___(33)___不能与该方法同时存在于类C中。
      (33)Aint f(int xint y)        Bint f(float aint b)
        Cfloat f(int xfloat y)      Dint f(int xfloat y)

      在面向对象软件开发过程中,采用设计模式___(34)___
      (34)A.允许在非面向对象程序设计语言中使用面向对象的概念
        B.以复用成功的设计和体系结构
        C.以减少设计过程创建的类的个数
        D.以保证程序的运行速度达到最优值

      两个小组独立地测试同一个程序,第一组发现25个错误,第二组发现30个错误,在两个小组发现的错误中有15个是共同的,那么可以估计程序中的错误总数是___(35)___个。
      (35)A25       B30      C50     D60

      对于软件的β测试,下列描述正确的是___(36)___
      (36)Aβ测试就是在软件公司内部展开的测试,由公司专业的测试人员执行的测试
        Bβ测试就是在软件公司内部展开的测试,由公司的非专业测试人员执行的测试
        Cβ测试就是在软件公司外部展开的测试,由专业的测试人员执行的测试
        Dβ测试就是在软件公司外部展开的测试,可以由非专业的测试人员执行的测试

      ●___(37)___可以作为软件测试结束的标志。
      (37)A.使用了特定的测试用例      B.错误强度曲线下降到预定的水平
        C.查出了预定数目的错误      D.按照测试计划中所规定的时间进行了测试

      下面--是关于软件评测师工作原则的描述,正确的判断是___(38)___
       对于开发人员提交的程序必须进行完全的测试,以确保程序的质量
       必须合理安排测试任务,做好周密的测试计划,平均分配软件各个模块的测试时间
       在测试之前需要与开发人员进行详细的交流,明确开发人员的程序设计思路,并以此为依据开展软件测试工作,最大程度地发现程序中与其设计思路不一致的错误
       要对自己发现的问题负责,确保每一个问题都能被开发人员理解和修改。
      (38)A     B     C    D.无

      在软件生命周期的不同阶段,需要实施不同类型的测试工作,单元测试是对程序设计进行验证,其中___(39)___不是单元测试的主要内容。在进行单元测试过程中,通常测试工程师都需要借助___(40)___来代替所测模块调用的子模块:在单元测试的基础上,需要将所有模块按照概要设计和详细设计说明书的要求进行组装,模块组装成系统的方式有两种,分别是___(41)___
      (39)A.模块接口测试  B.有效性测试  C.路径测试    D.边界测试
      (40)A.桩模块     B.驱动模块   C.桩模块和驱动模块  D.存根模块和驱动模块
      (41)A.一次性组装和增殖性组装      B.自顶向下组装和启底向上组装
        C.单个模块组装和混合模块组装    D.接口组装和功能组装

      黑盒测试是通过软件的外部表现来发现软件缺陷和错误的测试方法,具体地说,黑盒测试用例设计技术包括___(42)___等。现有一个处理单价为1元的盒装饮料的自动售货机软件,若投入1元币,按下可乐雪碧红茶按钮,相应的饮料就送出来,若投入的是2元币,在送出饮料的同时退还1元币。下表是用因果图法设计的部分测试用例,l表示执行该动作,0表示不执行该动作,___(43)___的各位数据,从左到右分别填入空格表中的(1)—(8)是正确的。

    用例序号

    1

    2

    3

    4

    5


    投入1元币

    1

    1

    0

    0

    0

    投入2元币

    0

    0

    1

    0

    0

    可乐按钮

    1

    0

    0

    0

    0

    雪碧按钮

    0

    0

    0

    1

    0

    红茶按钮

    0

    0

    1

    0

    1


    退还1元币

    (1)

    0

    (5)

    (7)

    0

    送出可乐饮料

    (2)

    0

    0

    0

    0

    送出雪碧饮料

    (3)

    0

    0

    (8)

    0

    送出红茶饮料

    (4)

    0

    (6)

    0

    0

      (42)A.等价类划分法、因果图法、边界值分析法、错误推测法、判定表驱动法
        B.等价类划分法、因果图法、边界值分析法、正交试验法、符号法
        C.等价类划分法、因果图法、边界值分析法、功能图法、基本路径法
        D.等价类划分法、因果图法、边界值分析法、静态质量度量法、场景法
      (43)A01001100   B01101100   C01001010   D11001100

      多条件覆盖是一种逻辑覆盖,它的含义是设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次,满足多条件覆盖级别的测试用例也是满足___(44)___级别的:针对布尔表达式
    A&&(B||C)
    执行逻辑覆盖测试,测试用例至少需要___(45)___种组合才能满足多条件覆盖的要求。
      (44)A.语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖
        B.判定覆盖、条件覆盖;条件判定组合覆盖、修正条件判定覆盖
        C.语句覆盖、判定覆盖、条件判定组合覆盖、修正条件判定覆盖
        D.路径覆盖、判定覆盖、条件覆盖、条件判定组合覆盖
      (45)A6       B4       C8       D12

      典型的软件测试过程模型有___(46)___等,在这些模型中,___(47)___强调了测试计划等工作的先行和对系统需求和系统设计的测试,___(48)___对软件测试流程予以了说明。
      (46)AV模型、W模型、H模型、渐进模型
        BV模型、W模型、H模型、螺旋模型
        CX模型、W模型、H模型、前置测试模型
        DX模型、W模型、H模型、增量模型
      (47)AV模型     BW模型     C.渐进模型   D.螺旋模型
      (48)AV模型     BW模型     CH模型     D.增量模型

      下述关于错误处理流程管理的原则,___(49)___的说法是不正确的。
      (49)A.为了保证正确地定位错误,需要有丰富测试经验的测试人员验证发现的错误是否是真正的错误,并且验证错误是否可以再现。
        B.每次对错误的处理都要保留处理信息,包括处理人姓名、处理时间、处理方法、处理意见以及错误状态
        C.错误修复后必须由报告错误的测试人员确认错误已经修复,才能关闭错误
        D.对于无法再现的错误,应该由项目经理,测试经理和设计经理共同讨论决定拒绝或者延期。

      ● GB/T16260—2003《软件工程产品质量》规定的软件产品使用质量特性包括___(50)___
      (50)A.适应性、生产率、可靠性、满意度
        B.有效性、生产率、安全性、满意度
        C.有效性、可靠性、适应性、满意度
        D.适应性、适用性、效率、满意度

      软件可靠性是指在指定的条件下使用时,软件产品维持规定的性能级别的能力,其子特性___(51)___是指在软件发生故障或者违反指定接口的情况下,软件产品维持规定的性能级别的能力。
      (51)A.成熟性     B.易恢复性     C.容错性     D.可靠性依从性

      ● GB/T18905—2002《软件工程 产品评价》中确定的通用评价过程包括四个方面,即:确立评价需求,规定评价,设计评价和执行评价,其中有关规定评价部分包含的内容有___(52)___
      (52)A.选择度量、建立度量评定等级、确立评估准则:
        B.指定质量模型、选择度量、建立度量评定等级
        C.选择度量、建立度量评定等级、制定评价计划
        D.确定产品类型、选择度量、建立度量评定等级

      ● GB/T18905-2002《软件工程 产品评价》提供了软件产品评价的过程,其中GB/T18905—2002《软件工程 产品评价》第五部分评价者用的过程供___(53)___
      (53)A.计划获取或复用某个已有的软件产品的组织予以使用
        B.对软件产品执行独立评估的评价者使用
        C.计划开发新产品或增强现有的产品,以及打算利用他们自己的技术人员进行产品评价的组织使用
        D.编制评价模块的文档提供指南

      用边界值分析法,假定1<X<100,那么X在测试中应该取的边界值是___(54)___
      (54)AX=1X=100   BX=0X=1X=100X=101  CX=2X=99  DX=OX=101

      导致软件缺陷的原因有很多,是可能的原因,其中最主要的原因包括___(55)___
        软件需求说明书编写的不全面,不完整,不准确,而且经常更改
        软件设计说明书
        软件操作人员的水平
        开发人员不能很好的理解需求说明书和沟通不足
      (55)A   B    C    D

      关于软件质量的描述,正确的是___(56)___
      (56)A.软件质量是指软件满足规定用户需求的能力
        B.软件质量特性是指软件的功能性、可靠性、易用性、效率、可维护性、可移植性
        C.软件质量保证过程就是软件测试过程
        D.以上描述都不对

      对于业务流清晰的系统可以利用___(57)___贯穿整个测试用例设计过程广在用例中综合使用各种测试方法,对于参数配置类的软件,要用___(58)___选择较少的组合方式达到最佳效果,如果程序的功能说明中含有输入条件的组合情况,则一开始就可以选用___(59)___和判定表驱动法。
      (57)A.等价类划分    B.因果图法    C.正交试验法   D.场景法
      (58)A.等价类划分    B.因果图法    C.正交试验法   D.场景法
      (59)A.等价类划分    B.因果图法    C.正交试验法   D.场景法

      逻辑路径覆盖法是白盒测试用例的重要设计方法,其中语句覆盖法是较为常用的方法,针对下面的语句段,采用语句覆盖法完成测试用例设计,测试用例见下表,对表中的空缺项(True或者False),正确的选择是___(60)___
      语句段:
       if (A && (B||C)) x=l
       else x=O
      用例表:

     

    用例1

    用例2

    A

    TRUE

    FALSE

    B

    FALSE

    C

    TRUE

    A &&(B||C)

    FALSE

      (60)ATRUE FALSE TRUE       BTRUE FALSE FALSE
        CFALSE FALSE TRUE      DTRUE TRUE FALSE

      ● ___(61)___方法根据输出对输入的依赖关系设计测试用例。
      (61)A.路径测试    B.等价类     C.因果图    D.边界值

      针对下面程序段,边界值问题可以定位在___(62)___
       1Rem Create a 10 element integer array
       2Rem lnitialize each element to -1
       3Dim data(10) As Integer
       4Dim i As Integer
       5For i=1 TO 10
       6data(i)=-1
       7Next i
       8End
      (62) A. data(1)   B. data(0)  C. data(9)   D. data(10)

      以下控制流图的圈复杂度V(g)和基本圈复杂度EV(g)___(63)___

      (63)AV(g)=5 EV(g)=1       BV(g)=6 EV(g)=6
        CV(g)=5 EV(g)=5       DV(g)=6 EV(g)=1

      在网络应用测试中,网络延迟是一个重要指标。以下关于网络延迟的理解,正确的是___(64)___
      (64)A.指响应时间
        B.指报文从客户端发出到客户端接收到服务器响应的间隔时间
        C.指报文在网络上的传输时间
        D.指从报文开始进入网络到它开始离开网络之间的时间

      为保证测试活动的可控性,必须在软件测试过程中进行软件测试配置管理,一般来说,软件测试配置管理中最基本的活动包括___(65)___
      (65)A.配置项标识、配置项控制、配置状态报告、配置审计
        B.配置基线确立、配置项控制、配置报告、配置审计
        C.配置项标识、配置项变更、配置审计、配置跟踪
        D.配置项标识、配置项控制、配置状态报告、配置跟踪

      ● Originally introduced by Netscape Communications,___(66)___ are a general mechanism which HTTP Server side applications, such as CGI (67) , can use to both store and retrieve information on the HTTP ___(68)___ side of the connection. Basically, Cookies can be used to compensate for the ___(69)___ nature of HTTP. The addition of a simple, persistent, client-side state significantly extends the capabilities of WWW-based ___(70)___ .
      (66)A. Browsers   B. Cookies     C. Connections   D. scrīpts
      (67)A. graphics   B. processes    C. scrīpts     D. texts
      (68)A. Client    B. Editor      C. Creator     D. Server
      (69)A. fixed     B. flexible     C. stable     D. stateless
      (70)A. programs   B. applications  C. frameworks   D. constrains

      ● WebSQL is a SQL-like ___(71)___ language for extracting information from the web. Its capabilities for performing navigation of web ___(72)___ make it a useful tool for automating several web-related tasks that require the systematic processing of either all the links in a ___(73)___ , all the pages that can be reached from a given URL through ___(74)___ that match a pattern, or a combination of both. WebSQL also provides transparent access to index servers that can be queried via the Common ___(75)___ Interface.
      (71)A. query     B. transaction    C. communication    D. programming
      (72)A. browsers   B. servers      C. hypertexts     D. clients
      (73)A. hypertext   B. page       C. protocol      D. operation
      (74)A. paths     B. chips       C. tools        D. directories
      (75)A. Router    B. Device      C. Computer      D. Gateway

    ------------------------------------------------------------------------------------

     

    上午试题答案

    (1) A (16) B (31) B (46) C (61) C
    (2) D (17) A (32) A (47) B (62) B
    (3) A (18) A (33) A (48) C (63) D
    (4) B (19) B (34) B (49) D (64) D
    (5) B (20) A (35) C (50) B (65) A
    (6) C (21) B (36) D (51) C (66) B
    (7) D (22) C (37) B (52) A (67) C
    (8) C (23) B (38) D (53) B (68) A
    (9) C (24) A (39) B (54) B (69) D
    (10) B (25) D (40) A (55) D (70) B
    (11) C (26) B (41) A (56) D (71) A
    (12) A (27) C (42) A (57) D (72) C
    (13) D (28) B (43) A (58) C (73) B
    (14) B (29) C (44) A (59) B (74) A
    (15) A (30) C (45) C (60) A (75) D

  • 软件评测师考试经验分享

    2007-05-16 10:28:26

    07年的软件评测师考试报名又开始了,最近很多测试朋友也很关注,并对软件评测考试充满了好奇,论坛上也有一些讨论和交流。由于本人去年幸运的通过了软件评测师考试,因此将一些心得分享给大家,同时欢迎参加过考试的朋友也来谈谈经。

    一些说明51Testing软件测试网u]7@+I V'Hk,N
    计算机技术与软件专业资格(水平)考试分为初级、中级、高级,其中软件评测师属于中级。软件考试每年有两次,但评测师只有上半年才有。通过了这个考试,相当于中级职称。软测的考试年龄只有两岁,2005年5月第一次进入考试范围,可以说它是新生的充满活力的生命,成长空间很大。很多测试人员都不知道有这个水平考试的存在。据说前两年考试通过率都比较低,10%不到。

    软件评测师考试意义
    W-h-_5gr E8P;t*}111426现在考证是个趋势,但说实在的,软考证书个人现在不觉得有什么实际用处,可能大多数软件公司并不会因为你获得了软件评测师资格或是中级职称就升工资(少数公司福利好的可能会有),也许在找工作的时候会有点帮助吧。
    -{O:KaR \111426倒是备考过程中的学习意义比较大,毕竟很多基础的知识的记忆都不是很牢固,回过头去巩固学习别有一番体会,也会触发更多工作方法的灵感。即使通不过自己的知识也增长了!
    Em \*C0u111426另外,如果能通过自己努力,在10%通过率下顺利通过,也是很有成就感的啊 ,咔咔。

    备考经验51Testing软件测试网5^6DZzp*q&i m+a)YH
    备考的复习资料主要有考试大纲、指定教材软件评测师教程、以及一些试题及答案分析。我觉得评测师教程不错,条理很清晰,阅读起来比较容易理解,我现在还一直作为手册来用。个人建议在考试前至少两个月就要开始复习备考了并做好学习计划,因为一开始还是比较难以进入良好的学习状态,同时需要复习的内容也很多很细需要一定的时间去理解消化,如果备考时间不足临时抱佛脚就不太好了。当然个人情况不一如果你原来基础就很好那也不需要。另外一些章节后面的习题也要做一下并弄懂解答原理,因为有一些考试试题就是类似的。51Testing软件测试网t L5J)^*},~;m
    把考前的心态调整好比较重要。不要理解为去应付考试,这样很消极对备考不好,我们可理解为平时难得有机会这么系统的去学习,借助考试的机会好好的复习一把。这样的会就比较容易找到动力了。同时最好不要有侥幸心理。
    +x2gd3]-try111426考试分上午题和下午题。上午题主要是考基础理论,考的范围很广很细,这要求备考时准备充分一下,考试内容大部分都来自教程;下午题考实战的,需要理论加实际工作经验了,但大部分还是书本上有的。比如去年考的安装测试要点、单元测试路径、圈复杂度计算、性能测试等。51Testing软件测试网5w`aB$Rzo5o8k
    我的体会是只要备考充分加上一些工作经验还是比较好过的,也有人说去年的试题比较简单,不知道是不是。

    软件评测师和测试工程师的区别
    O'fp2~`111426从字面理解上,评测就是测试+评价,以测为主,测完后再加上评价。个人理解,软件评测师只是一个考试的名称、资格的名称,而对应到实际工作中,仍然是测试工程师。并且,好像国外也没有评测师这一叫法?中国特色?

    获取证书之后
    s u9P du vT;D MDg111426通过了考试获取证书之后必须每3年到教育办公室(名字记不清了)进行登记,登记时需要出示继续教育证明。意思是通过考试之后每n(n>=1)年还要参加继续教育才行。这个比较麻烦。另外软件评测师只是中级职称,之后我们就要继续向高级职称的考试(信息系统项目管理师、系统分析师、系统架构设计师)挑战了,呵呵。

    最后祝大家顺利通过考试,到时来这里给我报个喜,^_^!

  • [转]一位前辈工程师职业发展的忠告

    2007-05-16 10:13:29Digest 1

    [1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望 51Testing软件测试网2mM t sY
    成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨
    tY'\$oa7]111426迹。从哪个行业入手,逐渐对该行业深入了解,不要频繁跳槽,特别是不要为了一点工资
    3_y Q3umA s,?111426而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会,以后
    w^uib0r~^1F111426钱根本不是问题。频繁地动荡不是上策,最后你对哪个行业都没有摸透,永远是新手! 51Testing软件测试网3h4Ep Qy:f:h3F

    +haU(G!QL @q{o111426[2]可以做技术,切不可沉湎于技术。千万不可一门心思钻研技术!给自己很大压力,如果 51Testing软件测试网1E%~/u-\T9e|W
    你的心思全部放在这上面,那么注定你将成为孔乙己一类的人物!适可而止为之,因为技 51Testing软件测试网n.L"m^nb8Qc
    术只不过是你今后前途的支柱之一,而且还不是最大的支柱,除非你只愿意到老还是个工
    @A/Nx|i2_#tL G111426程师! 51Testing软件测试网t|YJC9?*SQ&h
    51Testing软件测试网*l1VV3BfXG
    [3]不要去做技术高手,只去做综合素质高手!在企业里混,我们时常瞧不起某人,说他“
    VV~MJ j6h2d|9r111426什么都不懂,凭啥拿那么多钱,凭啥升官!”这是普遍的典型的工程师的迂腐之言。8051 51Testing软件测试网)G/{b5^.J8MJF!V
    很牛吗?人家能上去必然有他的本事,而且是你没有的本事。你想想,老板搞经营那么多
    "Y:vzG.b t\111426年,难道见识不如你这个新兵?人家或许善于管理,善于领会老板意图,善于部门协调等 51Testing软件测试网 B z\u D Yi zR'e
    等。因此务必培养自己多方面的能力,包括管理,亲和力,察言观色能力,攻关能力等, 51Testing软件测试网8tg1@ lSpp
    要成为综合素质的高手,则前途无量,否则只能躲在角落看示波器!技术以外的技能才是 51Testing软件测试网]]*V/PB^2? C v
    更重要的本事!!从古到今,美国日本,一律如此!
    .\5SQTwv)Y11142651Testing软件测试网9?)x+]]:bg m
    [4]多交社会三教九流的朋友!不要只和工程师交往,认为有共同语言,其实更重要的是和
    K C)y u]_ aU111426其他类人物交往,如果你希望有朝一日当老板或高层管理,那么你整日面对的就是这些人
    3v&n J9wZ n-w111426。了解他们的经历,思维习惯,爱好,学习他们处理问题的模式,了解社会各个角落的现 51Testing软件测试网m4U0W^%p5[
    象和问题,这是以后发展的巨大的本钱,没有这些以后就会笨手笨脚,跌跌撞撞,遇到重
    X3c? f3I s9d-XG111426重困难,交不少学费,成功的概率大大降低! 51Testing软件测试网 r2Jb&m#gp?@4`

    -K1_7rJ?$p(MR111426[5]知识涉猎不一定专,但一定要广!多看看其他方面的书,金融,财会,进出口,税务, 51Testing软件测试网wUC%X/SI)o!|
    法律等等,为以后做一些积累,以后的用处会更大!会少交许多学费!!
    ;w'[ dR^111426
    5B_8MR.B2K oWe4u1Z111426[6]抓住时机向技术管理或市场销售方面的转变!要想有前途就不能一直搞开发,适当时候 51Testing软件测试网j6LRr g-}%{]
    要转变为管理或销售,前途会更大,以前搞技术也没有白搞,以后还用得着。搞管理可以 51Testing软件测试网]$rp e{
    培养自己的领导能力,搞销售可以培养自己的市场概念和思维,同时为自己以后发展积累
    #Q{1SfI!|+l-g111426庞大的人脉!应该说这才是前途的真正支柱!!! 51Testing软件测试网Tu+_{4F4iSNS
    51Testing软件测试网G Ae!E4}
    [7]逐渐克服自己的心里弱点和性格缺陷!多疑,敏感,天真(贬义,并不可爱),犹豫不
    n F5y P8] J G9d111426决,胆怯,多虑,脸皮太薄,心不够黑,教条式思维。。。这些工程师普遍存在的性格弱
    8rEE&s b)M.K|111426点必须改变!很难吗?只在床上想一想当然不可能,去帮朋友守一个月地摊,包准有效果
    d!X"xwB#Q&R-y;Ga111426,去实践,而不要只想!不克服这些缺点,一切不可能,甚至连项目经理都当不好--尽管
    S)WgZ5Q%r.~111426你可能技术不错!
    #d Ss(M\Zdl111426[8]工作的同时要为以后做准备!建立自己的工作环境!及早为自己配置一个工作环境,装 51Testing软件测试网"hMUm2p/DiU#O*xA
    备电脑,示波器(可以买个二手的),仿真器,编程器等,业余可以接点活,一方面接触 51Testing软件测试网bg7}9k w5F$k+}*D
    市场,培养市场感觉,同时也积累资金,更重要的是准备自己的产品,咱搞技术的没有钱
    _Z8D~ y/hg Y7Es111426,只有技术,技术的代表不是学历和证书,而是产品,拿出象样的产品,就可技术转让或 51Testing软件测试网^w&|q/JD
    与人合作搞企业!先把东西准备好,等待机会,否则,有了机会也抓不住! 51Testing软件测试网]`yyK'ib.S

    .^t P\Ws @111426[9]要学会善于推销自己!不仅要能干,还要能说,能写,善于利用一切机会推销自己,树 51Testing软件测试网0Z"V8~M5b cWA+{i
    立自己的品牌形象,很必要!要创造条件让别人了解自己,不然老板怎么知道你能干?外 51Testing软件测试网O7vkM8H ?*J
    面的投资人怎么相信你?提早把自己推销出去,机会自然会来找你!搞个个人主页是个好 51Testing软件测试网'Y*lr A8j4F+C
    注意!!特别是培养自己在行业的名气,有了名气,高薪机会自不在话下,更重要的是有 51Testing软件测试网 }9F&Wy/EU
    合作的机会...
    Z.mEM7hMk111426
    )H+x4W `Y111426[10]该出手时便出手!永远不可能有100%把握!!!条件差不多就要大胆去干,去闯出自
    /MKC0Nd6W Z?X2L111426己的事业,不要犹豫,不要彷徨,干了不一定成功,但至少为下一次冲击积累了经验,不 51Testing软件测试网(k|K3r2f5Hq J&_R(o
    干永远没出息,而且要干成必然要经历失败。不经历风雨,怎么见彩虹,没有人能随随便
    N R(l[n111426便成功

  • LoadRunner SP考前部分复习资料

    2007-05-16 10:00:34

    1. Which of the following information are considered relevant when gathering system
    usage for a performance test? There are two answers.
    a. System architecture
    b. Business processes
    c. Application modules about to be unit-tested
    d. Financial data such as general ledger and P&L statements
    2. There are three main criteria to determine which business processes to select for per-
    formance testing. What are these criteria?
    3. Each business process takes a certain amount of time to complete. Under ideal condi-
    tions, you determine this amount of time as ________________________
    4. You want to determine how many users are active on a Web site during a twenty-four
    hour period. What type of diagram can you use to map the business processes and the
    volume of each across a fixed time line?
    5. How many transactions will need to run per minute if a load test has to run for two
    hours with 5000 users, assuming an average transaction length of five minutes?
    6. This value represents the number of users performing business processes on the appli-
    cation during the busiest time frame of an atypical day (e.g. holiday). What do you call
    this value?
    7. Write a quantifiable performance test objective given the following information
    Maximum number of concurrent users at peak time: 6000
    Business Process: Update Totals
    Preferred response time range: 5 to 7 seconds
    Core LoadRunner and Virtual User Generator (VuGen)
    1. What is a Load Test?
    2. What is an Integration Test?
    3. What are the LoadRunner Components and what role does each play in creating a
    performance test?
    4. General Vuser Functions:
    Transactions are defined and measured in a Vuser scrīpt using which two functions?
    5. What is ThinkTime?
    6. Create a Vuser scrīpt where the value of lr_think_time is parameterized. The value of
    thinktime should be displayed as an output message in the execution log.
    7. What is correlation?
    Correlation Activity:
    This exercise requires internet access.
    Application: Mercury Tours
    URL: http://newtours.mercuryinteractive.com
    Vuser Recording Settings:
    Recording should be HTML-based
    Correlation during recording should be turned off
    Advanced recording should be turned off
    General Vuser Settings:
    Save correlation information during replay
    Show only differences that appear in action
    Download images on Snapshots viewer
    HTML comparison: for scanning differences
    Record the application startup
    Record User Actions:
    1. Sign in to the Mercury Tours Web site as jojo with the password bean.
    2. Enter the flight information to the FLIGHT FINDER page.
    Accept the defaults for all input fields except the following listed below (round-trip
    flight, 1 passenger, economy class, etc)
    Departing From: San Francisco
    Arriving In: New York
    3. Click the CONTINUE button.
    4. Accept the first departing flight in the list.
    By default, the first available flight is selected for each direction when the SELECT
    FLIGHT page appears.
    5. Select the last (4th) return flight in the list.
    6. Click the CONTINUE button on the SELECT FLIGHT page.
    7. Purchase the selected flight.
    Enter the passenger and credit card information in the BOOK A FLIGHT page. Use the
    data supplied below:
    First Name: Joseph
    Last Name: Smith
    Number: 783921045786
    8. Click the SECURE PURCHASE button on the BOOK A FLIGHT page.
    9. Verify that the Flight Confirmation page appeared.
    10. In the browser, click Sign-Off and wait for the Sign-On page to appear. Stop record-
    ing.
    Vuser Requirements:
    Save the Vuser scrīpt twice.
    In one of the scrīpts, parameterize the fields “fromPort” and “toPort” as type, file,
    sequential using the following data:
    Depart                 Arrive
    San Francisco      New York
    Seattle                  Frankfurt
    Sydney                  London
    Zurich                   Acapulco
    The scrīpt should play back correctly.
    Questions:
    What were the errors found in the Vuser scrīpt?
    How did you correct the errors?
     
     
    smallfish


    Performance Test Planning
    1. A B
    2. Mission-critical, heavy throughput, dynamic content
    3. Preferred response time
    4. Task Distribution Diagram
    5. 1000 transactions per minute
    6. Peak load
    7. The Update Totals transaction time should be seven seconds or less during peak hours
    for 6000 concurrent users.
    Core Technology and Navigation


    1. A load test is a short-term test of system performance under typical real-world condi-
    tions using critical business processes.

    2.
    3. Controller - the administrative center for creating, maintaining, executing and moni-
    toring scenarios. Scenarios have a .lrs extension
    LoadRunner Generators - Machines that emulate user volume and locally stores load
    test results until the scenario completes running, then the results are transferred to
    the results file specified.
    LoadRunner Analysis - Processes the results from the scenario run. Results files have
    a .lrr extension. After the results are processed by the LR Analysis tool, the results
    files have a .lra extension.
    Virtual User Generator - records Vuser scrīpts that emulate the steps of real users
    using the application under test
    4. lr_start_transaction
    lr_end transaction
    5. ThinkTime is a measure of time that a real user takes to pause between the execution
    of steps.
    6. A sample snippet of code that parameterizes the value of thinktime and outputs the
    value to the execution log:
    //Save the string value of the parameter to an INT variable
    int yzf = atoi(lr_eval_string(“{param1}”);

    lr_think_time(yzf);
    lr_output_message (“The parameter value is %s”, lr_eval_string(“{param1}”));
    7. Correlation is the method of capturing values in a scrīpt as a result of dynamic data
    passed from server to the client and back. The values are saved in a LoadRunner
    parameter and is reused instead of the original re corded value.

    8. Correlation Activity:
    First error is in the basic scrīpt. On the list of available flights, even if the first listed
    flight is selected by default in the Departing From table, you still need to record
    clickin on it for the value to be captured and correlated when the cities are parameter-
    ized.
    When the departing and arrival cities were parameterized, errors occured during the
    run because the flight information changes depending on the selected departing and
    arrival cities. An auto-scan corrected the errors by placing the appropriate
    web_reg_save_param statements in two correlations found, Blue Skies and United
    flight details.
     

     

  • 软件测试的14种类型

    2007-05-16 09:25:46Digest 2

    软件测试是指使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别。本文主要描述软件测试的类型。

    1 数据和数据库完整性测试

    数据与数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试。
    数据库完整性原即:
    主码完整性:主码不能为空;
    外码完整性:外码必须等于对应的主码或者为空。
    数据合理性指数据在数据库中的类型,长度,索引等是否建的比较合理。
    在项目名称中,数据库和数据库进程应作为一个子系统来进行测试。在测试这些子系统时,不应将测试对象的用户界面用作数据的接口。对于数据库管理系统 (DBMS),还需要进行深入的研究,以确定可以支1持测试的工具和技术。

    比如,有两张表:部门和员工。部门中有部门编号,部门名称,部门经理等字段,主码为部门编号;员工表中有员工编号,员工所属部门编号,员工名称,员工类型等字段,主码为员工编号,外码为员工所属部门编号,对应部门表。如果在某条部门记录中部门编号或员工记录员工编号为空,他就违反主码完整性原则。如果某个员工所属部门的编号为##,但是##在部门编号中确找不到,这就违反外码完整性原则。
    员工类型如下定义:0:职工,1:职员,2:实习生。但数据类型为Int,我们都知道Int占有4个字节,如果定义成char(1).就比原来节约空间。


    2 白盒测试

    白盒测试是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。白盒测试分为动态白盒测试和静态白盒测试
    2.1 静态白盒测试
    利用眼睛,浏览代码,凭借经验,找出代码中的错误或者代码中不符合书写规范的地方。比如,代码规范中规定,函数必须为动宾结构。而黑盒测试发现一个函数定义如下:
    Function NameGet(){
    ….
    }
    这是属于不符合开发规范的错误。
    有这样一段代码:
    if (i<0) & (i>=0)

    这段代码交集为整个数轴,IF语句没有必要
    I=0;
    while(I>100){
    J=J+100;
    T=J*PI;
    }
    在循环体内没有I的增加,bug产生。

    2.2 动态白盒测试
    利用开发工具中的调式工具进行测试。比如一段代码有4个分支,输入4组不同的测试数据使4组分支都可以走通而且结果必须正确。
    看一段代码
    if(I<0){
    P1
    }else{
    P2
    }
    在调试中输入I=-1,P1程序段通过, P2程序段未通过,属于动态黑盒测试的缺陷

    3.功能测试

    功能测试指测试软件各个功能模块是否正确,逻辑是否正确。
    对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求。这种测试的目标是核实数据的接受、处理和检索是否正确,以及业务规则的实施是否恰当。此类测试基于黑盒技术,该技术通过图形用户界面 (GUI) 与应用程序进行交互,并对交互的输出或结果进行分析,以此来核实应用程序及其内部进程。功能测试的主要参考为类似于功能说明书之类的文档。
    比如一个对电子商务系统,前台用户浏览商品-放入购物车-进入结账台,后台处理订单,配货,付款,发货,这一系列流程必须正确无误的走通,不能存在任何的错误。

    4.UI测试

    UI测试指测试用户界面的风格是否满足客户要求,文字是否正确,页面美工是否好看,文字,图片组合是否完美,背景是否美观,操作是否友好等等
    用户界面 (UI) 测试用于核实用户与软件之间的交互。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。另外,UI 测试还可确保 UI 中的对象按照预期的方式运行,并符合公司或行业的标准。包括用户友好性,人性化,易操作性测试。UI测试比较主观,与测试人员的喜好有关
    比如:页面基调颜色刺眼;用户登入页面比较难于找到,文字中出现错别字,页面图片范围太广等都属于UI测试中的缺陷,但是这些缺陷都不太严重。

    5.性能测试

    性能测试主要测试软件测试的性能,包括负载测试,强度测试,数据库容量测试,基准测试以及基准测试
    5.1负载测试
    负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。
    在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
    比如,在B/S结构中用户并发量测试就是属于负载测试的用户,可以使用webload工具,模拟上百人客户同时访问网站,看系统响应时间,处理速度如何?
    5.2强度测试
    强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。这类测试往往可以书写系统要求的软硬件水平要求。
    实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。
    比如:一个系统在内存366M下可以正常运行,但是降低到258M下不可以运行,告诉内存不足,这个系统对内存的要求就是366M。
    5.3数据库容量测试
    数据库容量测试指通过存储过程往数据库表中插入一定数量的数据,看看相关页面是否能够及时显示数据。
    数据库容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。例如,如果测试对象正在为生成一份报表而处理一组数据库记录,那么容量测试就会使用一个大型的测试数据库,检验该软件是否正常运行并生成了正确的报表。做这种测试通常通过书写存储过程向数据库某个表中插入一定数量的记录,计算相关页面的调用时间。
    比如,在电子商务系统中,通过insert customer 往user表中插入10 000数据,看其是否可以正常显示顾客信息列表页面,如果要求达到最多可以处理100 000个客户,但是顾客信息列表页面不能够在规定的时间内显示出来,就需要调整程序中的SQL查询语句;如果在规定的时间内显示出来,可以将用户数分别提高到20 000 , 50 000, 100 000进行测试。
    5.4基准测试
    基准测试与已知现有的系统进行比较,主要检验是否与类似的产品具有竞争性的一种测试。
    如果你要开发一套财务系统软件并且你已经获得用友财务系统的性能等数据,你可以测试你这套系统,看看哪些地方比用友财务系统好,哪些地方差?以便改进自己的系统,也可为产品广告提供数据。
    5.5竞争测试
    软件竞争使用各种资源(数据纪录,内存等),看他与其他相关系统对资源的争夺能力。比如:一台机器上即安装您的财务系统,又安装用友财务系统。当CPU占有率下降后,看看是否能够强过用友财务系统,而是自己的系统能够正常运行?

    6. 安全性和访问控制测试

    安全性和访问控制测试侧重于安全性的两个关键方面:
    应用程序级别的安全性,包括对数据或业务功能的访问
    系统级别的安全性,包括对系统的登录或远程访问。
    6.1应用程序级别的安全性
    可确保:在预期的安全性情况下,主角只能访问特定的功能或用例,或者只能访问有限的数据。例如,可能会允许所有人输入数据,创建新账户,但只有管理员才能删除这些数据或账户。如果具有数据级别的安全性,测试就可确保“用户类型一”能够看到所有客户消息(包括财务数据),而“用户二”只能看见同一客户的统计数据。
    比如B/S系统,不通过登入页面,直接输入URL,看其是否能够进入系统?
    6.2系统级别的安全性
    可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问。
    比如输入管理员账户,检查其密码是否容易猜取,或者可以从数据库中获得?

    7.故障转移和恢复测试

    故障转移和恢复测试指当主机软硬件发生灾难时候,备份机器是否能够正常启动,使系统是否可以正常运行,这对于电信,银行等领域的软件是十分重要的。
    故障转移和恢复测试可确保测试对象能成功完成故障转移,并能从导致意外数据损失或数据完整性破坏的各种硬件、软件或网络故障中恢复。
    故障转移测试可确保:对于必须持续运行的系统,一旦发生故障,备用系统就将不失时机地“顶替”发生故障的系统,以避免丢失任何数据或事务。
    恢复测试是一种对抗性的测试过程。在这种测试中,将把应用程序或系统置于极端的条件下(或者是模拟的极端条件下),以产生故障(例如设备输入/输出 (I/O) 故障或无效的数据库指针和关健字)。然后调用恢复进程并监测和检查应用程序和系统,核实应用程序或系统和数据已得到了正确的恢复。一定要注意主备定时备份
    比如电信系统,突然主机程序发生死机,备份机器是否能够启动,使系统能够正常运行,从而不影响用户打电话?

    8.配置测试

    又叫兼容性测试。配置测试核实测试对象在不同的软件和硬件配置中的运行情况。在大多数生产环境中,客户机工作站、网络连接和数据库服务器的具体硬件规格会有所不同。客户机工作站可能会安装不同的软件例如,应用程序、驱动程序等而且在任何时候,都可能运行许多不同的软件组合,从而占用不同的资源。(如浏览器版本,操作系统版本等)
    下面列出主要配置测试
    8.1浏览器兼容性
    测试软件在不同产商的浏览器下是否能够正确显示与运行;
    比如测试IE,Natscape浏览器下是否可以运行这套软件?
    8.2操作系统兼容性
    测试软件在不同操作系统下是否能够正确显示与运行;
    比如测试WINDOWS98,WINDOWS 2000,WINDOWS XP,LINU, UNIX下是否可以运行这套软件?
    8.3硬件兼容性
    测试与硬件密切相关的软件产品与其他硬件产品的兼容性,比如该软件是少在并口设备中的,测试同时使用其他并口设备,系统是否可以正确使用.
    比如在INTER,舒龙CPU芯片下系统是否能够正常运行?
    这样的测试必须建立测试实验室,在各种环境下进行测试。

    9.安装测试

    安装测试有两个目的。第一个目的是确保该软件在正常情况和异常情况的不同条件下: 例如,进行首次安装、升级、完整的或自定义的安装_都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。第二个目的是核实软件在安装后可立即正常运行。这通常是指运行大量为功能测试制定的测试。
    安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。

    10.多语种测试

    又称本地化测试,是指为各个地方开发产品的测试,如英文版,中文版等等,包括程序是否能够正常运行,界面是否符合当地习俗,快捷键是否正常起作用等等,特别测试在A语言环境下运行B语言软件(比如在英文win98下试图运行中文版的程序),出现现象是否正常。
    本地化测试还要考虑:
    l 当语言从A翻译到B,字符长度变化是否影响页面效果。比如中文软件中有个按键叫“看广告”,翻译到英文版本中为 “View advertisement”可能影响页面的美观程度
    l 要考虑同一单词在各个国家的不同意思,比如football在英文中为足球,而美国人使用中可能理解为美式橄榄球。
    l 要考虑各个国家的民族习惯,比如龙个美国中被理解邪恶的象征,但翻译到中国,中国人认为为吉祥的象征。

    11.文字测试

    文字测试测试软件中是否拼写正确,是否易懂,不存在二义性,没有语法错误;文字与内容是否有出入等等,包括图片文字。
    比如:“比如,请输入正确的证件号码!”何谓正确的证件号码,证件可以为身份证,驾驶证,也可为军官证,如果改为“请输入正确的身份证号码!”用户就比较容易理解了。

    12.分辨率测试

    测试在不同分辨率下,界面的美观程度,分为800*600,1024*768,1152*864,1280*768,1280*1024,1200*1600大小字体下测试。一个好的软件要有一个极佳的分辨率,而在其他分辨率下也都能可以运行。

    13发布测试

    主要在产品发布前对一些附带产品,比如说明书,广告稿等进行测试

    13.1说明书测试
    主要为语言检查,功能检查,图片检查
    语言检查:检查说明书语言是否正确,用词是否易于理解;
    功能检查:功能是否描述完全,或者描述了并没有的功能等;
    图片检查::检查图片是否正确
    13.2宣传材料测试
    主要测试产品中的附带的宣传材料中的语言,描述功能,图片
    13.3帮助文件测试
    帮助文件是否正确,易懂,是否人性化。最好能够提供检索功能。
    13.4广告用语
    产品出公司前的广告材料文字,功能,图片,人性化的检查

    14 文档审核测试

    文档审核测试目前越来越引起人们的重视,软件质量不是检查出来的,而是融进软件开发中来。前置软件测试发越来越受到重视。请看一个资料:

    文档审核测试主要包括需求文档测试,设计文档测试,为前置软件测试测试中的一部分。

    14.1需求文档测试

    主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现;

    14.2设计文档测试

    测试设计是否符合全部需求以及设计是否合理。

    总结

    据美国软件质量安全中心2000年对美国一百家知名的软件厂商统计,得出这样一个结论:软件缺陷在开发前期发现比在开发后期发现资金,人力上节约90%;软件缺陷在推向市场前发现比在推出后发现资金,人力上节约90%。所以说软件的缺陷应该尽早发现。不是所有的软件都要进行任何类型的软件测试的,可以根据产品的具体情况进行组装测试不同的类型。

    参考文献
    《Rational统一过程模型》
    《软件测试》
  • 如何从测试员转型为测试管理人员

    2007-05-15 13:52:36

    如果你是测试员或是高级测试员,有志转向管理发展,那么需要加强以下内容,至少要做到几点:

    1. 测试计划的编写(要结合测试的项目,能以此来控制和确定测试所需人员,设备及时间来管理测试时间)

    2. 要熟悉BUG跟踪工具及软件测试流程.(如: TD, Bugzilla, CQ等)

    3. 要熟悉配置管理工具. (如: CVS, VSS等)

    4. 要熟悉自动化工具.(例如:WinRunner, QTP, Robot, RFT, Automation等,能结合录制完的脚本编写代

    码)

    5. 要熟悉压力及性能测试工具.(例如: LoadRunner, webload, silkperformance等,能结合相关数据,分

    析出性能瓶颈)

    6. 要熟悉或精通一门语言. (例如: Java, C++)

    7. 要熟悉数据库.(例如: Oracle, DB2, SQLServer, MySQL)

    8. 要熟悉主流操作系统. (例如: HP Unix, IBM AIX, Sun Solaris, Red Hat Linux, SuSE Linux,

    Windows)

    9. 能用英文流利的和老外交流以及往来Email.

    10. 语言表达能力强,表达问题清晰明了.

    11. 沟通能力强,能和上级/开发经理很好的达成测试相关/BUG事宜.

    12. 学习技术的能力要强,能快速上手一个新的技术.

    13. 乐于与人交流.

  • 对于无法再现的bug如何再现的一点思路

    2007-05-15 12:57:27Digest 2

     从标题来看大家可能会觉得晕,这里说到的不可复现是指这些Bug有时出现,有时候不出现。相信大家在测试过程中肯定遇到过这种Bug,不少这种不可复现的Bug定位起来非常困难,可能很长时间都不能得到解决。能否复现这些不可复现的Bug成为大家关注的一个话题,最近国外的测试专家James Bach、Jonathan Kohl等对这个话题进行了一些探讨,这里把他们的一些思路理出来和大家分享。
          要想复现不可复现的Bug,需要先提到一个概念就是ET(Exploring Test),也就是探索式测试,这种测试方法是由James Bach首先提出来的,在所掌握的被测对象的信息不是很充分的情况下,这是一种很有效的测试方法.
          在给大家阐述如何复现不可复现的Bug的思路之前,先说说为什么要复现这些不可复现的Bug。对于整个项目或者产品而言,如果这些不可复现的Bug是很严重的Bug,比如导致系统崩溃等,如果不能及时、准确的定位和解决,最终发布出来的软件到达用户手中后,一旦出现势必会影响软件已经公司在用户心中的形象,严重的会“迫使”用户选择竞争对手的产品,这些显然都是公司所不愿看到的。而对于测试人员而言,出现了这些不可复现的Bug,实际上是一次很好的锻炼和提高机会,如果只是提交缺陷报告将这个大皮球踢给开发人员,不仅丧失了一次提高测试水平的机会,还有可能破坏和开发人员之间的关系。
          现在进入正题。当出现不可复现的Bug时,大家可以从以下五个方面来进行考虑:
    1、被测对象的版本信息
          我测试的到底是哪个版本,这主要是有两个作用:一是确认我测试的是正式的软件版本,如果不是就先记录下该问题,然后选择正式的版本进行测试(开发人员基于尝试的一次非正规的修改可能会导致不可复现的Bug);二是可以和其它版本进行对比,如果其它的版本没有类似的问题,就可以去对比这两个版本之间的区别。
    2、环境
          这里的环境是指出现不可复现的Bug时所对应的测试环境等,比如测试所用的计算机,如果出现不可复现的Bug,那我换一台机器是不是还会出现类似的问题,也就是说通过环境的改变来进一步搜集不可复现Bug的相关信息。
    3、模式
          这里的模式是指我对这个Bug如何出现的一个理解,先给这个Bug设定一个模式,比如是不是数据库通信中断,然后再进行测试,收集更多的信息去修改和完善这个模式,这样不断进行,最终直到Bug能完全复现为止,这个时候只要使用这个模式就可以复现出Bug了。
    4、人
          这里提到的人有两个含义:一是测试是由人来进行的,人的操作、人的思维方式会有不同,通过分析这些信息也有可能找到这些不可复现的Bug的蛛丝马迹;二是想复现不可复现的Bug,往往需要多个人之间的相互协作,比如测试人员、开发人员等,通过大家的沟通和协作就能更容易去复现了。
    5、测试工具
          通过一些debug工具或者log工具等搜集内存等信息,根据这些信息来进行分析,找出不同信息之间的共同点,比如某一块内存始终都会被改写等,通过这种方式来去复现Bug。
          上面的五个方面都是和ET的思想紧密相关的,通过不断的测试和不断的信息收集和分析,逐步的把模糊的、不确定的测试变成清晰的、确定的测试,这样就能复现那些不能复现的Bug了。考虑信息时可以从以上五个方面来进行考虑。
925/5<12345
Open Toolbar