计算机四级软件测试工程师-12
(总分176, 做题时间90分钟)
一、选择题
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的
1. 
依据《GB/T 15532-2008计算机软件测试规范》软件测试应由相对独立的人员进行。测试团队成员包含的工作角色有______。
A 测试负责人、测试分析员
B 测试设计员、测试程序员、测试员
C 测试系统管理员、配置管理员
D 以上全是
2. 
下列不属于健壮性测试用例设计方法的为______。
A 故障插入测试
B 变异测试
C 规范导出法
D 错误猜测法
3. 
典型的软件测试过程模型包括______。
A V模型、W模型、H模型、渐进模型
B V模型、W模型、H模型、螺旋模型
C X模型、W模型、H模型、前置测试模型
D X模型、W模型、H模型、增量模型
4. 
整体的项目计划框架,需求规格说明,技术知识和业务知识,标准环境,设计文档,足够的资源,人员的组织结构应当是______所包含的内容。
A 测试计划的整体目标
B 测试项目输入标准
C 测试项目输出标准
D 测试实施策略
5. 
单元测试中的主要测试方法为______。
A 黑盒测试
B 灰盒测试
C 回归测试
D 白盒测试
6. 
构件的主要特征是______。
A 可观察性
B 可复用性
C 可控制性
D 可理解性
7. 
对于缺陷分析,常用的主要参数有______。
A 状态、优先级
B 严重性
C 起源
D 以上全是
8. 
在软件设计阶段,测试的对象来自设计文档,包括外部设计的规格说明、内部设计的规格说明、逻辑设计的规格说明,对文档的测试主要采用的测试方法为______。
A 走查
B 调用测试用例进行测试
C 评审
D 静态测试
9. 
下列关于测试设计与开发的说法中,不正确的是______。
A 软件测试设计与开发活动是软件测试过程中对技术要求比较高的关键阶段
B 软件测试设计与开发主要包括测试技术方案的制订、测试用例设计
C 测试用例特定集合的设计、测试开发和测试环境的设计都是软件测试设计与开发的范畴
D 测试设计与开发活动对软件进行需求确定性估算
10. 
下面①~④是关于软件测试工作原则的描述,正确的判断是______。    ①对于开发人员提交的程序必须进行完全的测试,以确保程序的质量    ②必须合理安排测试任务,做好周密的测试计划,平均分配软件各个模块的测试时间    ③在测试之前需要与开发人员进行详细的交流,明确开发人员的程序设计思路,并以此为依据开展软件测试工作,最大限度地发现程序中与其设计思路不一致的错误    ④要对自己发现的问题负责,确保每一个问题都能被开发人员理解和修改
A ①②
B ②③
C ①③
D 无
11. 
关于Web应用软件系统安全,说法正确的是______。
A 黑客的攻击主要是利用黑客本身发现的新漏洞
B 以任何违法安全性的方式使用系统都属于入侵
C 系统的安全漏洞属于系统的缺陷,但安全漏洞的检测不属于测试的范畴
D Web应用软件的安全性仅仅与Web应用软件本身的开发有关
12. 
健壮性测试又称容错测试,其一般的测试方法是软件故障插入测试,在软件故障插入测试技术中,不需要关注的内容为______。
A 故障类型
B 插入故障的方法
C 目标系统
D 测试系统
13. 
比较传统的软件单元测试与面向对象软件的单元测试的内容,下列说法错误的是______。
A 传统的软件单元测试的对象是软件设计的最小单位——模块,测试依据是详细设计说明书
B 单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误
C 面向对象软件很难对单个成员方法进行充分的测试,具有良好封装性的类称为单元测试的基本对象
D 面向对象软件的测试大多采用白盒测试技术,系统内多个模块可以并行地进行测试
14. 
软件性能的指标有______。    ①响应时间    ②系统响应时间和应用延迟时间    ③吞吐量    ④并发用户数    ⑤资源利用率
A ①②③⑤
B ②③④⑤
C ①③④⑤
D ①②③④⑤
15. 
逻辑路径覆盖法是白盒测试用例的重要设计方法,其中语句覆盖法是较为常用的方法。针对下面的句段,采用语句覆盖法完成测试的设计。测试用例见下表,对表中的空缺页(TRUE或者FALSE),正确的选择是______。    语句段:    If(A&&(B||c))x=1;    Else x=0:用例表:
B 用例1
C 用例2
D A
E TRUE
F FALSE
G B
H (1)
I FALSE
J C
K TRUE
L (2)
M A&&(B||C)
N (3)
O FALSE
16. 
Web应用系统主要针对系统的______特性进行测试。    ①功能测试、性能测试    ②易用性测试    ③内容测试、安全性测试    ④接口测试
A ①②③
B ②③④
C ①③④
D ①②③④
17. 
在软件开发的过程中,参与各个活动的评审和阶段的正式技术评审是软件质量保证实施活动步骤的______。
A 计划
B 实施
C 检查
D 行动
18. 
测试按照典型的软件工程理论分为______。
A 单元测试、系统测试、白盒测试等
B 黑盒测试、白盒测试、系统测试等
C 单元测试、集成测试、系统测试等
D 单元测试、模块测试、集成测试等
19. 
没有正确修复的缺陷,需要进一步修复的缺陷是______。
A New More Info
B Deferred-Next Build
C Deferred-Mext Main Release
D Reopen
20. 
下列关于软件测试成本管理中资源估算的说法,错误的是______。
A 估算主要通过分解技术、经验建模来实现
B 软件测试成本很重要的是人力资源成本
C 对人力资源来说,首先要进行工作量估算
D 分解技术是指根据经验导出的公式来预测工作量和时间
21. 
以下关于面向对象软件的集成测试策略、协作集成的叙述,不正确的是______。
A 协作集成就是在集成测试时,针对系统完成的功能,将可以相互协作完成特定功能的类集成在一起测试
B 协作测试的优点是编写测试驱动和测试桩的开销小
C 协作测试的缺点是当协作关系复杂时,测试难以充分进行
D 与传统集成测试相比,协作测试通常比较完备
22. 
下列关于面向对象中封装的理解,错误的是______。
A 封装是一种信息隐蔽技术,是指将数据和算法捆绑成一个整体,存取数据时只需要知道其算法的外部接口而无须了解数据的内部结构
B 对象是其全部属性和全部服务紧密结合而形成的一个不可分割的整体
C 对象是一个不透明的盒子,表示对象状态的数据和实现操作的代码都被封装在黑盒子里边
D 使用了封装技术以后,类内部的数据和方法完全不可以被外界直接访问
23. 
使程序中每个判定表达式的每个条件的可能取值至少执行一次的覆盖方式被称为______。
A 逻辑覆盖
B 语句覆盖
C 判定覆盖或分支覆盖
D 条件覆盖
24. 
兼容性测试是指______。
A 针对软件对其运行环境的依赖进行测试,以验证软件是否能够在所有期望的环境中运行
B 测试本款软件与其他应用软件是否能在同一操作系统下同时执行
C 检测软件与其他软件是否能正常进行信息的交流和传递
D 以上都不对
25. 
下列哪种情况下可以进行单元测试______。
A 每个模块的代码编制完成,并经过评审和验证确认没有语法错误
B 每个模块的代码编制完成,不需经过评审和验证确认没有语法错误
C 部分模块的代码编制完成,并且已完成模块已经过评审和验证确认没有语法错误
D 主要模块的代码编制完成,并且已完成模块已经过评审和验证确认没有语法错误
二、论述题

以下是学生选课系统中“学生成绩查询”交互行为的描述,请仔细阅读程序并完成要求。
   交互开始时,终端上显示首页,用户选择“查询”请求后,显示“请输入学号”。在用户输入学号后,系统核对学生学号:若输入的学号不正确,则显示“输入的学号不正确”,此次查询取消,回到首页;若输入的学号正确,则出现“请输入课程名称”。一旦输入课程名,就开始核对课程名称:若输入的课程名称不正确,则显示“输入的课程名称不正确”,此次查询取消,回到首页;若输入的课程名称正确,则根据“学号”和“课程名”查询学生成绩。
   若查询学生成绩成功,则显示查询到的成绩,系统询问是否继续查询:当用户选择“继续查询”后回到“请输入学号”;当用户选择“结束查询”后回到首页。若查询失败,则显示“查询失败”后回到首页。
1. 
请画出该系统的控制流图。
2. 
请给出该系统的基本路径集。
3. 
请给出覆盖基本路径集的测试用例集合。
以下是某C++程序,用来判定用户口令,请仔细阅读程序并完成要求。
   //**********************************************************//
   //                      口令检验程序                      //
   //                                                      //
   //                 文件名:password_check.cpp        //
   //**********************************************************//
   #include
   #include
   //**********************************************************//
   //                    主 函 数                               //
   //**********************************************************//
   void main(void)
   {
   char password[128]={'\0');
   cout<<"请输入您的口令:";
   cout.flush();
   while(true){
   cin.getline(password, 128,'\n');
   if(strlen(password)<6)      //口令长度少于6位
   {
   cout<<"您的用户口令少于6个字符!"<endl;
   cout<<"请重新输入:";
   cout.flush();
   }else{
   bool capital=false;      //检验是否有大写字母
   bool lowercase=false;    //检验是否有小写字母
   bool digit=false;        //检验是否有数字
   for(unsigned int i=0;i<strlen(password);i++){
   if(password[i]>='A'&&password[i]<='Z')
   capital=true;
   if(password[i]>='a'&&password[i]<='z')
   lowercase=true;
   if(password[i]>='0'&&password[i]<='9')
   digit=true;
   }
   //判断用户输入的口令中缺少哪中字符
   if(!capital){
   cout<<"您的用户口令中没有大写字母!"<<endl;
   cout<<"请重新输入:";
             }else if(!lowercase){
             cout<<"您的用户口令中没有小写字母!"<<endl;
             cout<<"请重新输入:";
             }else if(!digit){
            cout<<"您的用户口令中没有数字!"<<endl;
              cout<<"请重新输入:";
       )else{
            cout<<"您的口令满足要求!"<<endl;
            break;
            }
         }
       }
    }
4. 
画出此程序主函数的控制流程图。
5. 
设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句或分支覆盖率无法达到100%,需说明为什么。
以下是QESuite Web Version 1.0操作手册的部分内容,请按要求回答问题。
6. 
下图是QESuite Web Version 1.0中问题报告的管理过程。请给出各状态的详细描述。
7. 
请给出校验一个问题报告的操作步骤。
   
答题卡