|
|
【5-1】从供选择的答案中选出应填入下列( )中的字句。 软件测试的目的是( A )。为了提高测试的效率,应该( B )。使用白盒测试方法时,确定测试数据应根据( C )和指定的覆盖标准。与设计测试数据无关的文档是( D )。 软件的集成测试工作最好由( E )承担,以提高集成测试的效果。 供选择的答案: A. ① 评价软件的质量 ② 发现软件的错误 ③ 找出软件中的所有错误 ④ 证明软件是正确的 B. ① 随机地选取测试数据 ② 取一切可能的输入数据作为测试数据 ③ 在完成编码以后制定软件的测试计划 ④ 选择发现错误的可能性大的数据作为测试数据 C. ① 程序的内部逻辑 ② 程序的复杂程度 ③ 使用说明书 ④ 程序的功能 D. ① 该软件的设计人员 ② 程序的复杂程度 ③ 源程序 ④ 项目开发计划 E. ① 该软件的设计人员 ② 该软件开发组的负责人 ③ 该软件的编程人员 ④ 不属于该软件开发组的软件设计人员 【5-2】请从供选择的答案中选出应填入下列( )中的字句。 程序的三种基本控制结构是( A )。它们的共同点是( B )。结构化程序设计的一种基本方法是( C )。软件测试的目的是( D )。软件调试的目的是( E )。 供选择的答案: A. ① 过程,子程序,分程序 ② 顺序,条件,循环 ③ 递归,堆栈,队列 ④ 调用,返回,转移 B. ① 不能嵌套使用 ② 只能用来写简单的程序 ③ 已经用硬件实现 ④ 只有一个入口和一个出口 C. ① 筛选法 ② 递归法 ③ 归纳法 ④ 逐步求精法 D. ① 证明程序中没有错误 ② 发现程序中的错误 ③ 测量程序的动态特性 ④ 检查程序中的语法错误 E. ① 找出错误所在并改正之 ② 排除存在错误的可能性 ③ 对错误性质进行分类 ④ 统计出错的次数 【5-3】从下列关于软件测试的叙述中,选出5条正确的叙述。 (1) 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。 (2) 尽量用公共过程或子程序去代替重复的代码段。 (3) 测试是为了验证该软件已正确地实现了用户的要求。 (4) 对于连锁型分支结构,若有n个判定语句,则有2n条路径。 (5) 尽量采用复合的条件测试,以避免嵌套的分支结构。 (6) GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁。 (7) 发现错误多的程序模块,残留在模块中的错误也多。 (8) 黑盒测试方法中最有效的是因果图法。 (9) 在做程序的单元测试时,桩(存根)模块比驱动模块容易编写。 (10) 程序效率的提高主要应通过选择高效的算法来实现。 【5-4】从供选择的答案中选出同下列关于软件测试的各条叙述关系最密切的字句。 (1) 对可靠性要求很高的软件,例如操作系统,由第三者对源代码进行逐行检查。 (2) 已有的软件被改版时,由于受到变更的影响,改版前正常的功能可能发生异常,性能也可能下降。因此,对变更的软件进行测试是必要的。 (3) 在意识到被测试模块的内部结构或算法的情况下进行测试。 (4) 为了确认用户的需求,先做出系统的主要部分,提交给用户试用。 (5) 在测试具有层次结构的大型软件时,有一种方法是从上层模块开始,由上到下进行测试。此时,有必要用一些模块替代尚未测试过的下层模块。 供选择的答案: A E: ① 仿真器 ② 代码审查 ③ 模拟器 ④ 桩 ⑤ 驱动器 ⑥ 域测试 ⑦ 黑盒测试 ⑧ 原型 ⑨ 白盒测试 ⑩ 退化测试 【5-5】对小的程序进行穷举测试是可能的,用穷举测试能否保证程序是百分之百正确呢? 【5-6】在任何情况下单元测试都是可能的吗?都是需要的吗? 【5-7】从供选择的答案中选出应填入下面有关软件测试的叙述的( )内的正确答案。 软件测试方法可分为黑盒测试法和白盒测试法两种。 黑盒测试法是通过分析程序的( A )来设计测试用例的方法。除了测试程序外,它还适用于对( B )阶段的软件文档进行测试。 白盒测试法是根据程序的( C )来设计测试用例的方法。除了测试程序外,它也适用于对( D )阶段的软件文档进行测试。 白盒法测试程序时常按照给定的覆盖条件选取测试用例。( E )覆盖比( F )覆盖严格,它使得每一个判定的每一条分支至少经历一次。( G )覆盖既是判定覆盖,又是条件覆盖,但它并不保证使各种条件都能取到所有可能的值。( H )覆盖比其他条件都要严格,但它不能保证覆盖程序中的每一条路径。 单元测试一般以( I )为主,测试的依据是( J )。 供选择的答案: A, C:① 应用范围 ② 内部逻辑 ③ 功能 ④ 输入数据 B, D:① 编码 ② 软件详细设计 ③ 软件总体设计 ④ 需求分析 E, F, G, H:① 语句 ② 判定 ③ 条件 ④ 判定/条件 ⑤ 多重条件 ⑥ 路径 I:① 白盒法 ② 黑盒法 J:① 模块功能规格说明 ② 系统模块结构图 ③ 系统需求规格说明 【5-8】从供选择的答案中选出应该填入下列关于软件测试的叙述的( )内的正确答案。 软件测试中常用的静态分析方法是( A )和( B )。( B )用于检查模块或子程序间的调用是否正确。分析方法(白盒方法)中常用的方法是( C )方法。非分析方法(黑盒方法)中常用的方法是( D )方法和( E )方法。( E )方法根据输出对输入的依赖关系设计测试用例。 供选择的答案: A B: ① 引用分析 ② 算法分析 ③ 可靠性分析 ④ 效率分析 ⑤ 接口分析 ⑥ 操作分析 C ~ E: ① 路径测试 ② 等价类 ③ 因果图 ④ 归纳测试 ⑤ 综合测试 ⑥ 追踪 ⑦ 深度优先 ⑧ 调试 ⑨ 相对图 【5-9】下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。算法中用到两个操作,一是取某数组元素V的关键码操作getKey ( ),一是交换两数组元素内容的操作Swap( ):: void SelectSort ( datalist & list ) { //对表list.V[0]到list.V[n-1]进行排序, n是表当前长度。 for ( int i = 0; i < list.n-1; i++ ) { int k = i; //在list.V.key到list.V[n-1].key中找具有最小关键码的对象 for ( int j = i+1; j < list.n; j++) if ( list.V[j].getKey ( ) < list.V[k].getKey ( ) ) k = j; //当前具最小关键码的对象 if ( k != i ) Swap ( list.V, list.V[k] ); //交换 } } (1) 试计算此程序段的McCabe复杂性; (2) 用基本路径覆盖法给出测试路径; (3) 为各测试路径设计测试用例。 【5-10】根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。 “一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。” 【5-11】设要对一个自动饮料售货机软件进行黑盒测试。该软件的规格说明如下: “有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。” (1) 试利用因果图法,建立该软件的因果图; (2) 设计测试该软件的全部测试用例。 【5-12】对一个长度为100,000条指令的程序进行测试,记录下来的数据如下: 测试开始, 发现错误个数为0; 经过160小时的测试, 累计改正100个错误, 此时, MTTF = 0.4小时; 又经过160小时的测试, 累计改正300个错误, 此时, MTTF = 2小时; (1) 估计程序中固有的错误总数; (2) 为使MTTF达到10小时, 必须测试和调试这个程序多长时间? (3) 给出MTTF与测试时间t之间的函数关系。 【5-13】应该由谁来进行确认测试?是软件开发者还是软件用户?为什么?
【5-1】A. ② B. ④ C. ① D. ④ E. ④ 【5-2】A. ② B. ④ C. ④ D. ② E. ① 【5-3】正确的叙述有(4)、(5)、(6)、(7)、(10) 【5-4】(1) ② (2) ⑩ (3) ⑨ (4) ⑧ (5) ④ 【5-5】对小程序进行穷举测试,不见得能保证程序百分之百正确。所谓穷举测试是拿所有可能的输入数据来作为测试用例(黑盒测试),或覆盖程序中所有可能的路径(白盒测试)。对于小程序来说,实际上并不能真正作到穷举测试 【5-6】单元测试又称模块测试,是针对软件设计的最小单位─程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。 单元测试是在编码阶段完成的,每编写出一个程序模块,就开始做这个模块的单元测试,所以只要采用模块化方法开发软件,单元测试都是必需的。它可由编写程序的人来完成。因为它需要根据程序的内部结构设计测试用例,对于那些不了解程序内部细节的人,这种测试无法进行。
【5-7】A. ③ B. ④ C. ② D. ② E. ② F. ① G. ④ H. ⑤ I. ① J. ① 【5-8】A. ① B. ⑤ C. ① D. ② E. ③ 【5-9】图太复杂,不好贴 【5-10】图太复杂,不好贴 【5-11】图太复杂,不好贴 【5-12】图太复杂,不好贴 【5-13在对照需求做有效性测试和软件配置审查时,是由软件开发者在开发环境下进行的测试。而接下来做验收测试时则以用户为主。软件开发人员和QA(质量保证)人员也应参加。由用户参加设计测试用例,使用用户界面输入测试数据,并分析测试的输出结果。一般使用生产中的实际数据进行测试。 如果软件是为多个客户开发的,则需要进行α测试和β测试。α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。软件在一个自然设置状态下使用。开发者坐在用户旁边,随时记下错误情况和使用中的问题。这是在受控制的环境下进行的测试。 β测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。这些用户是与公司签定了支持产品预发行合同的外部客户,他们要求使用该产品,并愿意返回有关错位错误信息给开发者。与α测试不同的是,开发者通常不在测试现场。因而,β测试是在开发者无法控制的环境下进行的软件现场应用。
--------------------------------------------------------------------------------
 相关文章
没有相关文章
|
|
|
|