西北师范大学软件测试课后作业作者:刘恩学号:201371020117班级:13届软件一班13级软件工程班刘恩201371020117-1-软件测试课程作业姓名:刘恩学号:201371020117习题一1.选择题(1)C下列关于导致软件质量缺陷的原因描述中不正确的是(程序员编码水平低下是导致软件缺陷的最主要原因)。(2)D缺陷产生的原因是(交流不充分及沟通不畅、软件需求的变更、软件开发工具的缺陷;软件的复杂性、软件项目的时间压力;程序开发人员的错误、软件项目文档的缺乏)。2.判断题(1)缺乏有力的方法学指导和有效的开发工具的支持,往往是产生软件危机的原因之一。(√)(2)目前的绝大多数软件都不适合于快速原型技术。(×)(3)在程序运行之前没办法评估其质量。(×)(4)下列哪些活动是项目?探索火星生命迹象。(√)向部门经理进行月工作汇报。(×)开发新版本的操作系统。(√)每天的卫生保洁。(×)组织超级女声决赛。(√)一次集体婚礼。(√)3.简答题(1)软件:程序+数据+文档软件经历的发展阶段:第一阶段程序设计阶段20世纪50年代初期至60年代中期;第二阶段程序系统阶段20世纪60年代中期至70年代末期;第三阶段软件工程阶段20世纪70年代中期至80年代中期;第四阶段C/S体系结构,即客户端/服务器体系结构80年代中期至今。13级软件工程班刘恩201371020117-2-(2)软件质量与软件测试的关系:软件测试是以评价一个程序或者关系属性为目标的任何一种活动,是对软件质量的度量。测试是手段,质量是目的。(3)软件质量框架定义及内容:1前提:说明了软件框架的适用范围以及适合的环境。2价值观:说明了软件质量框架中强调的价值。3结构:定义了软件质量框架的组成部分以及软件质量框架和开发过程之间的关系。4优秀实践:通过具体、实际的分析、举例,深入阐述了软件质量框架的价值观和结构。(4)CMM定义:软件能力成熟度模型,用来定义和评价软件公司开发过程的成熟度,为提高软件质量提供指导。CMM内容:该模型为软件企业的过程能力提供了一个阶梯式的进化框架,分为5级(初始级、可重复级、已定义级、已管理级以及优先级)。CMMI与CMM的关系:1CMMI的覆盖领域很多,到目前为止包括软件工程(SW-CMM),系统工程(SE-CMM),集成的产品和过程开发(IPPD-CMM)和采购(SS-CMM);2CMMI有两种表示方法,一种是与CMM一样的阶段式表现方法(把CMMI中的若干个过程区域分为5个成熟度级别),另一种是连续式的表现方法(将CMMI中国城区域分为四大类:过程管理、项目管理、工程以及支持);3CMM2级有6个关键过程区域,在CMMI中增加了一个:度量与分析,CMM4级有2个关键过程区域,在CMMI中也是2个,但名称与内容有所改变,在CMM5级中3个KPA,在CMM1中合并了,改为2个。(5)软件测试与软件开发的关系:1〉没有软件开发就没有软件测试,软件开发为软件测试提供实验的对象;2都是软件生命周期的重要组成部分;3都是软件过程中的重要活动;4软件测试是保证软件开发产物质量的重要手段。13级软件工程班刘恩201371020117-3-习题二1.选择题(1)C软件测试按照技术划分为(性能测试、负载测试、压力测试;恢复测试、安全测试、兼容测试)。(2)B软件测试的目的是(发现软件开发中出现的错误)。(3)A,D,B软件测试定义(代码方面:单元测试、集成测试、系统测试、验收测试;理论方面:负载测试、动态测试、静态测试;测试方面:黑盒测试、压力测试、回归测试、负载测试、恢复测试、安全性测试、兼容性测试、内存泄露测试、比较测试等)。2.判断题(1)Beta测试是验收测试的一种。(√)(2)尽量用公共过程或子程序去代替重复的代码段。(√)(3)测试是为了验证该软件已正确地实现了用户的要求。(×)(4)发现错误多的程序模块,残留在模块中的错误也越多。(√)(5)尽量采用复合的条件测试,以避免嵌套的分支结构。(√)3.简答题(1)软件测试目的:软件测试是为了发现软件中存在的错误,证明软件软件有错,以最少的时间和人力找出软件中潜在的各种错误与缺陷。(2)软件测试注意事项:1应该把“尽早地和不断地进行软件测试”做为软件开发者的座右铭;2严防寄生虫现象;3严防杀虫剂现象;4并非所有的软件缺陷都能恢复;5难以说清的软件缺陷;6测试用例的设计;7软件测试的充分性准则。(3)软件测试按照执行主题划分,可以分为α测试(开发者测试)、β测试(用户测试)和第三方测试。(4)V模型与W模型的优缺点13级软件工程班刘恩201371020117-4-V模型:优:反映了测试活动与开发活动的关系,清楚描述了测试的各个阶段和开发过程各阶段的关系。缺:开发后进行测试,忽视了测试活动对需求分析、系统设计等活动的验证和确认的功能。W模型:优:测试与开发同步进行,有利于尽早发现问题。缺:上一阶段结束,才开始下一阶段工作,无法支持迭代开发模型。(5)测试用例定义及属性1定义:对一项特定的软件产品进行测试任务的描述,体现为测试方案、方法、技术和策略等。测试用例的内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。2属性:优先级、目标性、关联性、阶段性、状态性、代表性、时效性。13级软件工程班刘恩201371020117-5-习题三1.选择题(1)B(软件测试最基础环节:单元测试)。(2)D(在软件开发各个阶段,与需求分析、设计、编码相对应的软件测试为:确认测试、组装测试、单元测试)。(3)B(单元测试的测试对象是:程序模块)。(4)A(在单元测试中,用于代替被调用模块的是:桩模块)。(5)D(α测试是验收测试的一种)。(6)D(β测试是在软件公司外部展开的测试,由非专业的测试人员执行的测试)。2.简答题(1)软件测试的生命周期:测试计划,测试设计,测试开发,测试执行和测试评估。(2)α测试和β测试的区别:α测试和β测试都是验收测试的内容,α测试又称为开发者测试,是在开发环境下或者公司内部的用户在模拟实际操作环境下,由用户参与的测试。其测试目的是主要是评价软件产品的功能、可使用性、可靠性、性能等,特别是对于软件界面和使用方式的测试。β测试,又称为用户测试,是在实际环境下进行的测试。与α测试不同的是,在β测试中,由用户记下遇到的所有问题,包括真实的以及主观认定的,定期向开发者报告,开发者在综合用户的报告之后做出修改,最后将软件产品交付给全体用户使用。β测试着重于产品的支持性,包括文档、客户培训和支持产品生产能力。只有当α测试达到一定的可靠程度时,才能开始β测试。(3)单元测试:1定义:单元测试是在软件开发过程中进行的最低级别的测试活动,其测试对象是软件设计的最小单位。2主要任务:5个,分别是模块接口、局部数据结构、边界条件、独立的路径和错误处理。(4)集成测试:1〉方法:两种,分别是增量式测试方法和非增量式测试方法,其中增量式测试方法又可13级软件工程班刘恩201371020117-6-以分为自顶向下增量式测试、自底向上增量式测试和三明治集成测试(核心先行)。2〉集成测试和单元测试的区别:单元测试一般采用白盒测试技术,用于测试每个程序模块的错误。经过单元测试之后,每个模块都能单独工作。集成测试(组装测试)采用灰盒测试技术,用于测试各个组件之间的逻辑关系是否正确,在单元测试结束之后进行,采用桩驱动,是根据模块之间的依赖接口的关系图进行的测试。(5)系统测试:系统测试是以规格说明书作为依据,将整个软件系统与计算机硬件、外设、支持软件、数据和人员等其他系统元素结合起来,在实际运行环境下,对计算机系统进行的测试。系统测试采用黑盒测试技术,根据需求分析时确定的标准检验软件是否满足功能、行为、性能和系统协调性等方面的要求。系统测试的目标不是要找出软件故障,而是要证明系统的性能。(6)回归测试与一般测试的不同:1〉测试用例的新旧:一般测试根据系统规格说明书和测试计划进行,测试用例都是新的。而回归测试可能是更改了的规格说明书、修改过的程序和需要更新的测试计划,测试用例往往都是旧的。2〉测试范围:一般测试目标是检测整个程序的正确性,而回归测试目标是检测被修改的相关部分正确性以及系统原有功能的整合。、3〉时间分配:一般测试所需时间通常是在软件开发之前预算,而回归测试所需的时间(尤其是修正性的回归测试)往往不包含在整个产品进度表。4〉完成时间:由于回归测试只需要测试程序的一部分,完成时间通常比一般测试时间少。5〉执行频率:回归测试在一个系统的生命周期内往往要进行多次进行,一旦系统经过修改就需要进行回归测试。因此,回归测试的执行频率要远远高于一般测试。13级软件工程班刘恩201371020117-7-习题四1.选择题(1)B(黑盒测试用例设计技术不包括等价类划分、因果图法、边界值分析法、错误推测法、判定表驱动法)(2)A(在黑盒测试中,边值分析经常与其他方法结合起来使用)(3)C(等价类划分完成后,就可得出等价类表,它是确定测试用例的基础)(4)B(在设计测试用例时,边界值分析是用得最多的一种黑盒测试方法)(5)D(在黑盒测试中,着重检查输入条件组合的测试用例设计方法是因果图法)(6)D(除了测试程序外,黑盒测试还适用于对需求分析阶段的软件文档节进行测试)(7)A(由因果图转换出来的判定表是确定测试用例的基础)2.判断题(1)用黑盒测试时,测试用例是根据程序内部逻辑结构设计的。(×)(2)黑盒测试方法中最有效的是因果图法。(×)(3)对于连锁分支结构,若有n个判定语句,则有2n条路径(√)(4)尽量采用复合的条件测试,以避免嵌套的分支结构。(√)(5)GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反而能使写出的程序更加简洁。(√)3.简答题(1)等价类的划分原则:1〉如果输入条件规定了取值范围或值的个数,则可以确定一个有效等价类和两个无效等价类(例:规定了x的取值范围为1-99之间的整数,则有效等价类为1=x=99,无效等价类为x1,x99);2〉如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可确定一个有效等价类和一个无效等价类(例:若x=a等价类有效,则x不等于a时无效);3〉如果输入条件是一个bool变量,则可以确定一个有效等价类和一个无效等价类(例:若x=Ture为有效等价类,则x=False为无效等价类);13级软件工程班刘恩201371020117-8-4如果规定了输入数组的一组值(假定n个),而且程序要对每个输入值分别处理,则可以确立一个有效等价类和一个无效等价类(例:x={1,2,3}为有效等价类,反之则为无效等价类);5〉如果规定了输入数据必须遵守的规定,则可以确定一个有效等价类和一个无效等价类(例:符合规则的为有效等价类,不符合规则的为无效等价类);6〉如果确知已划分的等价类中各个元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类。(例:输入A或B或C有效且处理方式不同则应该将其进一步划分为A、B、C三个等价类)。(2)边界值的设计原则:1如果输入条件规定了值的范围,则应取刚到达这个范围的边界的值,以及刚过此范围边界的值作为测试输入数据;2如果输入条件规定了值的个数,则有最大个数、最小个数、比最大个数多1、比最小个数少1的数作为测试数据;3根据规格说明的每一个输出条件使用原则1、2选择输入数据;4如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合中的第一个元素与最后一个元素作为测试用例);5如果程序中使用了一个内部数据结构,则应选择这个内部数据结构的边界上的值作为测试用例;6分析规格说明,找出其他可能的边界条件。函数f(x,y,z)的测试用例图如下:输入条件有效等价类无效等价类边界值测试用例x1900=x=2100x1900,x2100x=1900,x=21001900、2100、2000、1901、209