201111评测下午真题
第 1 题
阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。
【说明】
场景法是黑盒测试中重要的测试用例设计方法,通过场景描述业务流程(包括基本流(基本业务流程)和备选流(分支业务流程)),设计测试用例遍历软件系统功能,验证其正确性。
下面是对电子不停车收费系统(ETC)的基本流和备选流的描述。
【问题1】
使用场景法设计测试用例,指出所涉及到的基本流和备选流。基本流用A字母编号表示,备选流用表1-2中对应的字母编号表示。
例如:
T01:A
T02:A.B
【问题2】
针对问题1设计的测试用例,依次将初次读取车辆信息、最终读取车辆信息、账户号码、账户余额和账户状态等信息填入下述测试用例表中。表中行代表各个测试用例,列代表测试用例的输入值,用V表示有效数据元素,用I表示无效数据元素,n/a表示不适用,例如T01表示“成功通过”用例。
答案与解析
- 试题难度:较难
- 知识点:下午题>黑盒测试
- 试题答案:
【问题1】(场景顺序可以任意,重复内容不计分)
共包括8个场景:
T01:A (收费停车)
T02:A、B (停车时,读取车辆信息出错)
T03:A、C (停车时,账户不存在)
T04:A、D (停车时,账户余额不足)
T05:A、E (停车时,账户状态异常)
T06:A、B、C (重复读才取得正确车辆信息,但出现账户不存在异常)
T07:A、B、D (重复读才取得正确车辆信息,但出现账户余额不足)
T08:A、B、E
【问题2】
- 试题解析:
本题主要考查黑盒测试中的场景法测试用例设计。
【问题1】
采用场景法来设计测试用例,其基本思想和依据是站在用户的角度上检测软件的功能,发现软件的错误。
基本流是指经过用例的最简单的路径(无任何差错,程序从开始直接执行到结束)。备选流是指:一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中;也可以起源于另一个备选流;或者终止用例而不再加入到基本流中(一般是各种错误情况)。
使用场景法设计测试用例的基本步骤如下:
(1)根据规格说明,描述出程序的基本流及各项备选流。
(2)根据基本流和备选流确定场景。
(3)对每一个场景生成相应的测试用例,可以采用矩阵或决策表来确定和管理测试用例。
(4)对生成的测试用例进行复审,去掉多余或等价的测试用例,然后确定实际测试数据。
在本题中,根据题目中已经确定的基本流与备选流,可以设计场景,每个场景覆盖一种在该案例中事件的不同触发顺序与处理结果形成的事件流,最后得出所有的测试用例。下面就根据电子不停车收费系统(ETC)的业务流程列出所有的测试用例和用例中所涉及的基本流与备选流。
T01:A (收费停车)
T02:A、B (停车时,读取车辆信息出错)
T03:A、C (停车时,账户不存在)
T04:A、D (停车时,账户余额不足)
T05:A、E (停车时,账户状态异常)
T06:A、B、C (重复读才取得正确车辆信息,但出现账户不存在异常)
T07:A、B、D (重复读才取得正确车辆信息,但出现账户余额不足)
T08:A、B、E (重复读才取得正确车辆信息,但账户状态异常)
【问题2】
本题要求我们根据问题1设计的测试用例来完成本题的问题,那么根据题目的意思,用例T03存在账户不存在的异常,那么初次读取车辆信息是正常的,应该填V,而在该用例下,无需重复读取车辆信息,因此最终读取车辆信息应填n/a,当读取账户号码时出现异常,因此该空是无效信息(I),而在该用例下,没有进行账户余额和账户状态的判定,因此这两空都填不适用。同样的道理我们可以完成用例T04和T05。
在用例T06中,他是重复读才读取到了车辆的信息,因此初次读取车辆信息不正常应该填I,然后重复读取车辆信息才读取到车辆信息,因此最终读取车辆信息应填V,当读取账户号码时出现异常,因此该空是无效信息(I),而在该用例下,没有进行账户余额和账户状态的判定,因此这两空都填不适用(n/a)。
同样的道理可以完成用例T07和T08。具体见参考答案。
第 2 题
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
逻辑覆盖法是设计白盒测试用例的主要方法之一,它通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
gz_open (const char *mode)
{
char * p = (char*)mode; //1
char fmode[4];
char * m = fmode;
char smode = ’\0’;
char level = ’\0’;
int strategy = 0;
do {
if (*p == ’r’) //2
smode = ’r’; //3
if (*p >= ’0’&& *p <= ’9’) { //4,5
level = *p - ’0’; //6
} else if (*p == ’f’) { //7
strategy = 1; //8
} else { //9
*m++ = *p;
}
*p++; //10
}while (m != fmode + sizeof(fmode)); //11
} //12
【问题1】
请给出满足100%DC(判定覆盖)所需的逻辑条件。
【问题2】
请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
【问题3】
假设函数gz_open的参数mode是由26个小写字母’a’-’z’、数字’0’-’9’以及空格组成的字符串,请使用基本路径测试法构造1个测试用例,使之覆盖所有基本路径。
答案与解析
- 试题难度:较难
- 知识点:下午题>白盒测试
- 试题答案:
本题主要考查的是逻辑覆盖的相关内容。
【问题1】
判定覆盖即分支覆盖,对于每一个判定,都至少要取得一次真值和假值。在本题中,我们从程序中不难找出所有的逻辑判断语句,很显然在题目给出的程序中,包含的逻辑判断语句有:*p == ’r’、*p >= ’0’&& *p <= ’9’、*p == ’f’及m != fmode + sizeof(fmode)。那么首先是判定*p == ’r’,应分别设置其为真与为假的情况;然后是*p >= ’0’&& *p <= ’9’,设置其为真,然后设置其为假,在为假的情况下,出现判定*p == ’f’,分别设计其为真和假;最后是m != fmode + sizeof(fmode),分别设置真、假即可。
【问题2】
根据题目程序的意思,我们可以知道其控制流图如下所示:而它的V(G)=6。
【问题3】
本问题考查白盒测试用例设计方法中的基本路径法,涉及到的知识点包括:根据控制流程图和环路复杂度设计测试用例。注意环路复杂度只是测试用例数的上限,
本题中程序的环路复杂度为6 ,因此测试用例上限为6,但本题程序比较特殊,只需要一个测试用例即可实现。例如构造一个6个字符构成的字符串(设为x,y,z,u,v,w6个字符),使得每个字符覆盖一条基本路径即可。其中x=’r’,y=’f’,z属于[’0’ - ’9’],u<’0’,v>’9’并且V!=‘f’,w任意,这6个字符可以任意排列 - 试题解析:
本题主要考查的是逻辑覆盖的相关内容。
【问题1】
判定覆盖即分支覆盖,对于每一个判定,都至少要取得一次真值和假值。在本题中,我们从程序中不难找出所有的逻辑判断语句,很显然在题目给出的程序中,包含的逻辑判断语句有:*p == ’r’、*p >= ’0’&& *p <= ’9’、*p == ’f’及m != fmode + sizeof(fmode)。那么首先是判定*p == ’r’,应分别设置其为真与为假的情况;然后是*p >= ’0’&& *p <= ’9’,设置其为真,然后设置其为假,在为假的情况下,出现判定*p == ’f’,分别设计其为真和假;最后是m != fmode + sizeof(fmode),分别设置真、假即可。
【问题2】
根据题目程序的意思,我们可以知道其控制流图如下所示:而它的V(G)=6。
【问题3】
本问题考查白盒测试用例设计方法中的基本路径法,涉及到的知识点包括:根据控制流程图和环路复杂度设计测试用例。注意环路复杂度只是测试用例数的上限,
本题中程序的环路复杂度为6 ,因此测试用例上限为6,但本题程序比较特殊,只需要一个测试用例即可实现。例如构造一个6个字符构成的字符串(设为x,y,z,u,v,w6个字符),使得每个字符覆盖一条基本路径即可。其中x=’r’,y=’f’,z属于[’0’ - ’9’],u<’0’,v>’9’并且V!=‘f’,w任意,这6个字符可以任意排列
第 3 题
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
在CNCERT/CC(国家计算机网络应急技术处理协调中心)处理的安全事件中,国内政府机构和重要信息系统部门的网页篡改类事件数量增长迅速。2011年6月的某一周,中国境内仅网页被篡改的网站就有660个,其中政府网站105个。网站内容复制容易,转载速度快,后果难以预料,网页如果被篡改,将直接危害该网站的利益,尤其是门户网站作为政府发布重要新闻、重大方针政策、法规和企业信息等的重要渠道,一旦被黑客篡改,将严重损害政府和企业形象。
从网站页面被篡改的角度来看,存在两种攻击的可能,一种是网站被入侵,也就是说网站页面确实被篡改了,另外一种是网站被劫持,这种情况下网站的页面实际上并没有被篡改,但是攻击者劫持了网络访问并发送欺骗页面给来访者,进而造成页面被篡改的表象。
【问题1】(6分)
通过入侵从而进行网页篡改的可能途径有哪些?这些途径各对应安全系统防护体系的哪个层次?
【问题2】(6分)
针对网页被篡改的问题,从技术层面看有哪些防范措施?
【问题3】(3分)
现在出现了一些基于监测与恢复的页面防篡改系统,这类防篡改系统应具备哪些基本功能?
答案与解析
- 试题难度:较难
- 知识点:下午题>安全测试
- 试题答案:
【问题1】
要入侵来篡改网页,主要途径有如下几种:
(1)通过操作系统、网络服务、数据库漏洞来获取主机的控制权,从而达到篡改网页的目的,这一类对应的安全防护体系层次是平台安全。
(2)通过猜测或者破解密码来获取管理员的权限,从而达到篡改网页的目的,这一类对应的安全防护体系层次是数据安全。
(3)通过Web漏洞或者设计缺陷来进行攻击入侵,从而达到篡改网页的目的,这一类对应的安全防护体系层次是应用安全。
【问题2】
针对网页被篡改的问题,我们要防御主要就是依据入侵的途径来设置防御措施,从技术层面看,主要有的防范措施如下:(1)给服务器打上最新的安全补丁,防止入侵者利用漏洞来攻击。
(2)封闭未用但开放的网络服务端口。
(3)合理设计网站程序并编写安全代码。
(4)设置复杂的管理员密码,防止入侵者破解。
(5)安装专门的网站防火墙和入侵检测系统,防止入侵。
(6)设置合适的网站访问权限。
【问题3】
基于监测与恢复的页面防篡改系统应具备的基本功能有:自动监测、自动备份与恢复、自动报警和区分合法更新和非法更改等功能。 - 试题解析:
【问题1】
本题主要考查入侵的途径及这些途径对应的安全系统防护体系。要入侵来篡改网页,主要途径有如下几种:
(1)通过操作系统、网络服务、数据库漏洞来获取主机的控制权,从而达到篡改网页的目的,这一类对应的安全防护体系层次是平台安全。
(2)通过猜测或者破解密码来获取管理员的权限,从而达到篡改网页的目的,这一类对应的安全防护体系层次是数据安全。
(3)通过Web漏洞或者设计缺陷来进行攻击入侵,从而达到篡改网页的目的,这一类对应的安全防护体系层次是应用安全。
【问题2】
针对网页被篡改的问题,我们要防御主要就是依据入侵的途径来设置防御措施,从技术层面看,主要有的防范措施如下:(1)给服务器打上最新的安全补丁,防止入侵者利用漏洞来攻击。
(2)封闭未用但开放的网络服务端口。
(3)合理设计网站程序并编写安全代码。
(4)设置复杂的管理员密码,防止入侵者破解。
(5)安装专门的网站防火墙和入侵检测系统,防止入侵。
(6)设置合适的网站访问权限。
【问题3】
基于监测与恢复的页面防篡改系统应具备的基本功能有:自动监测、自动备份与恢复、自动报警和区分合法更新和非法更改等功能。
第 4 题
阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某公司开发基于Web的招聘系统,采用Java EE系统架构。系统提供用户注册、职位设置、接受应聘者的申请和评估录取应聘者等功能。接受申请主要是验证应聘者提交的姓名、地址、照片、简历和预申请职位等信息的完整性,并发送给应聘者相关通知;评估应聘者主要是根据部门经理设置所需职位,对已经受理的申请进行资格审查,发送给应聘者录用与否的相关决策信息。
系统要支持:
(1)在50个用户并发时,主要功能的处理能力至少要达到5个请求/秒,平均数据量12KB/请求;
(2)用户可以通过PC、移动设备上的不同操作系统和浏览器进行访问。
【问题1】(3分)
简要叙述招聘系统链接测试的主要测试内容。
【问题2】(4分)
简要叙述为了达到系统要支持的(2),需要进行哪些兼容性测试,并设计一个兼容性测试矩阵实例。
【问题3】(3分)
在满足系统要支持的(1)时,计算系统的通信吞吐量。
【问题4】(5分)
系统实现时,对用户的登录判断所用的动态SQL语句如下:
“SELECT * FROM Users WHERE User_Name = ‘” + strUserName + “‘ AND Password = ‘” + strPassword + “’;”
该SQL语句是否能防止SQL注入?请设计一个测试用例,以测试SQL注入,并说明防止SQL注入的方法。
答案与解析
- 试题难度:较难
- 知识点:下午题>web测试
- 试题答案:
【问题1】
本题主要考查链接测试的内容。招聘系统链接测试的主要测试内容有:
(1)每个链接是否链接到了目标页面上。
(2)被链接的页面是否存在,是否是一个错误页面等
(3)系统中是否存在孤立的页面,即没有被链接的页面。
【问题2】
要使系统达到用户可以通过PC、移动设备上的不同操作系统和浏览器进行访问,那么就需要对平台、浏览器进行兼容性测试,那么在设置的兼容性测试矩阵肯定要包含平台和浏览器的内容,矩阵的行可以是不同的平台,而列是不同的浏览器,同时平台和浏览器都是合理的,还要提醒出移动的元素在里面即可。
【问题3】
系统要支持在50个用户并发时,主要功能的处理能力至少要达到5个请求/秒,平均每个请求的数据量是12KB,那么要达到这个目标,系统的通信吞吐量=系统的并发用户数*单位时间的在线事务数(请求数)*每个请求的平均数据流=50*5*12KB=3000KB。
【问题4】
SQL注入是黑客攻击数据库的一种常用方法,其实就是通过把SQL命令插入到Web表单或页面请求的查询字符串中提交,最终达到欺骗服务器执行恶意的SQL命令,来获得某些他想得知的数据。
本题中给出的SQL语句不能防止SQL注入,设置的这个测试用例只要包含SQL功能符号,然后使得SQL语句不符合原设计意图即可。例如,包含了“--”或“’”等,比如用例strUserName为Gui’--,而strPassword为Qin。那么整个语句为:SELECT * FROM Users WHERE User_Name = ‘Gui’-- AND Password = ‘Qin’ ;
防止SQL注入的有些方法主要有:拼接SQL之前先对特殊符合进行转义,使其不作为SQL的功能符合即可。 - 试题解析:
【问题1】
本题主要考查链接测试的内容。招聘系统链接测试的主要测试内容有:
(1)每个链接是否链接到了目标页面上。
(2)被链接的页面是否存在,是否是一个错误页面等
(3)系统中是否存在孤立的页面,即没有被链接的页面。
【问题2】
要使系统达到用户可以通过PC、移动设备上的不同操作系统和浏览器进行访问,那么就需要对平台、浏览器进行兼容性测试,那么在设置的兼容性测试矩阵肯定要包含平台和浏览器的内容,矩阵的行可以是不同的平台,而列是不同的浏览器,同时平台和浏览器都是合理的,还要提醒出移动的元素在里面即可。
【问题3】
系统要支持在50个用户并发时,主要功能的处理能力至少要达到5个请求/秒,平均每个请求的数据量是12KB,那么要达到这个目标,系统的通信吞吐量=系统的并发用户数*单位时间的在线事务数(请求数)*每个请求的平均数据流=50*5*12KB=3000KB。
【问题4】
SQL注入是黑客攻击数据库的一种常用方法,其实就是通过把SQL命令插入到Web表单或页面请求的查询字符串中提交,最终达到欺骗服务器执行恶意的SQL命令,来获得某些他想得知的数据。
本题中给出的SQL语句不能防止SQL注入,设置的这个测试用例只要包含SQL功能符号,然后使得SQL语句不符合原设计意图即可。例如,包含了“--”或“’”等,比如用例strUserName为Gui’--,而strPassword为Qin。那么整个语句为:SELECT * FROM Users WHERE User_Name = ‘Gui’-- AND Password = ‘Qin’ ;
防止SQL注入的有些方法主要有:拼接SQL之前先对特殊符合进行转义,使其不作为SQL的功能符合即可。
第 5 题
阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某数据管理系统有两个重要模块:数据接收模块和数据查询模块。数据接收模块按照一定的时间间隔从多个不同数据源接收数据进行一定的预处理后存入数据库中;数据查询模块根据用户请求从数据库中查询相应的数据并返回给用户。现需要对该系统执行负载压力测试。
该数据管理系统的性能要求为:
(1)交易执行成功率100%;
(2)接收间隔最小为200ms;
(3)查询响应时间在3s以内;
(4)查询功能支持至少10个并发用户;
(5)数据接收模块CPU利用率不超过40%;
(6)数据查询模块CPU利用率不超过20%。
【问题1】(3分)
简述负载压力测试的主要目的。
【问题2】(3分)
对该数据管理系统进行性能测试时,主要关注哪些性能指标?
【问题3】(6分)
该系统数据接收模块和数据查询模块的测试结果如表5-1、5-2所示,请分别指出测试结果是否满足性能需求并说明原因。
【问题4】(3分)
根据问题3的测试结果,试分析该系统的可能瓶颈。
答案与解析
- 试题难度:较难
- 知识点:下午题>负载压力测试
- 试题答案:
【问题1】
本题主要考查压力测试的目的。
压力测试模拟系统的性能极限点来执行性能测试,发现系统的性能瓶颈点。其目的为:在真实环境下检查系统性能、评估系统性能以及服务等级的满足情况;预见系统负载压力承受力;分析系统瓶颈来优化系统。
【问题2】
对该数据管理系统进行性能测试时,主要关注的性能指标有并发用户数、响应时间及资源利用率情况(CPU、内存等)。
【问题3】
数据接收模块的性能测试结果不满足指标,从表5-1中,我们可以看出,当接收间隔为200ms时,存数据库交易成功率为80%,不满足交易执行成功率100%的要求;当接收间隔为200ms时,CPU的利用率为43.8%,不满足数据接收模块CPU利用率不超过40%的要求。
数据查询模块的性能测试结果满足指标,从表5-2中,我们可以看出,题目要求的查询响应时间在3s以内,查询功能支持至少10个并发用户,数据查询模块CPU利用率不超过20%的要求都满足。而在并发用户为15时,查询响应时间超过了3s不能算作不满足。
【问题4】
本题主要是根据问题3的测试结果来判定系统可能的瓶颈,那么从问题3我们可以知道数据接收模块的性能测试结果不满足指标,因此瓶颈就可能存在于数据接收模块,而在数据接收模板可能存储的瓶颈有:服务器CPU性能不足;数据库设计不好或优化不够;没有一个好的并行策略。 - 试题解析:
【问题1】
本题主要考查压力测试的目的。
压力测试模拟系统的性能极限点来执行性能测试,发现系统的性能瓶颈点。其目的为:在真实环境下检查系统性能、评估系统性能以及服务等级的满足情况;预见系统负载压力承受力;分析系统瓶颈来优化系统。
【问题2】
对该数据管理系统进行性能测试时,主要关注的性能指标有并发用户数、响应时间及资源利用率情况(CPU、内存等)。
【问题3】
数据接收模块的性能测试结果不满足指标,从表5-1中,我们可以看出,当接收间隔为200ms时,存数据库交易成功率为80%,不满足交易执行成功率100%的要求;当接收间隔为200ms时,CPU的利用率为43.8%,不满足数据接收模块CPU利用率不超过40%的要求。
数据查询模块的性能测试结果满足指标,从表5-2中,我们可以看出,题目要求的查询响应时间在3s以内,查询功能支持至少10个并发用户,数据查询模块CPU利用率不超过20%的要求都满足。而在并发用户为15时,查询响应时间超过了3s不能算作不满足。
【问题4】
本题主要是根据问题3的测试结果来判定系统可能的瓶颈,那么从问题3我们可以知道数据接收模块的性能测试结果不满足指标,因此瓶颈就可能存在于数据接收模块,而在数据接收模板可能存储的瓶颈有:服务器CPU性能不足;数据库设计不好或优化不够;没有一个好的并行策略。