软件测试试卷(有答案) 下载本文

内容发布更新时间 : 2024/12/23 0:18:31星期一 下面是文章的全部内容请认真阅读。

模拟试题1

一、选择题(每题2分,共30分)

1.导致软件缺陷的最大原因是( )

A. 编写程序 B. 设计方案 C. 软件需求说明书 D.软件规格说明书 2.在下面几个语句中,判断哪一个是错误的

A)发现和修复产品中的软件缺陷越早,开发费用就越低

B)对于发现的软件缺陷要进行重现,确认是一个真正的软件缺陷;还应对这个软件缺陷进行隔离,便于开发人员定位

C)应在需求阶段设计系统测试案例,一次作为需求检查的辅助手段 D)在软件测试中只需要运行预先设计的所有测试案例 E)软件开发人员需要承担部分测试工作

3. 重庆理工大学的人事信息管理系统中,系统允许用户输入8位数字的电话号码。如果使用等价类划分法来设计测试案例,哪一组是最佳的选择? A)62563072、80603805、100080、39103825 B) 39103825、8252323、@、13910382500 C)62563072、391038255、8252323、空值、h? D) 62563072、0603805

4. 在V模型中下面哪一项测试工作是与需求和设计工作同时进行的 A)测试设计 B)需求检查 C)录制测试脚本 D)增量式集成测试

5. 一个软件项目通常分为不同的项目阶段,在这些阶段都可能注入一些软件缺陷。在需求阶段注入的缺陷就是源于需求阶段的缺陷,在软件测试阶段注入的缺陷就是源于软件测试阶段的缺陷。源于需求阶段的缺陷也可能在测试阶段才发现。一般来说,大多数软件缺陷属于: A)软件测试阶段 B)程序编写和调试阶段 C)需求和设计阶段 D)加班工作阶段 6.假定你是某个软件项目的系统测试人员。在开始测试前你需要阅读软件需求规格说明书(SRS)了解要测试的系统的功能。你发现,SRS在许多地方么有说清楚系统的功能,即没有完整的、准确的说明系统的一些功能。你认为,在测试时无法依据SRS来判断系统是否正确的实现了所需要的功能。这是,你应该做什么?

A)针对发现的问题修改SRS,使它能够完整的、准确的说明系统的功能 B)将SRS退回开发方修改,等修改完成后继续系统测试工作

C)安装并运行要测试的系统,参考可能获得的相关文档,观察和掌握系统实现的功能 D)与用户代表、开发人员沟通,了解和明确系统的功能 E)C+D

7. 有一组测试用例,它使被测程序中的每一个分支至少执行一次,它满足的覆盖标准是:( )

A.语句覆盖 B. 判定覆盖 C. 条件覆盖 D.路径覆盖

8. 在某管理系统中,要求输入重量有效值在1.0Kg至9.5Kg(0.5Kg是最小刻度)。如果考虑使用边界值分析方法来设计有效测试案例,请问下面哪一项符合我们要求的测试用例,且测试强度较高。

A)2、9 B) 1、1.5、9.0、9.5 C)0、1、1.5、9.0、9.5、10.0

D) 1.0、9.5 E)1、 1.1 、9.4、 9.5 9.在下面几个语句中,判断哪一个是错误的 A)在软件缺陷报告中应记录重现缺陷的步骤

B)理解和掌握用户实际需求及所测试的软件产品是做好测试的前提 C)应在需求阶段设计单元测试案例,一次作为需求检查的辅助手段 D)测试工作应在需求阶段开始,与开发工作同步、并重 E)软件产品的质量越高,发布后其维护成本就越低

10. 等价类划分和边界值分析是最常用的两种黑盒方法。采用这两种方法设计测试案例,可以很大幅度的减少测试案例的数量。那么,这两种方法有什么局限性?

A)在设计一组测试案例是不能把这两种方法结合在一起同时使用 B)不同输入变量之间可能存在约束关系,它们不能处理这类约束关系

C)不能用于大型信息系统的测试案例的设计 D)不能用于单元测试和集成测试 11. 重庆理工大学某系统中,需要输入8位的账号(数字或字母)。下面那一组测试数据是测试最佳选择?

A)20082022,10000,abc,410005,空白 B) 20082022,空白,空值,123456789,abc C)20082022,空白,abc,10000000,IOOOOOOO D) 20082022,abc,空值,100000,IOOOOO 12. 下面哪一个不是黑盒测试方法?

A)边界值分析 B)等价类划分 C)逻辑覆盖 D)状态测试方法 13. 请阅读下面这段程序: int getK(int a,b,c) {

int k=1;

if ((a>0)||(b<0)||(a+c>0)) k=k+a; else k=k+b; if (c>0) k=k+c; return k;

},如果测试时只采用这组输入值组合:(a, b, c)=(1,1,-1)、(-1,1,1),那么还有什么情况没有覆盖或考虑到?

A) 语句覆盖 B) b<0的情况 C)既执行语句k=k+a, 又执行语句k=k+c D)以上情况均没有覆盖或考虑到

14. 编写、记录和保存测试案例和测试数据是测试设计过程的主要活动。测试质量在很大程度上取决于测试案例的质量。下面是一些关于测试案例的描述。请问哪一条是不正确。 A) 缺乏书面记录的测试案例,测试执行过程难以避免随意性 B) 设计测试案例时,既要考虑有效输入,又要考虑无效输入 C) 认真运行设计的全部测试案例即可保证足够的测试 D) 如果不记录测试案例,测试团队的内部沟通可能降低效率 E) 测试案例和测试数据应与软件开发文档保持一致性

15. Which one of the following items is NOT a common type of review meeting? A) Performance Test B) Walkthrough C)Inspection D) Design Review

二、简答题(每题5分,共30分)

1. 解释什么是软件测试、软件测试的对象是什么? 2. 什么是软件缺陷?它的表现形式有哪些?简单分析软件缺陷产生的原因,其中那个阶段引入的缺陷最多,修复成本又最低? 3. 简述利用WinRunner进行测试的过程可分为哪几个阶段,即操作步骤是什么? 4. 请解释什么是回归测试, 以及为什么要进行回归测试? 5. 请解释什么是Alpha测试, 什么是Beta测试? 6. 请举例说明通常情况下测试用例都是无法穷举的。另一方面,测试用例数量太少也会导致问题 三、应用分析题(每题10分,共40分。)

1. 学生成绩管理系统的案例中,某功能要求输入的数据是数字字符,在0~100之间,

超出这个范围的为无效数字。带非数字的也为无效字符。要求用等价类划分法设计测试用例(考虑无效和有效类),进行程序功能测试(要有过程步骤)。

2. 文本切割的问题,就是把大的文本切割成若干个定长的小块。用自然语言描述,大致是如下这个

样子:

strOri=原始文本内容; len=切割前文本的长度;

sublen=切割后每块数据的长度; buf[]=存放切割后的数据; i=0; //计数器

substrnum=(int)(len/sublen); //切割后的个数 for (i=0;i

buf[i]=mid(strOri,i*sublen,sublen);

buf[i+1]=mid(strOri,(i+1)*sublen,len%sublen);

①请指出上述伪代码的错误之处,该错误是否是由于对变量的边界考虑不周引起的?(2分)

②设计相应的测试用例,并说明设计的理由或原因。(8分)

3. 某规格说明要求:第一列字符必须M或N,第二列字符必须是数字,在此情况下文件被更新。

但如果第一个字符不正确,那么信息“第一列字符输入不是M或N”被产生;如果第二个字符不是数字,则信息“第二列字符输入不是数字”产生。 (1) 试利用因果图法,建立该软件的因果图; (2) 用决策表设计测试用例。

4. 基本路径法设计出的测试用例能够保证在测试中程序的每一条可执行语句至少执行一次。阅读下

列说明,回答问题1至问题3。(10分)

(1)请画出以下代码的控制流图。

(2)请计算上述控制流图的环路复杂度V(G)。

(3)请使用基本路径测试法为变量temp设计测试用例,使之满足基本路径覆盖要求。

模拟试题1参考答案

一、选择题(每题2分,共30分)

1 c 2 d 3 c 4 a 5 c 6 e 7 b 8 b 9 c 10 b 11 b 12 c 13 b 14 c 15 a 二、简答题(每题5分,共30)

1. 参考答案

软件测试是以评价一个程序或者系统属性为目标的活动,是对软件质量的度量与评估,以验证软件的质量满足用户的需求的程度,为用户选择与接受软件提供有力的依据。

软件测试内容:软件是由文档、—数据以及程序组成的,那么软件测试就应该是对软件形成过程的文档、数据以及程序进行的测试,而不仅仅是对程序进行的测试。 2. 参考答案

解:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。

它的表现形式主要有以下几种:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指出的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。

软件缺陷产生的主要原因有:需求规格说明错误;设计错误;程序代码有误;其他。其中在需求分析阶段引入的缺陷最多,修复的成本又最低。

3. 参考答案

WR的测试过程分为以下六个阶段:(1) 创建GUI map;(2)创建测试;(3)调试测试;(4)执行测试;(5)查看测试结果;(6)报告发现的错误。 4. 答题要点:

回归通常指以前正常的功能不再正常. 回归测试主要目的是为了保障以前通过测试的功能在对代码的修改之后仍然功能正常. 对代码的修改可能导致以下情形的发生: 1. 缺陷得以解决; 2. 缺陷得以解决, 但是其它处曾经正常的功能开始出现问题; 3. 虽经努力, 但是缺陷仍然不能解决; 4. 虽经努力, 缺陷仍然不能解决, 同时还引入了回归缺陷.

回归测试是一项耗时的工作, 往往需要对已有的测试用例进行挑选, 从其中选择回归测试集. 回归测试用例在开发过程中, 可能需要大量的反复执行, 如果有可能, 应该考虑引入自动化测试手段. 5. 参考答案

Alpha测试通常是指产品开发到了末期, 在推出市场之前开发方内部进行的系统测试.

Beta测试通常是指为了扩大测试面, 检验开发的产品是否能在预计的各种软硬件环境中正常运行, 一般将比较稳定的产品发送到各个用户单位, 由用户进行测试. 这些系统版本通常被称为Beta版本, 在Beta测试阶段, 开发方一般会先后提交软件产品的若干beta版本. 6. 参考答案

答:以计算器为例,完全的测试需要进行1+1,1+2,1+3,……,1+9999999999999999等的测试,然后再是2+1, 2+2, 2+3, ……, 2+9999999999999999等的测试。 除了加法,还有,减乘除等运算。因而,完全的测试是不可能的。

然而,测试用例数量太少,会导致测试不足的情况。例如我们判断三个数是否相等的程序为: If ((x+y+z)/3==x) then Print “相等” Else Print “不相等” Endif

这样的程序当采用测试用例:x=2, y=2, z=2以及x=1, y=2, z=3时都是能够通过的,但我们不能据此判定程序是正确的。

三、应用分析题(每题10分,共40分)

1. 解答:第一步:分类

第二步:设计有效等价类需要的测试用例。表中的①、⑤2个有效等价类,可共用一个测试用例,例如:

测试数据 预期结果 测试覆盖

98 输入有效 ①、⑤ 第三步:为每一无效等价类至少设计一个测试用例。

因为有5个无效等价类,需要不少于5个测试用例。如: 测试数据 预期结果 测试范围 M8 输入无效 ② (没有数字字符输入) 输入无效 ③ 978 输入无效 ④ -96 输入无效 ⑥ 103 输入无效 ⑦

2.解答:①第一个错误有点低级,把i+1?改为 i

第二个错误:当len刚好是sublen的整数倍的时候,这个操作将发生错误。我们首先要清楚,取模操作中有一个特殊的边界值,就是第二个操作数的整数倍。这就好像是整数中的0一样重要,而上面这段代码的作者刚好忽视了这个问题,忽略了次边界。