logo资料库

2010下半年软件评测师考试真题及答案-下午卷.doc

第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
资料共18页,剩余部分请下载后查看
2010 下半年软件评测师考试真题及答案-下午卷 试题一 【说明】 场景法是黑盒测试中重要的测试用例设计方法。目前多数软件系统都是用事件触发来控 制业务流程,事件触发时的情景便形成了场景,场景的不同触发顺序构成用例。场景法通过 场景描述业务流程(包括基本流(基本流程)和备选流(分支流程)),设计用例遍历软件系 统功能,验证其正确性。 图 1-1 描述了简化的中心层、省市层、地区层三级的“公文流转”业务流程,表 1-1 描述了省市层(图 1-1 阴影部分)业务的基本流和备选流。 公文的状态包括:已下发、未下发、已接收、未接收。 表 1-1 省市层业务流 业务流 编号 描述 说明 基本流 A 中心公文下发 省市层接收中心公文,并下发到地区层 B 新建公文直接下发 省市层新建公文后,即下发到地区层 C 保存新建公文 对保存的省市层新建公文,适当时下发到地区层 备选流 D 修改新建公文 修改省市层新建的公文 E 删除新建公文 删除省市层新建的公文 【问题 1】
用表 1-1 中表述的基本流和备选流,使用场景法设计测试场景。基本流和备选流用表 1-1 中对应的字母编号表示。 【问题 2】 下表给出了测试用例名称,请将表中的输入条件和预期输出补充完整。 编号 用例名称 输入条件 预期输出 1 2 3 4 5 省市层接收公文 省市层新建并保存公文 省市层新建并下发公文 省市层修改公文 省市层删除公文
答案: 【问题 1】 本题共包括 5 个场景: 1.A 2.B 3.B、E 4.B、C、D(C 和 D 可以互换) 5.B、C、E 【问题 2】 编号 输入条件 预期输出 1 2 3 4 5 中心已经下发公文 省市层能够查看到已接收的公文,在中心层能够查 看到已经下发的公文 无 无 省市层可查看到新增加的公文,公文状态为未下发 省市层可查看到新增加的公文,公文状态为已下 发,在地区层能够查看到已经下发的公文 存在未下发的公文 搜索公文状态为未下发的公文,可以修改相关内 容,并可保存结果 存在未下发的公文 搜索公文状态为未下发的公文,可以删除 解析: 【问题 1】 本题主要考查黑盒测试中的场景法测试用例设计。 采用场景法来设计测试用例,其基本思想和依据是站在用户的角度上检测软件的功能, 发现软件的错误。 基本流是指经过用例的最简单的路径(无任何差错,程序从开始直接执行到结束)。备 选流是指:一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中; 也可以起源于另一个备选流;或者终止用例而不再加入到基本流中(一般是各种错误情况)。 使用场景法设计测试用例的基本步骤如下: (1)根据规格说明,描述出程序的基本流及各项备选流。 (2)根据基本流和备选流确定场景。
(3)对每一个场景生成相应的测试用例,可以采用矩阵或决策表来确定和管理测试用 (4)对生成的测试用例进行复审,去掉多余或等价的测试用例,然后确定实际测试数 例。 据。 在本题中,根据题目中已经确定的基本流与备选流,可以设计场景,每个场景覆盖一种 在该案例中事件的不同触发顺序与处理结果形成的事件流,最后得出所有的测试用例。下面 就根据“公文流转”业务流程图列出是所有的测试用例和用例中所涉及的基本流与备选流。 用例 1:A (中心公文下发) 用例 2:B (新建省市公文直接下发) 用例 3:B、C (新建省市公文,然后保存) 用例 4:B、C、D(C、D 可互换) (新建省市公文,修改并保存后下发) 用例 5:B、C、E (新建省市公文保存,但接着被删除) 【问题 2】 本题考查我们对用例输入和预期输出的理解。下面我们来逐个分析给出的用例。 省市层接收公文用例的输入,从“公文流转”业务流程图中我们可以看出,省市层接收 公文用例的输入是中心已经下发的公文,而其预期输出应该是能够让省市层查看已接收的公 文,而且在中心层也要能够查看到已经下发的公文。 省市层新建并保存公文, 从“公文流转”业务流程图中我们可以看出, 省市层新建公 文并没用输入,而其输入应该是省市层可查看到新增加的公文,而且公文状态为未下发。 省市层新建并下发公文,同样也没用输入,其输出应该是省市层可查看到新增加的公文, 与上一个用例不同的,公文状态为已下发,而且在地区层也应该能够查看到已经下发的公文。 省市层修改公文,从“公文流转”业务流程图中我们可以看出,其输入应该是未下发的公文, 而它的输出应该是修改未下发的公文的相关内容,并保存修改的结果。 省市层删除公文,从“公文流转”业务流程图中我们可以看出,其输入也应该是未下发 的公文,而它的输出应该是查找到未下发的公文并删除。
试题二 【说明】 某软件公司在研发一个城镇居民保险系统时,为了加快进度,测试工作在系统开发初步 完成之后开始并直接进行系统测试。测试工程师针对界面进行了功能测试。测试工程师和开 发工程师借助缺陷管理工具,交互进行测试与缺陷修复工作。测试期间发现系统的“文档审 批”功能出现严重缺陷,开发工程师认为修改难度大,经测试工程师认可后决定暂停修复该 缺陷,直到产品发布前,该缺陷在开发环境下被修复。随后,测试工程师在开发环境下针对 该缺陷执行了有关的用例,进行了回归测试。回归测试结束后,开发工程师在开发环境下对 产品直接打包发布。 【问题 1】 测试开展的时间是过早、过晚还是合适?说明理由。 【问题 2】 测试工程师功能测试的方法是否正确?若不正确,请陈述正确的方法;若正确,请说明 理由。 【问题 3】 该案例中对缺陷的管理有哪些不妥之处? 【问题 4】 开发工程师产品发布的做法是否正确?
答案: 【问题 1】 测试工作开展得太晚。(1 分) 测试工作应该覆盖需求分析、概要设计、详细设计、编码等前期阶段,而不应该在系统 开发初步完成后才开始。(2 分) 【问题 2】 测试人员功能测试的方法不正确。 系统功能测试应该追溯到用户需求,针对界面进行功能测试是错误的。 【问题 3】 (1)开发工程师无权决定是否延期或者暂停修改某一缺陷; (2)测试工程师认可暂停修复缺陷的决定是不合理的; (3)测试工程师应该跟踪缺陷状态,直至确定修改后关闭缺陷,才是完成了测试任务; (4)回归测试应该执行所有的用例,不是仅仅执行与该缺陷有关的用例; (5)产品发布前,应该对发现的缺陷进行评审; (6)应该分析缺陷修复情况之后才可以发布产品。 【问题 4】 产品最后由开发人员直接发布不合理。(1 分) (基线库中的产品应该是最后经过测试的。)实际最后发布的产品应该从产品库中提取。 (2 分) 解析: 【问题 1】 本题考查两个知识点: (1)测试工作与开发工作如何配合; (2)测试的对象包括哪些。 软件测试应该覆盖软件开发的需求分析、概要设计、详细设计、编码等前期阶段,在本 题中介绍说测试工作在系统开发初步完成之后开始并直接进行系统测试,这显然是测试开展 的太晚。 【问题 2】 本题考查功能测试的依据,正确的依据应该是需求规格说明书,而不是用户界面,因为
界面实现的功能是否正确的理解和表达了用户需求为不可知。 系统功能测试一般是依据需求说明书来进行的,要根据用户的需求来设计测试用例并进 行测试,在本题中,测试工程师只针对界面进行了功能测试,显然方法是不正确的。 【问题 3】 本题考査两个知识点: (1)缺陷管理的流程和 1R 责; (2)回归测试的概念。 软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差,其 结果是软件运行于某一特定条件时,将出现软件故障。软件缺陷一般被认为是“欠缺和不够 完备的地方”,主要是针对产品说明书而言的。因此测试工程师是无权决定是否延期或者暂 停修改某一缺陷,那么测试工程师认可暂停修复缺陷的决定是不合理的。 另外,回归测试应该执行所有的案例,不是仅仅执行与该缺陷有关的用例,而产品发布 前,应该对发现的缺陷进行评审,分析缺陷修复情况之后,才可以发布产品。因此该案例中 对缺陷的管理有哪些不妥之处主要有: (1)开发工程师无权决定是否延期或者暂停修改某一缺陷; (2)测试工程师认可暂停修复缺陷的决定是不合理的; (3)测试工程师应跟踪缺陷状态,直至确定修改后关闭缺陷,才是完成了测试任务; (4)回归测试应该执行所有的案例,不是仅仅执行与该缺陷有关的用例; (5)产品发布前,应该对发现的缺陷进行评审; (6)应该分析缺陷修复情况之后,才可以发布产品。 【问题 4】 本题考查配置管理的知识点。 软件产品的发布,应该从产品库中提取经过测试的产品发布,而不是由软件开发人员在 开发环境下对产品直接打包发布。
试题三 【说明】 逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现 程序的覆盖。针对以下由 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 (判定覆盖)所需的逻辑条件填入下表。 编号 100%DC 所需的逻辑条件 1 2 3 4 【问题 3】 请画出上述程序的控制流图,并计算其控制流图的环路复杂度 V(G)。假设函数 getit 的参数 m 取值范围是 150
分享到:
收藏