2014年上半年信息系统管理工程师下午试题分析与解答
试题一(共15分)
阅读以下有关信息系统开发方面的叙述,回答问题1至问题3,将答案填入答题纸的对应栏内。 【说明】
信息系统测试是信息系统开发过程中的一个非常重要的环节,主要包括软件测试、硬件测试和网络测试三个部分,它是保证系统质量和可靠性的关键步骤,是对系统开发过程中的系统分析、系统设计与实施的最后审查。
在软件测试中,逻辑覆盖法可分为语句覆盖、判定覆盖、路径覆盖等方法。其中:语句覆盖的含义是设计若干个测试用例,使得程序中的每条语句至少执行一次;判定覆盖也称为分支覆盖,其含义是设计若干个测试用例,使得程序中的每个判断的取真分支和取假分支至少执行一次;路径覆盖的含义是设计足够多的测试用例,使被测程序中的所有可能路径至少执行一次。 【问题1】
一个规范化的测试过程如图1-1所示。请将图1-1所示的测试过程中的(1)-(3)处的内容填入答题纸上对应位置。
【问题2】
信息系统测试应包括软件测试、硬件测试和网络测试三个部分,请简要描述这三个部分需要做的工作。 【问题3】
程序M流程如图1-2所示,假设设计的测试用例及覆盖路径如下: ①输入数据的数据A=3,B=0,X=3(覆盖路径acd) ②输入数据的数据A=2,B=0,X=6(覆盖路径ace) ③输入数据的数据A=2,B=1,X=6(覆盖路径abe) ④输入数据的数据A=1,B=1,X=1(覆盖路径abd)
(1)采用语句覆盖法应选用(a),判定覆盖法应选用(b),路径覆盖法应选用(c)测试用例。
(2)就图1-2所示的程序M流程简要说明语句覆盖和判定覆盖会存在什么问题。 试题一分析 【问题1】
一个规范化的测试过程的活动主要包括:拟定测试计划、编制测试大纲、设计和生成测试用例、实施用例、生成测试报告。 【问题2】
信息系统测试应包括软件测试、硬件测试和玩过测试三个部分。
(1)硬件测试,在进行信息系统开发中,通常需要根据项目的情况选购硬件设备。在设备到货后,应在各个相关厂商配合下进行初验测试,初验通过后将与软件、网络等一起进行系统测试。初验测试所做的工作主要如下:
①配置检测,检测是否按合同提供了相应的配置,如系统软件、硬盘、内存、CPU等的配置情况;
②硬件设备的外观检查,所有设备及配件开箱后,外观有无明显划痕和损伤。这些包括计算机主机、工作站、磁带库、磁盘机柜和存储设备等;
③硬件测试,首先进行加电检测,观看运行状态是否正常,有无报警及屏幕有无乱码提示和死机现象,是否能进入正常提示状态。然后进行操作检测,用一些常用的命令来检测机器是否能执行命令,结果是否正常,例如,文件拷贝、显示文件内容、建立目录等。最后检查是否提供了相关的工具,如帮助系统、系统管理工具等。
通过以上测试,要求形成相应的硬件测试报告,在测试报告中包含测试步骤、测试过程和测试的结论等。
(2)网络测试,如果信息系统不是单机,需要在局域网或广域网运行,按合同会选购网络设备,在网络设备到货后,应在各个相关厂商配合下进行初验测试。初验通过后将与软件、硬件等一起进行系统测试。初验测试所做的工作主要有:
①网络设备的外观检查,所有设备及配件开箱后,外观有无明显划痕和损伤,这些包括交换机、路由器等;
②硬件测试,进行加电检测,观看交换机、路由器等工作状态是否正常,有无错误和报警; ③网络连通测试,检测网络是否连通,可以用PING、TELNET、FTP等命令来检查。 通过以上测试,要求形成相应的网络测试报告,在测试报告中包含测试步骤、测试过程和测试的结论等。
③软件测试,软件测试实际上分成四步:单元测试、组装测试、确认测试和系统测试,它们按顺序进行。首先是单元测试(unit testing),对源程序中的每一个程序单元进行测试,验证每个模块是否满足系统设计说明书的要求。组装测试(integrating testing)是将已测试过的模块组合成子系统,重点测试各模块之间的接口和联系。确认测试(validation testing)是对整个软件进行验收,根据系统分析说明书来考查软件是否满足要求。系统测试(system testing)是将软件、硬件、网络等系统的各个部分连接起来,对整个系统进行总的功能、性能等方面的测试。 【问题3】
(1)逻辑覆盖主要用于模块的测试,它以程序内部的逻辑结构为基础,考虑测试数据执行(覆盖)程序的逻辑程度。根据覆盖情况的不同,逻辑覆盖可分为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重覆盖、路径覆盖、循环覆盖。以图1-2所示的程度段为例。这个一个非常简单的程序,共有2个判断,4条不同的路径:acd、ace、abe和abd。
空(d)语句覆盖(statement coverage)是通过设计若干个检测用例,使得程序中的每条语
句至少执行一次。根据题意,本题只要选择能通过路径ace的测试用例A=2,B=0,X=6即可。
空(e)判定覆盖(decision coverage)也称为分支覆盖,就是设计若干个检测用例,使得程序中的每个判断的取真分支和取假分支至少执行一次。对本题只要选择能通过路径acd和abe(或abd和ace)的测试用例:A=3,B=0,X=3(覆盖acd);A=2,B=1,X=6(覆盖abe)即可。 空(f)路径覆盖就是设计足够多的测试示例,使被测程序中的所有可能路径至少执行一次。对上面的例子来说,可以选择这样的4组测试数据来覆盖程序中的所有路径。覆盖abd测试数据:A=1,B=1,X=1;覆盖ace测试数据:A=2,B=0,X=3;覆盖acd测试数据:A=3,B=0,X=3;覆盖abe测试数据:A=2,B=1,X=1。 (2)语句覆盖对程序的逻辑覆盖程度很少,如果把每一个判断语句中的“AND”错写成“OR”,或把第二个语句中的“OR”错写成“AND”,用上面的测试用例是不能发现问题的。这说明语句覆盖有可能发现不了判断条件中算法出现的错误。判定覆盖比语句覆盖的程度稍强,因为如果通过了每个分支的测试,则各语句也都执行了。但仍有不足,如上述的测试用例不能发现把第二个判断语句中的X>1错写成X<1的错误。所以,判定覆盖还不能保证一定能查出判断条件中的错误。因此,需要更强的逻辑覆盖来检查内部条件的错误。 试题一参考答案 【问题1】
(1)编制测试大纲;
(2)设计和生成测试用例; (3)实施测试。 【问题2】
(1)硬件测试所做的主要工作有配置检测、硬件设备的外观检查、硬件测试(加电测试、操作测试),形成相应的硬件测试报告。 (2)网络测试所做的主要工作有网络设备的外观检查(如:交换机、路由器等)、硬件测试、网络连通测试,形成相应的网络测试报告。
(3)软件测试主要是对软件的模块、功能等进行测试,软件测试通常分为单元测试、组装测试、确认测试和系统测试四步进行。 【问题3】 (1)(a)②
(b)①③或②④ (c)①②③④
(2)语句覆盖有可能发现不了判断条件中算法出现的错误,例如,将判断语句中的“AND”错写成“OR”,或把第二个语句中的“OR”错写成“AND”,用上面的测试用例是不能发现问题的。判定覆盖还不能保证一定能查出判断条件中的错误,例如给出的测试用例不能发现把第二个判断语句中的X>1错写成X<1的错误。 试题二(共15分)
阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】
某酒店拟构建一个信息系统以方便酒店管理及客房预订业务运作活动,该系统的部分功能初步需求分析的结果如下所述:
(1)酒店有多个部门,部门信息包括部门号、部门名称、经理、电话和邮箱。每个部门可以有多名员工,每名员工只属于一个部门,每个部门有一名经理,负责管理本部门的事务和员工。