中南大学软件测试技术考试试卷(共6页).doc
精选优质文档-倾情为你奉上中南大学考试试卷2011 - 2012 学年 上 学期 时间110分钟软件测试技术 课程 48 学时 3 学分 考试形式: 闭 卷 专业年级: 软件09级 总分100分,占总评成绩 70 %注:1) 本试卷不做答题用,答案请写在答题纸上2) 请在答题纸上写明学号、班级和姓名3) 考试结束后,试卷、答题纸、草稿纸折叠好一起交监考老师一单项选择题(15题,2分/题)1. 软件文档按照其产生和使用的范围可分为开发文档、管理文档和用户文档。其中开发文档不包括(B)。A 软件需求说明B 可行性研究报告C 维护修改建议D 项目开发计划2. 软件维护成本在软件成本中占较大比重。为降低维护的难度,可采取的措施有 DA .设计并实现没有错误的软件B .限制可修改的范围C .增加维护人员数量D .在开发过程中就采取有利于维护的措施,并加强维护管理3. 测试用例是测试使用的文档化的细则,其规定如何对软件某项功能或功能组合进行测试。测试用例应包括下列(B )内容的详细信息。 测试目标和被测功能 测试环境和其他条件 测试数据和测试步骤 测试记录和测试结果A B C D 4. 在进行软件编码规范评测过程中需要围绕几个方面的内容展开,以下描述中不属于编码规范评测内容的有(D )。A 源程序文档化检查,包括符号名的命名、程序的注释等规范性检查B 数据说明检查,包括数据说明次序、语句中变量顺序检查C 程序结构检查,程序应采用基本的控制结构、避免不必要的转移控制等D 程序逻辑检查,阅读源代码,比较实际程序控制流与程序设计控制流的区别5. 属于概要设计说明书的评测内容。B 分析该软件的系统结构、子系统结构,确认该软件设计是否覆盖了所有已确定的软件需求,软件每一成分是否可追溯到某一项需求 系统定义的目标是否与用户的要求一致 从软件维护的角度出发,确认该软件设计是否考虑了方便未来的维护 是否所有界面与更高级别文档中的需求一致A B C D 6. 关于软件测试的说法,(D)是不正确的。A 代码审查是代码检查的一种,是由程序员和测试员组成一个审查小组,通过阅读、讨论和争议,对程序进行静态分析的过程B 软件测试的对象不仅仅是程序,文档、数据和规程都是软件测试的对象C 白盒测试是通过对程序内部结构的分析、检测来寻找问题的测试方法D 单元测试是针对软件设计的最小单位一程序模块进行正确性检验的测试工作,它通常需要开发辅助的桩模块作为主程序调用被测模块来完成测试7. 下列叙述是正确的。C 测试用例应由测试设计人员来制定 测试点应由测试人员确立 测试工作展开于项目立项后,而不是代码开发完成之后 测试对象是源代码A B C D 8. 通常测试用例很难100 覆盖测试需求,因为(D)。 输入量太大 输出结果太多 软件实现途径多测试依据没有统一标准 A B C D 9. 假定X 为整数类型变量,X > = 1 并且X 10 ,如果用边界值分析法,X 在测试中应该取(B )值。 A . 1 , 10 B . 0 , 1 , 10 , 11 C . 1 , 11 D . 1 , 5 , 10 , 1110. 针对下列程序段,需要( C)个测试用例可以满足语句覆盖的要求。switch ( value ) case 0 : other = 30 ; break ; case 1 : other =50 ; break ; case 2: other = 300 ; case3 : other = other / value ; break ; default : other = other * value ; A . 2 B . 3 C . 4 D . 5 11. 以下控制流程图的环路复杂性V ( G )等于( B)。A . 5 B . 6 C . 9 D 12 12. 针对程序段:IF ( X > 10 ) AND ( Y < 20 ) THEN W = W / A ,对于(X , Y )的取值,以下组测试用例能够满足判定覆盖的要求。DA . ( 30 , 15 ) ( 40 , 10 ) B . ( 5 , 25 ) ( 10 , 20 ) C . ( 3 , O ) ( 30 , 30 ) D . ( 20 , 10 ) ( 1 , 100 ) 13. 反映web 应用客户端交易处理性能的评估指标有(B) 。 并发用户数 交易响应时间 交易通过率 吞吐量 点击率A B C D 14. ( A ) 是导致软件缺陷的最大原因。A 需求规格说明书B 编写代码C 设计方案D 测试计划15. 测试记录包括(D )。 测试计划或包含测试用例的测试规格说明 测试期间出现问题的评估与分析 与测试用例相关的所有结果,包括在测试期间出现的所有失败 测试中涉及的人员身份A B C D 二设计题(3问,10分/问)以下代码由C语言书写,在输入三个整数后,能够输出最大数和最小数int main( void ) int a, b, c, max, min; printf( "input three numbers: " ); scanf( "%d%d%d", &a, &b, &c ); if( a > b ) /*判断1*/ max = a; min = b; else max = b; min = a; if( max < c ) /*判断2*/ max = c; else if( min > c ) /*判断3*/ min = c; printf( "max=%dnmin=%d", max, min ); return 0; 问题1、请画出改程序段的控制流图,并分析该控制流图中有多少条线性独立路径.问题2、为了用分支(判定)覆盖方法测试该程序,需要设计测试用例,使其能对该程序中的每个判断语句的各种分支情况全部进行过测试(路径测试)对两组输入数据a=3, b=5, c=7 a=4, b=6, c=5,请分别写出程序中各个判断语句的执行结果(以T表示真,以F表示假)F T F(或者F T)问题3、上述两组测试数据是否能实现该程序的分支(判定)覆盖?如果能,请说明理由。如果不能,请再增设一组输入数据,使其能实现分支(判定)覆盖不能 ,a=6, b=4,c=2(其它答案也可,只要三个条件满足T F T)三. 问答题(3题,40分)1在进行性能测试时,我们通常会进行压力测试和负载测试,请简述什么是压力测试和负载测试,主要区别是什么。(10分)负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现了一种方法或一种技术。压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。压力测试可以被看作是负载测试的一种,即高负载下的负载测试,或者说压力测试采用负载测试技术。通过压力测试,可以更快地发现内存泄漏问题,还可以更快地发现影响系统稳定性的问题。2结合整个软件项目开发周期,描述软件测试在各个阶段的行为(20分) 利用螺旋模型,V模型、W模型、H模型、X模型和前置模型答题均可。或者利用单元测试,集成测试,确认测试和系统测试回答也给分。 需求分析阶段:测试需求规格说明书,是否与用户要求一致 概要设计阶段:测试概要设计说明中是否覆盖了所有已确定的需求,是否考虑了后期维护 详细设计阶段:数据结构,算法是否正确,编码规范 编码阶段: 单元测试,集成测试 系统验收阶段:测试系统是否完成了需求规格说明书中的所有内容3. 简述LOADRUNNER作用, 描述其在实践中的基本操作步骤(10分) 答出主要步骤,并有说明即可得分 a选择协议:LOADRUNNER在录制的过程中就可以通过脚本语言将通信过程录制下来。所以只要明确了被测软件的通信过程和所使 用的协议,LOADRUNNER才能正确的录制脚本。 b. 录制测试脚本:根据需求设定好脚本录制参数后,在VIRTUAL USER GENERATOR主窗口单击START RECORD按钮,系统就开始自动录 制脚本。 c. 强化测试脚本: 插入事务, 插入集合点, 脚本参数化, 插入检查点等. d. 设定运行场景: 设定运行策略,包括虚拟人数,虚拟组,运行时间等 e. 运行场景,得到报告,分析系统瓶颈,生成修改建议专心-专注-专业