第一章
1.选择题
(1)软件本身的特点和目前软件开发模式使隐蔽在软件内部的质量缺陷不可能完全避免,在下列关于导致软件质量缺陷的原因的描述中,不正确的是(C)
A.软件需求模糊以及需求的变更,从根本上影响着软件产品的质量
B.目前广为采用的手工开发方式难以避免出现差错
C.程序员编码水平低下是导致软件缺陷的最主要原因
D.软件测试技术具有缺陷
(2)缺陷产生的原因是(D)
A.交流不充分及沟通不畅、软件需求的变更、软件开发工具的缺陷
B.软件的复杂性、软件项目的时间压力
C.程序开发人员的错误、软件项目文档的缺乏
D.以上都是
2.判断题
(1)缺乏有力的方法学指导和有效的开发工具的支持,往往是产生软件危机的原因之一。(
(2)目前的绝大多数软件都不适和于快速原型技术。(
(3)在程序运行之前没法评估其质量。(×
(4)下列哪些活动是项目
探索火星生命迹象(
向部门经理进行月工作汇报(×
开发新版本的操作系统。(
每天的卫生保洁。(×
组织超级女声决赛。(
一次集体婚礼。(
3.简答题
(1)什么是软件?软件经历了哪几个发展阶段?
    答:软件是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件北划分为系统软件,应用软件和介于着两者之间的中间件。其中系统软件为计算机使用提供最基本的功能,但是并不是针对某一特定领域,而应用软件则恰好相反,不同的应用软件更根据用户和所服务的领域提供不同的功能。
      20世纪50年代初期至60年代中期是软件发展的第一阶段(又称程序设计阶段);
      第二阶段从20世纪60年代中期到70年代末期是程序系统阶段。
      第三阶段称为软件工程阶段,从20世纪70年代中期到80年代中期,由于微处理器的出现,分布式系统广泛应用,以软件的产品化,系列化,工程化和标准化为特征的软件产业发展起来,软件开发有了可以遵循的软件工程化的设计原则,方法和标准。
      第四阶段是从20世纪80年代中期至今,客户端/度武器(C/S)体系结构,特别是Web技术和网络分布式对象技术法飞速发展,导致软件体系结构向更加灵活的多层分布式结构演变,CORBA,EJB,COM/DCOM等三大分布式的对象模型技术相继出现。
(2)软件质量与软件测试有什么关系?
    答:软件测试和软件质量的概念是分不开的。测试是手段,质量是目的。软件测试能够提高软件质量,但是软件测试和软件质量保证二者之间既存在包含又存有交叉的关系。软件测试能够出软件缺陷,确保软件产品满足需求。但是测试不是质量保证。测试可以查错误并进行修改,从而提高软件产品的质量。软件质量保证则是避免错误以求高质量,并且还有其他方面的措施以保证质量问题。
(3)软件质量框架是什么?包括什么内容?
    答:第一部分是前提,说明了软件框架的适用范围,以及适合的环境,和方法学一样,没有泛之四海皆准的方法学,所以软件质量框架也需要一个上下文环境。
      第二部分是价值观,价值观说明了软件质量框架中强调的价值,在软件框架的结构和实践中,都将充分的的表现出一开始我们定义的价值。
      第三部分是结构。结构定义了软件质量框架的组成部分,以及软件质量框架和开发过程之间的关系。
      第四部分是文章中着墨最多的部分,即优秀实践。优秀实践通过具体、实际的分析、举例,深入阐述了软件质量框架的价值观和结构
(4)CMM是什么?具体内容是什么?CMMI与CMM的关系是什么?
      答:CMM是由美国软件工程学会(Software Engineering Institute)制定的一套专门针对软件产品的质量管理和质量保证标准。该标准最初是为美国军方选择软件产品提供商时评价软件企业的软件开发质量保证能力而制定,所以称为软件企业能力成熟度模型(Capability Maturity Model,简称CMM)。该标准将软件企业的能力成熟度划分为5个等级,
级别越高表明该企业在提供合格软件产品方面的能力越强。
          软件过程包括管理过程(软件项目策划、软件项目管理)、组织过程(跨项目过程、培训、基础设施)、工程过程(需求分析、设计、编码、测试)。CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。成熟度反映了软件过程能力的大小,任何一个软件机构的软件过程必定属于其中某个级别。除了第一级以外,每级成熟度又由若干关键过程域构成。CMM结构中关键实践描述了对关键过程域有效实施和制定化起重要的作用的基础设施和活动,有5个共同特征:执行约定、执行能力、进行的活动、测量和分析、验证实施。
        CMM:软件能力成熟度模型,是对组织软件过程能力的描述。CMMI:能力成熟度模型集成,目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。
        CMMI 模型的前身是 SW-CMM 和 SE-CMM,前者就是我们指的CMM。CMMI与SW-CMM的主要区别就是:
一、覆盖了许多领域;到目前为止包括四个下面领域:(1)、软件工程(SW-CMM);(2)、系统工程(SE-CMM);(3)、集成的产品和过程开发(IPPD-CMM);(4)、采购(SS-CMM)。
二、CMMI有两种表示方法,一种就是与CMM一样的阶段式表现方法(把CMMI中的若干个过程区域分成5个成熟度级别);另一种是连续式的表现方法(将CMMI中过程区域分为四大类:过程管理、项目管理、工程以及支持)。
三、CMM2级有6个关键过程区域,在CMMI中增加了一个:度量与分析;CMM4级有2个关键过程区域,在CMMI中也是2个,只是名称与内容有所改变;在CMM5级中有3个KPA,在CMMI中合并了,改为2个。最显著还是在CMM3级中,原来的7个KPA改为14个。
(5)软件测试与软件开发具有什么关系?
  答:1、没有软件开发就没有测试,软件开发提供软件测试的对象。
      2、软件开发和软件测试都是软件生命周期中的重要组成部分
      3、软件开发和软件测试都是软件过程中的重要活动。
      4、软件测试是保证软件开发产物质量的重要手段。
                            第二章
1.选择题
(1)软件测试按照测试技术划分为(C)
    A.性能测试、负载测试、压力测试
    B.恢复测试、安全测试、兼容测试
    C.A与B都是
    D.单元测试、集成测试、验收测试
(2)软件测试目的(C)
    A.避免软件开发中出现错误
    B.发现软件开发中出现错误
    C.尽可能发现并排除软件中潜藏的错误,提高软件的可靠性
    D.修改软件中出现错误
(3)各个地方对软件测试定义不同,请根据软件测试方面、理论方面、代码角度测试填空。
  代码方面分为(A)、集成测试、系统测试、验收测试
  理论方面分为(C)、动态测试、静态测试
  测试方面分为(B)、压力测试、回归测试、负载测试、恢复测试、安全性测试、兼容性测试、内存泄露测试、比较测试等。
      A.单元测试  B.黑盒测试 C.白盒测试D.负载测试
4.判断题
(1)Beta测试是验收测试的一种。()
(2)尽量用公共过程或子程序去替代重复的代码段。()
(3)测试是为了验收该软件已正确的实现了用户的要求。(×)
(4)发现错误多的程序模块,残留在模块中的错误也多。(×)
(5)尽量采用复合的条件测试,以避免嵌套的分支结构。()
3.简答题
(1)软件测试的目的是什么?
    答:软件测试的目的有: 
        ① 软件测试是为了发现错误而执行程序的过程。 
        ② 一个好的测试用例能够发现至今尚未发现的错误。 
        ③ 一个成功的测试是发现了至今尚未发现的错误。
(2)软件测试中应注意哪些事项?
    答:软件测试应注意以下事项:
        1.应当把“尽早和不断地测试”作为开发者的座右铭。 
软件测试的方法有哪些        2.程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完成。 
        3.设计测试用例时,应该考虑到合法的输入和不合法的输入,以及各种边界条件,特殊情况下要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。 
        4.一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。 
        5.对测试错误结果一定要有一个确认的过程。一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。 
        6.制定严格的测试计划,并把测试时间安排得尽量宽松,不要希望在极短的时间内完成一个高水平的测试。 
        7.回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。 
        8.妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。”
(3)按执行主体划分,软件测试分哪几类?
    答:哪测试实施组织划分,软件测试分为α测试,β测试和第三方测试。
(4)V模型和W模型各自的优缺点是什么?
    答:V模型:
        优点是:如此简单的模型适合工程量小、人力投入也少的情况。而且项目的改动不大,风险不高的情况。
        缺点:在实际中能用上V模型的项目很少。错误也发现得迟。采用V模型的而产生的风险费用很高
        W模型:
        优点:能在前期发现需求错误,在测试过程中也有利于及时了解项目难度。适合做中型软件。 
 
      缺点:W模型继承V模型而来,仍要求项目需求不能有大变动,否则前期准备很容易白费。也不适合于大型的项目,大型项目不能一开始就有完整的需求,而且风险大而造成需求变动大。人力上也要求有专门测试的人员。
(5)测试用例是什么?有什么属性?
    答:测试用例是指对一项特定的软件产品进行测试任务的描述,体现在测试方案,方法,技术,策略等。测试用例的内容包括测试目标,测试环境,输入数据,测试步骤,预期结果,测试脚本等,并形成文档。