201011评测下午真题

第 1 题

阅读下列说明,回答问题1至问题2,将解答填入答题纸的对应栏内。
【说明】
场景法是黑盒测试中重要的测试用例设计方法。目前多数软件系统都是用事件触发来控制业务流程,事件触发时的情景便形成了场景,场景的不同触发顺序构成用例。场景法通过场景描述业务流程(包括基本流(基本流程)和备选流(分支流程)),设计用例遍历软件系统功能,验证其正确性。
图1描述了简化的中心层、省市层、地区层三级的“公文流转”业务流程,表1描述了省市层(图1阴影部分)业务的基本流和备选流。
公文的状态包括:已下发、未下发、已接收、未接收。


图1 “公文流转”业务流程

【问题1】

用表1中表述的基本流和备选流,使用场景法设计测试场景。基本流和备选流用表1中对应的字母编号表示。

【问题2】
下表给出了测试用例名称,请将表中的输入条件和预期输出补充完整。

答案与解析

  • 试题难度:一般
  • 知识点:下午题>黑盒测试
  • 试题答案:

    【问题1】  
    共包括5个场景:
    1. A
    2. B
    3. B、C
    4. B、C、D(C和D可以互换)
    5. B、C、E
    【问题2】  

  • 试题解析:

    【问题1】
    采用场景法来设计测试用例,其基本思想和依据是站在用户的角度上检测软件的功能,发现软件的错误。
    基本流是指经过用例的最简单的路径(无任何差错,程序从开始直接执行到结束)。备选流是指:一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中;也可以起源于另一个备选流;或者终止用例而不再加入到基本流中(一般是各种错误情况)。
    使用场景法设计测试用例的基本步骤如下:
    (1)根据规格说明,描述出程序的基本流及各项备选流。
    (2)根据基本流和备选流确定场景。
    (3)对每一个场景生成相应的测试用例,可以采用矩阵或决策表来确定和管理测试用例。
    (4)对生成的测试用例进行复审,去掉多余或等价的测试用例,然后确定实际测试数据。
    在本题中,根据题目中已经确定的基本流与备选流,可以设计场景,每个场景覆盖一种在该案例中事件的不同触发顺序与处理结果形成的事件流,最后得出所有的测试用例。下面就根据“公文流转”业务流程图列出是所有的测试用例和用例中所涉及的基本流与备选流。
    用例1:A (中心公文下发)
    用例2:B (新建省市公文直接下发)
    用例3:B、C (新建省市公文,然后保存)
    用例4:B、C、D(C、D可互换) (新建省市公文,修改并保存后下发)
    用例5:B、C、E (新建省市公文保存,但接着被删除)
    【问题2】
    本题考查我们对用例输入和预期输出的理解。下面我们来逐个分析给出的用例。
    省市层接收公文用例的输入,从“公文流转”业务流程图中我们可以看出,省市层接收公文用例的输入是中心已经下发的公文,而其预期输出应该是能够让省市层查看已接收的公文,而且在中心层也要能够查看到已经下发的公文。
    省市层新建并保存公文, 从“公文流转”业务流程图中我们可以看出, 省市层新建公文并没用输入,而其输入应该是省市层可查看到新增加的公文,而且公文状态为未下发。
    省市层新建并下发公文,同样也没用输入,其输出应该是省市层可查看到新增加的公文,与上一个用例不同的,公文状态为已下发,而且在地区层也应该能够查看到已经下发的公文。
    省市层修改公文,从“公文流转”业务流程图中我们可以看出,其输入应该是未下发的公文,而它的输出应该是修改未下发的公文的相关内容,并保存修改的结果。
    省市层删除公文,从“公文流转”业务流程图中我们可以看出,其输入也应该是未下发的公文,而它的输出应该是查找到未下发的公文并删除。

第 2 题

阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某软件公司在研发一个城镇居民保险系统时,为了加快进度,测试工作在系统开发初步完成之后开始并直接进行系统测试。测试工程师针对界面进行了功能测试。测试工程师和开发工程师借助缺陷管理工具,交互进行测试与缺陷修复工作。测试期间发现系统的“文档审批”功能出现严重缺陷,开发工程师认为修改难度大,经测试工程师认可后决定暂停修复该缺陷,直到产品发布前,该缺陷在开发环境下被修复。随后,测试工程师在开发环境下针对该缺陷执行了有关的用例,进行了回归测试。回归测试结束后,开发工程师在开发环境下对产品直接打包发布。

【问题1】
测试开展的时间是过早、过晚还是合适?说明理由。
【问题2】
测试工程师功能测试的方法是否正确?若不正确,请陈述正确的方法;若正确,请说明理由。
【问题3】
该案例中对缺陷的管理有哪些不妥之处?
【问题4】
开发工程师产品发布的做法是否正确?

答案与解析

  • 试题难度:一般
  • 知识点:下午题>黑盒测试
  • 试题答案:

    【问题1】 
    测试工作开展得太晚。
    测试工作应该覆盖需求分析、概要设计、详细设计、编码等前期阶段,而不应该在系统开发初步完成后才开始。
    【问题2】  
    测试人员功能测试的方法不正确。
    系统功能测试应该追溯到用户需求,针对界面进行功能测试是错误的。
    【问题3】  
    (1)开发工程师无权决定是否延期或者暂停修改某一缺陷;
    (2)测试工程师认可暂停修复缺陷的决定是不合理的;
    (3)测试工程师应该跟踪缺陷状态,直至确定修改后关闭缺陷,才是完成了测试任务;
    (4)回归测试应该执行所有的案例,不是仅仅执行与该缺陷有关的用例;
    (5)产品发布前,应该对发现的缺陷进行评审;
    (6)应该分析缺陷修复情况之后,才可以发布产品。
    【问题4】  
    产品最后由开发人员直接发布不合理。
    (基线库中的产品应该是最后经过测试的)实际最后发布的产品应该从产品库中提取。

  • 试题解析:

    【问题1】
    软件测试应该覆盖软件开发的需求分析、概要设计、详细设计、编码等前期阶段,在本题中介绍说测试工作在系统开发初步完成之后开始并直接进行系统测试,这显然是测试开展的太晚。
    【问题2】
    系统功能测试一般是依据需求说明书来进行的,要根据用户的需求来设计测试用例并进行测试,在本题中,测试工程师只针对界面进行了功能测试,显然方法是不正确的。
    【问题3】
    软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差,其结果是软件运行于某一特定条件时,将出现软件故障。软件缺陷一般被认为是“欠缺和不够完备的地方”,主要是针对产品说明书而言的。因此测试工程师是无权决定是否延期或者暂停修改某一缺陷,那么测试工程师认可暂停修复缺陷的决定是不合理的。
    另外,回归测试应该执行所有的案例,不是仅仅执行与该缺陷有关的用例,而产品发布前,应该对发现的缺陷进行评审,分析缺陷修复情况之后,才可以发布产品。因此该案例中对缺陷的管理有哪些不妥之处主要有:
    (1)开发工程师无权决定是否延期或者暂停修改某一缺陷;
    (2)测试工程师认可暂停修复缺陷的决定是不合理的;
    (3)测试工程师应跟踪缺陷状态,直至确定修改后关闭缺陷,才是完成了测试任务;
    (4)回归测试应该执行所有的案例,不是仅仅执行与该缺陷有关的用例;
    (5)产品发布前,应该对发现的缺陷进行评审;
    (6)应该分析缺陷修复情况之后,才可以发布产品。
    【问题4】
    软件产品的发布,应该从产品库中提取经过测试的产品发布,而不是由软件开发人员在开发环境下对产品直接打包发布。

第 3 题

阅读下列说明,回答问题1至问题3,将解答或相应的编号填入答题纸的对应栏内。
【说明】
逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
getit( int m )
{
int i, k;
k = sqrt( m );
for ( i = 2; i <= k; i++ )
if ( m % i == 0 )   break;
if ( i >= k + 1 )
printf( “%d is a selected number\n”, m );
else
printf( “%d is not a selected number\n”, m );
}

【问题1】
请找出程序中所有的逻辑判断子语句。
【问题2】
请将满足100%DC(判定覆盖)所需的逻辑条件填入下表。

【问题3】
请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。假设函数getit的参数m取值范围是150 < m < 160,请使用基本路径测试法设计测试用例,将参数m的取值填入下表,使之满足基本路径覆盖要求。

答案与解析

  • 试题难度:较难
  • 知识点:下午题>白盒测试
  • 试题答案:

    【问题1】  
    逻辑判断子语句:
    i <= k
    m % i == 0
    i >= k + 1
    【问题2】  
    满足100%DC时所需的逻辑条件:
     
    【问题3】  
    控制流图:

    环路复杂度V(G)=4
    基本路径覆盖用例


  • 试题解析:

    本题主要考查的是逻辑覆盖的相关内容。
    【问题1】  
    本小题是要我们从程序中找出所有的逻辑判断语句,很显然在题目给出的程序中,包含的逻辑判断语句有:i<=k 、m%i==0 及i >= k + 1。这里提醒大家注意的是for语言中的逻辑判断条件。
    【问题2】  
    判定覆盖是指使得程序中的每一个分支都至少执行一次。
    在本题中,首先执行的for循环,而循环的逻辑判断是i<=k,那么我们就应设计一个用例i>k和用例i<=k,如果i>k,则循环体不执行,直接执行if条件语句,由于i>k,所以i >= k + 1肯定为真,接着执行相应的输出语句。
    如果i<=k,执行循环题,循环体中,又有一个逻辑判断,那么我们就应该设计用例m % i == 0和用例m % i ≠ 0,分别执行逻辑判断结果为真与为假的情况,如果该逻辑判断结果为真,执行break语言,直接结束循环。这个时候变量i<= k,那么第三个逻辑判断(i >= k + 1)的结果肯定为假;如果m % i ≠ 0,则第二个逻辑判断的结果为假,不执行break语言,直到循环结束,这个时候变量i>k,而第三个逻辑判断(i >= k + 1)的结果肯定为真。
        设置了这四个用例,很显然实现了100%的判定覆盖。
    【问题3】
        根据题目程序的意思,我们可以知道其控制流图如下所示:

    而它的V(G)=判定数+1=3+1=4。
    在150到160之间的数不能被2到12整除的数只有151和157,因此在设计的两个用例中,其中一个是151或157,而另一个是150到160之间的其他整数。

第 4 题

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
说明】
某大学暑假期间为教职员工开办了VPN远程接入服务,员工在校外通过登录界面输入用户名和口令后,就可以访问仅供本校师生使用的各类信息资源。为了实现信息隔离与访问控制,在校园网不同的网络区域之间部署了防火墙等相关设施。

问题1】(4分)
下图是VPN用户与数据库之间的网络拓扑结构图,请指明图中设备1、设备2、设备3、设备4是何种类型的网络设施。

[问题2] (4分)
通信加密的目的是什么?通信加密测试的基本方法有哪些?
[问题3] (4分)
为防止未授权用户通过反复猜测口令获得VPN使用权,从用户口令管理和网站登录控制两方面说明可以采取的应对措施。

答案与解析

  • 试题难度:较难
  • 知识点:下午题>安全测试
  • 试题答案:

    【问题1】(4分)
    设备1是防火墙
    设备2是交换机(或集线器)
    设备3是防火墙
    设备4是交换机(或集线器)
    【问题2】(4分)
    目的:保证数据在传输过程中数据的保密性(机密性)和一致性(完整性);
    基本方法:验证和侦听。
    【问题3】(4分)
    用户口令管理:口令长度、复杂度(特殊字符)、时效(定期更改);
    用户登录控制;多次登录延时、账户锁定、验证码。

  • 试题解析:

    【问题1】
    DMZ称为“隔离区”,也称为“非军事化区”,它是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区。这个缓冲区位于企业内部网络和外部网络之间的小网络区域内,在这个小网络区域内可以放置一些必须公开的服务器设施,如企业Web服务器、FTP服务器和论坛等。
    在这个防火墙方案中,包括两个防火墙:外部防火墙抵挡外部网络的攻击,并管理所有内部网络对DMZ的访问;内部防火墙管理DMZ对于内部网络的访问。
    从题目给出的网络拓扑图我们可以看出,设备1处应放置一个外部防火墙,而设备3处放置一个内部防火墙。设备2和设备4处很显然是为了使多个网络设备相连,可以使用交换机或集线器。
    【问题2】
    通信加密的目的是为了防止信息在传送的过程中被盗取,这里包括两层含义,一是信息即使被盗窃也很难被破译,即数据的保密性;二是防止数据传输过程中被非授权者修改或破坏,即数据的完整性。
    而对通信加密进行测试的方法有侦听和验证,侦听即网络监听,主要用来获取网络上传输的数据,因此这里需要侦听技术;而验证主要用来测试加密的信息是否正确。
    【问题3】
    为了防止未授权用户通过反复猜测口令获得VPN使用权,可以从用户口令管理和网站登录控制两方面入手。
    在用户口令管理方面,我们可以采取的措施有:增加口令的长度和复杂度,定期修改口令等。
    在用户登录控制方面,我们可以采取的措施有:多次登录延时、登陆次数限定、账户锁定、验证码等。

第 5 题

阅读下列说明,回答问题1至问题4,将解答或相应的编号填入答题纸的对应栏内。
【说明】
性能测试在系统质量保证中起重要作用。某项目组对一个电子政务平台系统执行了负载压力性能测试,重点评估其效率质量特性中的时间特性和资源利用性两个质量子特性。性能需求可以概括为:业务成功率达到100%;响应时间在8秒之内;服务器资源利用合理。测试环境逻辑部署图如下图。

【问题1】(4分)
请分别指出性能测试中负载测试与压力测试的目的。
【问题2】(6分)
请分别指出应用服务器和数据库服务器性能评价的关键指标。
【问题3】(3分)
该电子政务平台的“文档审核”业务的测试结果如下表,请具体说明测试结果是否满足性能需求。


【问题4】(5分)
如60用户并发执行“新立申请”业务的成功率为80%,应用服务器内存页交换速率为2000page in/s,数据库服务器CPU平均占用率达到100%。
请说明该业务的性能是否满足需求。
假设系统中间件和数据库软件配置正确,请指出系统可能存在的性能瓶颈?

答案与解析

  • 试题难度:一般
  • 知识点:下午题>负载压力测试
  • 试题答案:

    【问题1】(4分)
    (1)负载测试模拟系统真实使用环境执行性能测试,考核系统在日常业务运行和高峰期运行期间的性能是否满足需求。
    (2)压力测试模拟系统的性能极限点执行性能测试,用来发现系统的性能瓶颈点。
    【问题2】(6分)
    (1)应用服务器关键指标:操作系统指标、缓存状况、连接池、执行队列等。
    (2)数据库服务器关键指标:操作系统指标、缓存命中率、数据库进程占用的CPU时间、数据库进程使用的内存量、锁资源使用情况。
    【问题3】(3分)
    (1)40用户并发平均响应时间为21.4 秒,超过8秒,不满足需求;
    (2)40用户并发数据库服务器CPU平均占用率为91.4%,超过85%,不满足需求;
    (3)内存页交换速率Page in/s平均值为98.8,超过80,不满足需求。
    【问题4】(5分)
    (1)业务成功率(没有达到100%)、应用服务器内存页交换速率(大于80)、数据库服务器CPU平均占用率(大于85%)三个指标都不满足性能需求。
    (2)系统存在的性能瓶颈可能包括:
    a) 应用服务器物理内存不够。
    b) 数据库服务器的CPU性能不足。
    c) 数据库设计有问题或没有优化。

  • 试题解析:

    【问题1】
    本题主要考查负载测试和压力测试的基本知识。
    负载测试模拟系统真实使用环境执行性能测试,考核系统在日常业务运行和高峰期运行期间的性能是否满足需求。
    压力测试模拟系统的性能极限点执行性能测试,用来发现系统的性能瓶颈点。
    【问题2】
    性能测试的对象不同,其测试的主要指标也不相同,常见的性能测试指标有:操作系统指标,应用程序的性能指标等。
    在本题中,应用服务器是提供服务给客户端的,需同时供多个客户端访问,因此其主要指标应该包括操作系统指标、缓存状况、连接池、执行队列等。而数据库服务器主要用来处理查询或数据操作请求等,其主要的性能指标应该包括操作系统指标、缓存命中率、数据库进程占用的CPU时间、数据库进程使用的内存量、锁资源使用情况等。
    【问题3】
    在本题中,首先我们来看平均响应时间,其平均响应时间超过8s,则视为不合格,因此当有40个并发用户时,其平均响应时间为21.4 秒,不满足该系统的性能需求。
    接着我们来看CPU的使用情况,一般当CPU的利用率平均值持续达到85%以上时,表示服务器资源使用出现瓶颈,视为不合理,而在本题中,40用户并发时,数据库服务器CPU平均利用率为91.4%,超过了85%,因此不满足该系统的性能需求。
    再接着我们看来内存的使用情况,一般当内存页交换速率Page in/s的平均值超过80时,视为不合理,而在本题中,当40用户并发时,数据库服务器的内存页交换速率Page in/s平均值为98.8,超过了80,因此不满足该系统的性能需求。
    【问题4】
    在本题中,根据题目描述和问题3的分析,我们可知业务成功率(没有达到100%)、应用服务器内存页交换速率(大于80)、数据库服务器CPU平均占用率(大于85%)三个指标都不满足性能需求。
    根据前面我们找出的问题,可以知道系统存在的性能瓶颈为:
    (1)数据库服务器的CPU性能不够,才导致数据库服务器CPU平均占用率为100%。
    (2)应用服务器的内存不够,才导致应用服务器内存页交换速率为2000page in/s。
    (3)数据库的设计有问题或没有优化等。

results matching ""

    No results matching ""